网页设计师常逛网站,电子商务网站建设基础考试,wordpress服務器,无锡招标网官方网站查询语句
这边查询是给予一定表格,这边先做个解释
教师表包括(name(姓名),gender(性别),salary(工资),title(职位),subject_id(课程的编号),comm(奖金))
学生表包括(姓名(name),gender(性别),job(职位),生日(birth))
模版 SELECT 字段名 FROM 查询表 WHERE 查询语句 或与非…查询语句
这边查询是给予一定表格,这边先做个解释
教师表包括(name(姓名),gender(性别),salary(工资),title(职位),subject_id(课程的编号),comm(奖金))
学生表包括(姓名(name),gender(性别),job(职位),生日(birth))
模版 SELECT 字段名 FROM 查询表 WHERE 查询语句 或与非 AND 查询语句条件必须同时满足才能返回true, 满足true就返回查询相应的值 OR 查询语句条件只要满足其一就返回true, 满足true就返回查询相应的值 NOT 与查询条件相反就返回true, 满足true就返回查询相应的值 实例
#查看工资高于5000的女老师都有谁?
SELECT name,age,gender,salary
FROM teacher
WHERE salary5000 AND gender女; #查看工资高于5000的男老师或所有女老师的工资
SELECT name,gender,salary
FROM teacher
WHERE salary5000 AND gender男
OR gender女;
6.查看工资在4000到8000以外的老师及具体工资?
SELECT name,salary
FROM teacher
WHERE salary NOT BETWEEN 4000 AND 8000;需要注意是或与且具有优先级,AND级别比OR级别高,会优先执行AND的代码
用于在一个范围内筛选值(一般数字范围,含头含尾) BETWEEN 最小值 AND 最大值 实例
#查看工资在4000到8000以外的老师及具体工资?
SELECT name,salary
FROM teacher
WHERE salary NOT BETWEEN 4000 AND 8000;指定多个可能的值来过滤结果集 IN(value1,value2,...) 多个值有,分割 #查看一级讲师和二级讲师的奖金(comm)是多少?
SELECT name,comm
FROM teacher
WHERE title IN (一级讲师,二级讲师);
用于从结果集中删除重复的行 SELECT DINSTINCT 字段名 FROM 查询表名 #查看所有女老师的职称都是什么?
SELECT DISTINCT title
FROM teacher
WHERE gender女;
模糊查询
LIKE 关键字 用于在 WHERE 子句中搜索列中的指定模式 通配符 % :匹配0,1个 多个字符 _ : 匹配单一字符 #举例
1.某字段后模糊查询
# 查询名字姓李的学生姓名SELECT name,gender,ageFROM studentWHERE name LIKE 李%;
2.某字段前模糊查询
# 查询名字以郭结尾的学生姓名SELECT name,age,genderFROM studentWHERE name LIKE %郭;
3.包含某字符的模糊查询
# 查询名字中包含江的学生姓名SELECT name,age,genderFROM studentWHERE name LIKE %江%;
_ 举例
1.一个_模糊匹配
# 查询名字第二个字是苗的学生信息SELECT name,age,genderFROM studentWHERE name LIKE _苗%;
2. 多个_模糊匹配
#查询名字中第3个字是杰的学生信息SELECT name,age,genderFROM studentWHERE name LIKE __杰% ;
NULL值判断
区别 NULL是一种状态 不是数值 和 java中定义的不一样 IS 是一个比较操作符它主要用于与NULL 值进行比较 因为标准的比较操作符如 、 等不能用于 NULL 值所以需要使用 IS或 IS NOT 来检查 NULL 值 实例
1.查询某字段状态为null
#查询奖金为null的老师
SELECT name, comm FROM teacher WHERE comm IS NULL;
2.查询某字段状态不为为null
#查询奖金为null的老师
SELECT name, comm FROM teacher WHERE comm IS NOT NULL; 排序 ORDER BY 用于对查询结果集中的记录进行排序,默认升序 实例
1.升序
#查看老师的奖金排名,奖金由少到多(默认升序)
SELECT name, comm FROM teacher ORDER BY comm ASC(可写可不写);
2.降序
#查看老师的奖金排名,奖金由少到多(默认升序)
SELECT name, comm FROM teacher ORDER BY comm DESC(必须写); 这边用学生表举例
特殊情况 日期排列 (远小近大) 是以现在时间为判断基准
#查看学生的生日,按照远小近大的升序(年龄由大到小)
SELECT name,birth From student ORDER BY birth ;
#查看学生的生日,按照远小近大的升序(年龄由小到大)
SELECT name,birth From student ORDER BY birth DESC; 多字段排序
ORDER BY 字段名1,字段名2... 优先结果集以第一个字段排序,当第一个字段有重复的值就以第二个字段排序,依次类推 当一个字段排序没有重复的值,不会用第二个字段排序 实例
#查看老师的奖金和工资 首先按照奖金升序,再以工资降序
SELECT comm,salary From teacher ORDER BY comm,salary DESC; 注意的是null是状态,它可能是无限大或者无限小,这边是无限小 分页
运用了大量数据,电商产品
分页是查询的方言,不同数据库sql写法不同
这边以mariadb和mysql举例 SELECT 字段名 FROM 查询表格 WHERE 查询语句 ORDER BY 字段 LIMIT M,N 用于分页查询 M:跳过结果集中多少条记录 N:从跳过的记录后开始检索出多少条记录 实例
#查询老师奖金前5名
M :(1-1)*5 这边指的是跳过条目 这边要看前5名,不需要跳过
N:5 显示条目
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 0,5;
#查询老师奖金6-10名
M :(2-1)*55 这边指的是跳过条目 这边要跳过前5名,5/5是一页,在原本第2页要现在放置到第一页
N:5
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 5,5;
#查询老师奖金10-15名
M : 跳过9条,
N: 6 15-1016
SELECT name,salary FROM teacher ORDER BY salary DESC LIMIT 9,6;
#查询老师奖金信息 按照降序排,每页显示3条,显示5页
M:(5-1)*312; 这边指的是页数
N:5
SELECT name ,comm FROM teacher ORDER BY comm DESC LIMIT 12,3;
使用表达式
#查看老师的年薪和月薪
SELECT name ,salary,salary*12 FROM teacher;
#薪资没有空值null 空值函数 IFNULL(arg1,arg2) 如果arg1不为null,返回arg1,否则返回arg2 #NULL值是状态不能进行计算,这边使用IFNULL,当comm为null替换成0
#查看老师的奖金和薪资的总和
SELECT name, salary,comm ,salaryIFNULL(comm,0) FROM teacher;
#查看老师的奖金和全年的奖金
SELECT name, salary,comm ,IFNULL(comm,0)*12 FROM teacher;别名 字段名 AS 别名 实例都行
#字段别名(不写 AS)
SELECT name,salary,salary*12 annusal FROM teacher;
#字段别名(别名单引号)
SELECT name,salary,salary*12 annusal FROM teacher;
#字段别名(别名单引号加AS)
SELECT name,salary,salary*12 AS annusal FROM teacher;
#字段别名(别名双引号加AS)
SELECT name,salary,salary*12 annusal FROM teacher;
#字段别名(别名双引号加AS)
SELECT name,salary,salary*12 AS annusal FROM teacher; 运行图 特殊情况
数据库有关键字或者别名中有空格: 必须加单引号或者写双引号
//这边必须写单引号或者双引号
SELECT name,salary,salary*12 AS annusal unlock FROM teacher;
//这边必须写单引号或者双引号
SELECT name,salary,salary*12 AS FORM FROM teacher;
不写报语法结构错误