逻辑操作符
-
AND:连接多个WHERE条件:SELECT name,age,sex FROM `user` WHERE age > 18 AND sex=1;
-
OR:用法同AND。
-
计算次序:AND在计算中优先级比OR高,所以在进行操作符组合时要注意括号的使用。
-
IN:用来指定条件范围,范围内的每个条件都可以进行匹配。例,SELECT name,age,sex FROM `user` WHERE age IN (15,20);
-
NOT:进行条件的否定。例,SELECT name,age,sex FROM `user` WHERE NOT age IN (15,20);(注意NOT的位置)
通配符:
-
LIKE:在SQL中使用通配符,必须使用LIKE操作符。
-
%:%表示任何字符出现任意次数。
-
_:下划线只匹配单个字符,而不是多个字符。
拼接字段:
-
将多个列的返回值拼接在一块,作为一列返回。
-
MYSQL中使用CONCAT函数拼接字段,例:SELECT CONCAT(name,':',age) c FROM `user` WHERE age > 10;
-
CONCAT(str1,str2,...)
-
还可以直接对检索出的数据执行计算,例:SELECT age*age FROM `user` WHERE age > 10
插入数据:
-
插入一条数据:INSERT INTO user(name,age,sex,role_id) VALUES('小西',33,2,1);
-
插入检索出的数据:INSERT语句与SELECT语句一块使用,将SELECT返回的结果集作为插入集。例:INSERT INTO role(id,name) SELECT age,name FROM user;参数属性及顺序都必须一致。列名无所谓。
-
复制表:CREATE TABLE role1 AS SELECT * FROM role,复制role表到role1表。
更新和删除数据:
-
更新一条数据:UPDATE user SET age = 15,name='小兰' WHERE age=16。
-
更新的多个条件之间使用逗号分隔。
-
删除一条语句:DELETE FROM user WHERE age = 15
-
快速删除表中所有行:例,删除role1表中所有数据:TRUNCATE role1。(因为不记录数据的变动,所以快)
表的连接(各种连接的含义)
-
内部连接(等值连接):INNER JOIN,会输出两个表的笛卡尔积,只使用JOIN关键词也会产生笛卡尔积。
-
自连接:即自己连接自己
-
自然连接:排除多次出现,使每个列只返回一次。系统不会实现,由自己实现。
-
外部连接:
-
左外连接(LEFT JOIN),右外连接(RIGHT JOIN),全外连接(FULL JOIN)。
-