划重点:实际项目开发中禁止使用*号来代替所有列名!!!
SELECT b_id,b_name,b_price FROM tb_book
SELECT b_name FROM tb_book
AS可写可不写,别名使用单引号或双引号引起来
SELECT b_id AS '编号',b_name AS '书名',b_price AS '价格' FROM tb_book
SELECT 8%3
SELECT VERSION()
DISTINCT
SELECT DISTINCT address FROM tb_job
+号:在Java中操作的两个对象都为数值型时表示运算符,只要有一个为字符串时则表示拼接;而在MySQL中+号只表示运算符,若操作的对象中有字符串,会先尝试把它转换成数值,转换失败则把它变成“0”。
null:只要运算的一方为null,则无论如何结果都为null
查询价格高于20的书籍
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price>20
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price>20 AND b_id>9
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price>30 OR b_id>9
SELECT b_id,b_name,b_price FROM tb_book WHERE b_name LIKE '%斗%'
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price BETWEEN 20 AND 40
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price IN (50,100,40)
SELECT b_id,b_name,b_price FROM tb_book WHERE b_price IS NOT NULL
SELECT b_id,b_name,b_price FROM tb_book ORDER BY b_price ASC
SELECT b_id,b_name,b_price FROM tb_book ORDER BY b_price DESC
查询所有书籍的价格总和,SUM
SELECT SUM(b_price) FROM tb_book
SELECT AVG(b_price) FROM tb_book
SELECT MAX(b_price) FROM tb_book
SELECT MIN(b_price) FROM tb_book
SELECT COUNT(b_name) FROM tb_book
SELECT COUNT(job),address FROM tb_job GROUP BY address
SELECT COUNT(job),address FROM tb_job GROUP BY address HAVING COUNT(job)>5
又称多表查询,当查询的字段来自多个表就会用到连接查询
SELECT a.b_id,a.b_name,a.b_price,b.b_type from tb_book a,tb_type b WHERE a.t_id=b.t_id
字符串函数
作用 | 函数 | 结果 |
---|---|---|
转小写 | LOWER(‘SQL Course’) | sql course |
转大写 | UPPER(‘SQL Course’) | SQL COURSE |
拼接 | CONCAT(‘Hello’, ‘World’) | HelloWorld |
截取 | SUBSTR(‘HelloWorld’,1,5) | Hello |
长度 | LENGTH(‘HelloWorld’) | 10 |
字符出现索引值 | INSTR(‘HelloWorld’, ‘W’) | 6 |
字符截取后半段 | TRIM(‘H’ FROM ‘HelloWorld’) | elloWorld |
字符替换 | REPLACE(‘abcd’,‘b’,‘m’) | amcd |
数字函数
作用 | 函数 | 结果 |
---|---|---|
四舍五入 | ROUND(45.926, 2) | 45.93 |
截断 | TRUNC(45.926, 2) | 45.92 |
求余 | MOD(1600, 300) | 100 |
日期函数
作用 | 函数 | 结果 |
---|---|---|
获取当前日期 | now() | |
将日期格式的字符转换成指定格式的日期 | STR_TO_DATE(‘9-13-1999’,’%m-%d-%Y’) | 1999-09-13 |
将日期转换成字符 | DATE_FORMAT(‘2018/6/6’,‘%Y年%m月%d日’) | 2018年06月06日 |
出现在其他语句中的select语句称为子查询,通俗的来说就是一个语句里包含着一个select语句
查询分类为“童话”的书籍信息
SELECT b_id,b_name,b_price FROM tb_book WHERE t_id=
(SELECT t_id FROM tb_type WHERE b_type='童话')
当界面上要显示的数据一页显示不全,需要分很多页时,就要用到分页查询
分页查询书籍表
LIMIT 开始的下标,每页显示条数
SELECT b_id,b_name,b_price FROM tb_book LIMIT 0,5