SQL必知必会(3)--逻辑操作符、通配符、字段的拼接、表的连接 及 数据的增删改

逻辑操作符

  • 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)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章