1.投影操作
语法:SELECT 列名列表 FROM 表名;
-- 投影
SELECT * FROM class;-- 在项目上,不要使用“*”,“*”减低查询效率
SELECT id FROM class;
-- 表前缀,针对多表查询(表字段可能相同)
SELECT class.name FROM class;
-- 表别名(在字段名称很长时使用)
SELECT NAME AS n FROM class AS c;
-- sql中字段的计算计算(四则运算都可以)
SELECT id*2 FROM class;
-- 创建连接地址(连接字符串,url地址)
SELECT CONCAT("/cms/student?","id=",id) as c FROM class;
-- 排除重复DISTINCT
SELECT DISTINCT NAME FROM class; -- 单列
SELECT DISTINCT id,NAME FROM class;-- 多列
-- limit 用于分页,limit 从哪条开始,查条数
SELECT * FROM class LIMIT 0 , 2;-- 第一页
SELECT * FROM class LIMIT 2 , 2;-- 1*2 第一页
SELECT * FROM class LIMIT 4 , 2;-- 2*2 第二页
SELECT * FROM class LIMIT 2;-- 从第一条开始查询2条数据
2.选择操作
语法:SELECT 列名列表 FROM 表名 WHERE 条件;
-- ***** WHERE语句 *****
-- 查询数量,一般不使用count(*)(count(*)会影响效率)
SELECT COUNT(NAME) FROM class WHERE id = 1;
-- 多条件查询(AND并且,OR或者)
SELECT COUNT(NAME) FROM class WHERE id = 1 OR NAME = F20;
-- 批量查询
SELECT * FROM class WHERE id IN (1,3);
-- WHERE IN 主要用于:批量删除
DELETE FROM class WHERE id = 1;
DELETE FROM class WHERE id = 3;
-- 以上两个一起等价于
DELETE FROM class WHERE id IN (1,3);
-- 不在某个范围内
DELETE FROM class WHERE id not IN (1,3);
-- **** 模糊查询 *****(语法:SELECT 列A,列B FROM 表名 LIKE 模式;)
-- % 零个或多个任意字符(既可以是前缀,也可以是后缀)
-- _ (下划线)任意单个字符(既可以是前缀,也可以是后缀)
SELECT * FROM class WHERE NAME LIKE '%0%'; -- 查询name中带有0的
SELECT * FROM class WHERE NAME LIKE 'F%'; -- 查询name中以F开头的
SELECT * FROM class WHERE NAME LIKE 'F_'; -- 查询name中只有两个字符的
SELECT * FROM class WHERE NAME LIKE 'F__'; -- 查询name中有三个字符的
-- 处理空值数据
-- NULL = NULL 返回false
-- 0 返回false
-- 1=0 返回false
SELECT * from student where 0;
3.排序操作
语法:SELECT 列A,列B,列C FROM 表名 ORDER BY 列A,列B,列C...;
-- 按某个条件升序(asc)/降序(desc)排列
SELECT * FROM class WHERE 1 ORDER BY id ASC;