SQL语法快速回顾
学习及整理来源:
做了些笔记快速记忆
以下为示例表(在'People'数据库中创建了'Friends'表)
DATABASE NAME: People
TABLE NAME: Friends
| id | name | location | item | SorN |
| 1 | zty | CN | switch | Y |
| 2 | ter | CA | xbox | Y |
| 3 | jo5 | CN | ps5 | N |
| 4 | ada | CA | pc | N |
0. 首先。。
比如mysql:
mysql> use People; (打开数据库'People')
mysql> set names utf8;(编码啥的)
1. SELECT
SELECT id,name, ...
FROM Friends;
或
SELECT id, name, ... FROM Friends;
如果
SELECT * FROM Friends;
就会显示整个表
2. SELECT DISTINCT
只会显示不重复的,比如说第3列
SELECT DISTINCT location FROM Friends;
会输出 cn和ca(当然是以表格形式)
3. WHERE
其实就是加了'条件',比如
SELECT * FROM Friends WHERE id=1;
或
SELECT * FROM Friends WHERE name='zty';
注意数值字段不要用引号
以上例子中"="就是运算符,常用运算符有
| = | 等于 |
| <> or !=(并不是都适用) | 不等于 |
|
> |
大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| BETWEEN ... (AND) ... | 在某个范围内,一般接AND用 这里范围边缘是包括的(比如SELECT * FROM Friends WHERE id BETWEEN 2 AND 4,那么就是输出id为2,3,4的各个数)是不一定包括的,有可能是" ( )" 、 "[ ]" 甚至是 "[ )" ,具体情况根据具体数据库判定。 |
| LIKE | 模糊搜索(好玩的部分,比如 SELECT * FROM Friends WHERE item LIKE 'p%', 那么会输出带有ps5的第三行和带有pc的第四行。假如是SELECT * FROM Friends WHERE item LIKE 'p_',那么只会输出带有pc的第四行。因为 %表示多个字值,_表示一个字符) |
关于通配符:
| % | 替代0个或多个字符 |
| - | 替代一个字符 |
| [charlist] | 字符列中的任何单一字符 |
| [^charlist] or [!charlist] | 不在字符列中的任何单一字符 |
| IN |
精确查询(可查多个),比如 SELECT * FROM Friends WHERE id IN (3,2,4); 且并不需要按顺序。 |
| is null | 空值 SELECT * FROM Friends WHERE id is null; 这条没结果的,我这个表没有空值。 |
| 逻辑运算优先级: () → not → and → or | |
4. AND和OR运算符
SELECT * FROM Friends WHERE location='CN' AND id<3
SELECT * FROM Friends WHERE location='CN' OR item='pc'
通过括号还能变更复杂
SELECT * FROM Friends WHERE location='CN' AND (id<3 OR id>4) 当然这句意义不大,只是做个例子
5.排序 ORDER BY
ASC升序 DESC降序
SELECT * FROM Friends ORDER BY id DESC 按照id降序排整个表
多个列也可以排,具体参考例子(因为懒)。总结就是谁在前面就先排谁
SQL ORDER BY 关键字 | 菜鸟教程 (runoob.com)
6.插入INSERT INTO 注意id列自动更新且唯一,不用管
不指定 INSERT INTO Friends VALUES ('zyc','CA','ps4','N');
指定列 INSERT INTO Friends ('name','location','SorN') VALUES ('zyc','CA','N')
还不清楚如果不填的话是空值还是0
7.更新UPDATE
UPDATE Friends SET location='CA' WHERE name='zty';
把zty的location更新成CA
注意!!如果没有WHERE语句,会把所有location的值都变成CA(坏)
在MySQL中,可以设置set sql_safe_updates=1; 这样没写WHERE就会报错
8. 删DELETE
DELETE FROM Friends WHERE name='zty' AND location='CA';
同样,不加WHERE就会删除所有行
9.SELECT TOP,LIMIT,ROWNUM
TOP:前百分之多少的子句显示,是SQL SERVER/MS Access语法
SELECT TOP 10 name
From Friends;
LIMIT:前面几条数据,是MySQL语法:
SELECT * FROM Friends LIMIT 5;
ROWNUM: 同上,但是是Oracle的语法:
SELECT name FROM Friends WHERE ROWNUM <=3;
10. CONCAT,AS,TRIM(LTRIM、RTRIM)
用来把表按你想要的格式显示
CONCAT把多个列合成一列,用逗号分隔(没分之前是竖线分隔的)
AS 改名字,可以给列改,也可以给表改,还可以跟CONCAT合起来用
TRIM去掉(两边)空格,如果输出的内容里有空格,就去掉。(LTRIM,RTRIM只去掉左边/右边空格)
SELECT name, CONCAT(location,'SorN')AS L_S FROM Friends;
结果就是把名字和L_S(位置和SorN在一个方框里)输出到屏幕上。
未完。。。

浙公网安备 33010602011771号