做网站离不开数据库,特别是mysql数据库,那么掌握必要的SQL语句是很有必要的,除了基本的数据库和数据表创建,剩下的无非就是数据库的增删改查。今天,小超越工作室分享一下经常用到的sql语句,方便大家记忆。即使你记不住,时常会忘记,只要收藏本文章,等到用时打开看一眼就瞬间唤醒你的记忆了。
首先说明一下:在标准 SQL 中,字符串使用的是单引号。如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)
常用到的SQL语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /*查询语句,查询 tablename 数据表里的id为1的column字段内容 并按照id正序输出,如果要倒序输出可以把asc换成 DESC LIMIT为取条数,从第3条(LIMIT从0开始算)开始取4条数据*/ SELECT COLUMN FROM tablename WHERE id=1 ORDER BY id ASC LIMIT 2,4; /*插入语句,在tablename数据表中插入一行数据id为1,name为用户名称,*/ INSERT INTO tablename (id,name) VALUES (1,'用户名称'); /*更新语句,在tablename数据表中更新id为1的行,把coolumn字段值设置为1*/ UPDATE tablename SET coolumn=1 WHERE id=1; /*删除语句,删除tablename数据表id等于1的行。*/ DELETE FROM tablename WHERE id=1; /*取代语句,存在相同行则更新,否则新插入(根据主键或唯一索引判断,所以必须插入其中一个值,否则会自动插入新行)*/ REPLACE INTO t(id, update_time) VALUES(1, now()); /* 模糊查询语句, '%a' //以a结尾的数据 'a%' //以a开头的数据 '%a%' //含有a的数据 '_a_' //三位且中间字母是a的 '_a' //两位且结尾字母是a的 'a_' //两位且开头字母是a的 */ SELECT runoob_id, runoob_title, runoob_author, submission_date FROM runoob_tbl WHERE runoob_author LIKE "%COM" /* 输出行数:COUNT() 输出某个值总和:sum() name字段去重:distinct name name字段去重并返回所有字段,加上group by */ SELECT *,COUNT(DISTINCT name) FROM biaoming WHERE contact_time>=1554048000 AND contact_time<=1556639999 GROUP BY name /*替换语句*/ UPDATE settime_push_list SET push_msg = REPLACE(push_msg,'要替换','替换成'); 1.日期转时间戳 SELECT UNIX_TIMESTAMP('2018-12-25 12:25:00'); 结果:1545711900 2.时间戳转日期:FROM_UNIXTIME(unix_timestamp) --unix_timestamp为时间戳 SELECT FROM_UNIXTIME(1545711900); 结果:2018-12-25 12:25:00 3.时间戳转日期,自定义返回日期格式:FROM_UNIXTIME(unix_timestamp,format) -- format请参考后面的截图 SELECT FROM_UNIXTIME(1545711900,'%Y-%m-%d %T'); -- 结果:2018-12-25 12:25:00 |
以上就是经常用到的SQL语句,一般记住这些都够用了,不过对于没有任何基础的小白,小超越工作室还是建议大家去学习更为详情的mySQL语法,记不住没关系,至少了解哪些SQL语句有什么作用,用什么样的sql语句能更好的实现想要的功能。
SELECT命令
MySQL 数据库使用SQL SELECT语句来查询数据。
SELECT语法
1 2 3 4 | SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M] |
SELECT 命令解读:
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
INSERT命令
MySQL 表中使用 INSERT INTO SQL语句来插入数据。
INSERT语法
1 2 3 | INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); |
INSERT命令解读
如果数据是字符型,必须使用单引号或者双引号,如:”value”。
WHERE子句命令
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
WHERE语法
1 2 | SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2..... |
WHERE子句命令解读
查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
你可以在 WHERE 子句中指定任何条件。
你可以使用 AND 或者 OR 指定一个或多个条件。
WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
以下为操作符列表,可用于 WHERE 子句中。
下表中实例假定 A 为 10, B 为 20
操作符 | 描述 | 实例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
如果我们想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
UPDATE命令
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。.
UPDATE语法
1 2 | UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] |
UPDATE命令解读
你可以同时更新一个或多个字段。
你可以在 WHERE 子句中指定任何条件。
你可以在一个单独表中同时更新数据。
当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。
DELETE命令
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。
DELETE语法
1 | DELETE FROM table_name WHERE Clause |
DELETE命令解读
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件
您可以在单个表中一次性删除记录。
当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。
LIKE 子句命令
我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 “author = ‘zhe94.com'”。
但是有时候我们需要获取 author 字段含有 “com” 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
LIKE 子句语法
1 2 3 | SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue' |
LIKE 子句命令解读
你可以在 WHERE 子句中指定任何条件。
你可以在 WHERE 子句中使用LIKE子句。
你可以使用LIKE子句代替等号 =。
LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
你可以使用 AND 或者 OR 指定一个或多个条件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。
replace命令
在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。那么我们使用这个命令就快捷了
replace语法
MySQL replace into 有三种形式:
1 2 3 | replace into tbl_name(col_name, ...) values(...) replace into tbl_name(col_name, ...) select ... replace into tbl_name set col_name=value, ... |
前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。
replace into命令解读
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
其他案例
MySQL数据库将多条记录的单个字段合并成一条记录
MySQL创建用户并授权某个数据库权限
转载请保留本文链接:https://www.zhe94.com/539.html