SQL易错点学习

例:table webs

+----+--------------+---------------------------+-------+---------+
| id | name          | url                       	 | alexa  | country  |
+----+--------------+---------------------------+-------+---------+
| 1  | Google        | https://www.google.cm/      | 1      | USA      |
| 2  | taobao        | https://www.taobao.com/     | 2      | CN       |
| 3  | kaola         | https://www.kaola.com/      | 3      | CN       |
| 4  | you163        | http://you.163.com/         | 4      | CN       |
| 5  | Facebook      | https://www.facebook.com/   | 5      | USA      |
+----+--------------+---------------------------+-------+---------+

1.SQL SELECT DISTINCT:用于返回唯一不同的值,可以去掉重复的值
SELECT DISTINCT country FROM webs; -----USA,CN
2.SELECT * FROM webs WHERE country = ‘CN’ and alexa = 3;
文本字段使用了单引号,如果是数值字段,请不要使用引号.
WHERE 子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当 0 时转化为 false,1 转化为 true.
between and :注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值
逻辑运算的优先级:() > not > and > or
3.ORDER BY: SELECT * FROM webs ORDER BY country , alexa;
ASC 顺序 | DESC 倒序
ORDER BY 多列的时候,先按照第一个country 排序,在按照第二个alexa排序;
order by A desc,B – 这个时候 A 降序排列,B 升序排列
order by A ,B desc – 这个时候 A 升序,B 降序排列
4.insert into select 和select into from 的区别:
–insert into webs select * from web where neza = ‘neza’ --插入一行,要求表webs 必须存在
–select * into webs from web where neza=‘neza’ --也是插入一行,要求表webs 不存在 (oracle不支持此写法)
oracle写法:create table A as select * from B where 。。。
5.update:在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
set sql_safe_updates=1; 表示开启该参数
6.delete:SQL关于删除的三个语句:DROP、TRUNCATE、 DELETE 的区别
DROP webs; – 删除表webs,并释放空间,将webs删除的一干二净。
TRUNCATE webs; --删除表webs里的内容,并释放空间,但不删除表的定义,表的结构还在(注意:truncate 命令删除的数据是不可以恢复的)
DELETE:
1.删除指定数据
DELETE FROM webs WHERE alexa = 1 ;
2.删除整个表
仅删除表test内的所有内容,保留表的定义,不释放空间。
DELETE FROM webs 或者 DELETE FROM webs ;
DELETE * FROM webs 或者 DELETE * FROM webs ;
速度:一般来说: drop > truncate > delete
安全性: 小心使用 drop 和 truncate, 尤其没有备份的时候。否则哭都来不及
使用上, 想删除部分数据行用 delete, 注意带上 where 子句,delete 命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而 truncate 命令删除的数据是不可以恢复的。
想删除表, 当然用 drop。

猜你喜欢

转载自blog.csdn.net/weixin_42966484/article/details/84557226
今日推荐