基础查询
查询表中的所有数据(返回的是一张虚拟表):SELECT FROM * 表名
查询某个字段的数据:SELECT 字段名 FROM 表名
条件查询WHERE
SELECT * FROM 表名 WHERE (选择条件)
=、!=、<>、<、<=、>=;
BETWEEN ...AND;
IN(set);
IS NULL;
AND;
OR;
NOT;
例如:查询性别为女,且年龄为15岁
SELECT * FROM stu WHERE gender='female' AND age=15;
查询学号为01或者姓名为张三的记录
SELECT * FROM stu WHERE sid ='01' OR sname='张三';
查询学号为01,02,03的记录
SELECT * FROM stu WHERE sid IN ('01','02','03');
查询年龄为空的记录
SELECT * FROM stu WHERE age IS NULL;
查询年龄在20-40 之间的记录
SELECT * FROM stu WHERE age BETWEEN 20 AND 40;
查询性别非男的学生记录
SELECT * FROM stu WHERE gender != 'male';
模糊查询LIKE
_任意一个字符
%任意0-n个字符
SELECT * FROM stu WHERE sname LIKE ' '
例如:查询姓名由五个字母构成的学生记录
SELECT * FROM stu WHERE sname LIKE '_ _ _ _ _';
查询姓名由五个字母构成的学生记录,且第五个字母是i
SELECT * FROM stu WHERE sname LIKE '_ _ _ _i';
查询姓名以“z”开头的学生记录
SELECT * FROM stu WHERE sname LIKE 'z%';
查询姓名中包含“z”的记录
SELECT * FROM stu WHERE sname LIKE '%z%';
SELECT * FROM stu WHERE sname LIKE '_ _ _ _ _';
字段控制查询DISTINCT
例如:去除重复记录:SELECT DISTINCT deptno(任意填) FROM emp;
查看雇员的月薪与佣金(之和):SELECT salary,comm FROM emp;
SELECT salary+IFNULL(comm,0) FROM emp;
(任何类型的数据和null相加都是null)
给字段起别名:SELECT ename,salary +IFNULL(comm,0) AS 总工资 FROM emp;
SELECT ename 姓名 ,salary +IFNULL(comm,0) 总工资 FROM emp;
(IFNULL:如果comm为空即NULL,则为0)
查询排序
查询所有学生记录,按年龄升序排序
SELECT * FROM stu(表名) ORDER BY sage ASC;
SELECT * FROM stu(表名) ORDER BY sage;
(如果sage后边不加升序或者降序,则默认为升序即ASC)
查询所有学生记录,按年龄降序排列
SELECT * FROM stu(表名) ORDER BY sage DESC;
查询所有雇员,按月薪降序排序,如果月薪相同,按照编号升序排序
SELECT * FROM emp(表名) ORDER BY salary DESC,empno ASC; (有先后之分,前边的先执行排序)
模糊查询LIKE