赞
踩
‘*’ 号代表所有的列
exampleSELECT * FROM ta_name;
- 1
example
SELECT id,name FROM tb_student;
- 1
example
SELECT tb_1.id,tb_2.name,tb_3.sex,...;
- 1
SELECT * FROM tb_name;
- 1
SELECT 字段名 FROM 表名;
- 1
这就需要一个查询条件,可以使用 WHERE 的子句来作为查询条件
下面给出比较运算符参考表
运算符 名称 示例 运算符 名称 示例 = 等于 id=5 IS NOT NULL 是否为空 id IS NOT NULL > 大于 id>5 BETWEEN 是否在某区间中 id BETWEEN 1 AND 15 IN 在某些固定值中 id IN(1,2,3) NOT IN 不在某些固定值中 name NOT IN(shi,li) LIKE 模式匹配 name LIKE(‘shi%’) REGEXP 正则表达式匹配 Name REGEXP 正则表达式 SELECT * FROM tb_name WHERE name='shi';
- 1
有两种通配符’%‘代表匹配多个字符,’_'代表匹配单个字符
SELECT * FROM tb_name WHERE bookname LIKE "%MYSQL%";
- 1
AND 且关系 OR 或关系
exampleSELECT * FROM tb_name WHERE name='mr' AND id=1;
- 1
SELECT * FROM tb_name WHERE name='mr' ORid=1;
- 1
SELECT DISTINCT 字段名 FROM 表名;
- 1
ORDER BY 字段名 [ASC | DESC ];
- 1
ASC 升序,DESC 降序
SELECT bookid,COUNT(*) FROM tb_borrow GROUP BY bookid;
- 1
可以结合 GROUP_CONCAT 一起使用显示分组的所有字段的值
SELECT bookid,GROUP_CONCAT(readerid) FROM tb_borroe GROUP BY bookid;
- 1
读取三条记录
SELECT * FROM tb_borrow1 ORDER BY borrowTime DESC LIMIT 3;
- 1
从第二个开始读,读取三条记录
SELECT * FROM tb_borrow1 ORDER BY borrowTime DESC LIMIT 2,3;
- 1
- 对于’ * ’ 作为参数返回包括 NULL 的所有的行的数目
- 对于其他参数,返回非 NULL 行的总数
SELECT COUNT(*) FROM tb_readr;
- 1
可以求出某个数值类型所有字段取值总和
SELECT SUM(amount) FROM tb_student;
- 1
这里就不一 一介绍了
是最普通的链接类型
SELECT id,name,sex,age FROM student;
- 1
是指将左表中的数据分别和右表中的数据连接组合,返回的结果除内连接外,包括左表中不符合条件的数据,并在右表的相应列中添加NULL
语法SELECT 字段名称 FROM 表名1 LEFT JOIN 表名2 ON 表名1.字段1= 表名2.属性名2;
- 1
example
SELECT id,name,sex FROM student LEFT JOIN class ON student.id=class.id;
- 1
是指将右表中的数据分别和左表中的数据连接组合,返回的结果除内连接外,包括右表中不符合条件的数据,并在左表的相应列中添加NULL
语法SELECT 字段名称 FROM 表名1 RIGHTJOIN 表名2 ON 表名1.字段1= 表名2.属性名2;
- 1
example
SELECT id,name,sex FROM student RIGHT JOIN class ON student.id=class.id;
- 1
在查询的时候可以增加其他限制条件,使查询结果更加准确.
exampleSELECT id,name,sex FROM student,class WHERE student.id = class.id AND sex='man';
- 1
SELECT id,name,sex FROM student WHERE id IN(SELECT id FROM class);
- 1
SELECT score FROM student WHERE name='优秀';
- 1
EXISTS 当存在时就返回 true 执行外层查询语句,否则不执行,就没有查询结果
NOT EXISTS 与EXISTS 相反当返回true外层不执行查询语句,返回false 外层执行查询语句SELECT id,name,sex FROM student WHERE EXISTS(SELECT * FROM class WHERE student.id=class.id);
- 1
- 2
表示满足其中任意一个,通常和运算符一起使用,只要满足内层查询中的任意一个就可以通过该条件来执行外层查询
SELECT * FROM student WHERE socre > ANY(SELECT score FROM student2 WHERE classid=3);
- 1
- 2
表示满足所有的条件才执行外层查询
SELECT * FROM student WHERE score > ALL(SELECT score FROM student2 WHERE classid=3);
- 1
- 2
合并查询是将多个 SELECT 查询语句的结果合并到一起展示
通常使用UNION 和 UNION ALL
- 使用UNION关键字
SELECT name FROM class1 UNION SELECT name FROM class2;
- 1
- 2
- 3
- UNION ALL
使用方法和UNION 相同,区别在于UNIOON ALL 会去掉相同的结果
当表的名字特别长的时候查询起来很不方便,这时候就需要给这个表去一个别名了
SELECT bookname,auther,price,page,typename,days FROM td_bookinfo AS book LEFT JOIN td_booktype AS type ON book.typeid=type.id;
- 1
- 2
- 3
其中book 是tb_bookinfo的别名,type 是td_booktype的别名
字段名 AS 别名;
- 1
字段名 REGEXP '匹配方式'
- 1
模式字符 | 解释 | example |
---|---|---|
^ | 匹配特定字符或字符串开头的记录 | ‘^php’ |
$ | 匹配特定字符或字符串结尾的记录 | ‘再见$’ |
. | 匹配字符串中任意一个字符,包括回车换行 | ‘na.e’ |
[字符集合] | 匹配字符集合中的任意一个字符 | ‘[PCA]’ |
[^字符集合] | 匹配除字符集合以外的任意字符 | ‘[^PCA]’ |
S1|S2|S3 | 匹配其中的任意一个字符串 | ‘dgfg’|‘as’|‘asda’ |
* | 匹配多个该符号之前的字符,包括0个或1个 | ‘J*A’ |
+ | 匹配多个该符号之前的字符,包括1个 | ‘J+A’ |
字符串{N} | 匹配字符串出现N次 | a{3} |
字符串{M,N} | 匹配字符串出现至少M次,最多N次 | ‘a{M,N}’ |
参考书籍: MySQL数据库管理与开发(慕课版)
如有错误,欢迎指正
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。