SQL标准语言内容大全(4)
2、like使用的通配符:
% 代表0个或任意多个字符
_ (下划线)代表任意一个字符,一定会有一个,不能没有
3、通配符组合:通配符可以放各种位置,也可以互相组合,比如:
s% //s字符开头的字符串 %s //s字符结尾的字符串 _s% //第二个字符为s,后面随意 _s //总共两个字符,第二个为s
4、由于%和_用作了通配符,如果内容中本身有%或_的,就需要用到反义,如:
job_id like '%SA\\_%' escape '\\';
//escape '\\表示'用\\作为反义符,表示包含sa_的任意字符串
事实上,使用'\\'作为反义不需要加escape(它是默认的),如果想使用其它字符作为反义符,一定要加escape,例如
job_id like '%SA@_%' escape '@';
演示-like
搜索1995年进入公司的员工
select last_name,hire_date from hr.employees
where hire_date like '1999%';
练习-like通配符
(5分钟)搜索姓氏(last_name)中第三个字母为a的所有员工。 练习-销售岗位的员工
(5分钟)销售岗位的编码为SA_,请你搜索出所有销售岗位的员工信息:employee_id, last_name, job_id。
3-5 null条件
is null用来测试是否空值,is not nul表示非空,例如
select last_name, job_id,commission_pct from hr.employees
where commission_pct is null;
以上语句查询没有提成比例的员工,即非销售线员工。 练习-公司老大
(5分钟)查询公司所有员工的老大。
提示:所有员工都有经理,只有老大是没有经理的。
3-6逻辑条件
1、到目前为止,所有where条件都只有一个条件,有时候需要用到多个条件进行更精准的搜索,需要用到and 和 or 运算符。 2、逻辑运算符:
and 条件1 and 条件2 两个条件都满足才为true or 条件1 or 条件2 其中一个条件满足就为true not not 条件 取反
3、and的例子:
select employee_id, last_name, department_id, salary from hr.employees
where salary >= 10000 and department_id = 90;
4、or的例子:
select employee_id, last_name, department_id, salary from hr.employees
where salary >= 10000 or department_id = 90;
演示-逻辑运算符 演示and 和 or
select employee_id, last_name, department_id, salary from hr.employees
where salary >= 10000 and department_id = 90;
select employee_id, last_name, department_id, salary from hr.employees
where salary >= 10000 or department_id = 90;
练习-部门和薪资
(5分钟)查询工资在5000和12000之间并且在部门20或50中的员工的姓氏、部门、工资。提示:用between和in的组合 练习-like组合
(5分钟)查询出所有姓氏中有'a' 或者有 'e'的所有员工。
3-7优先顺序
1、where条件的优先顺序如下:
1、算术运算符 * / + - 2、连接运算符 ||
3、比较条件 = > >= < <= <> !=
4、is [not] null、[not] like、[not] in 5、[not] between 6、not 逻辑条件 7、and 逻辑条件
8、or 逻辑条件
2、如果写复杂条件组合的时候,为防止出现顺序错误,建议用小括号括起来。例如以下两个条件:
条件1:岗位是销售代表 或者 岗位是总裁并且工资超过15000
where job_id = 'SA_REP' or job_id = 'AD_PRES'
and salary > 15000;
条件2:岗位是销售代表或者总裁, 并且工资超过15000
where (job_id = 'SA_REP' or job_id = 'AD_PRES')
and salary > 15000;
练习-组合条件
(5分钟)查询出职位为销售代表(SA_REP)并且工资超过10000的,或者职位为仓库管理员(ST_CLERK)并且工资不等于2500、3500或7000的所有员工的姓氏、职务、工资。
3-8 order by结果排序
1、查询出结果以后,顺序是没有定义的,可以使用order by子句来进行排序,order by子句必须放在sql语句的最后。
order by {column, expr} [ASC | DESC];
2、order by必须要指定排序的对象,可以是列、表达式、别名。 3、排序方式有两种:asc升序和desc逆序,默认是升序。
4、排序以后,往往伴随着分页查询,例如:查询公司里工资最高的5个人
select last_name, salary from hr.employees order by salary desc
limit 5 offset 0;
//limit表示查询几条(一页几条),offset表示从哪里开始查
注:不同的数据库,分页机制有不同的实现,这里只是本系统数据库的实现方式,具体应用时要根据数据库类型而定。 演示-按聘用时间升序
演示order by:按聘用时间降序,时间从近到远,早的排在后面。
select last_name, hire_date from hr.employees
order by hire_date desc;
演示-按别名排序 按照年薪别名进行排序
select last_name, salary*12 annsal from hr.employees
order by annsal;
演示-多列排序
多列排序,先按部门降序,同一部门的按年薪升序
select last_name, department_id, salary*12 annsal from hr.employees
order by department_id desc, annsal;
练习-查询和排序
(5分钟)查询能赚取提成的员工的姓氏、工资和提成比率,按照工资和提成比率降序排列。 练习-字母排序
(5分钟)按照姓氏的字母顺序查询部门20和部门50中的所有员工的姓氏和部门编号。 练习-日期排序
(5分钟)查询在1998年2月20日和1998年5月1日之间聘用的员工的姓氏、职务、聘用日期,按照聘用日期进行升序排列。 练习-分页查询 (5分钟)
分页查询公司中按工资排序的员工姓氏和工资,假设一页为20条数据,现在要求查询出第3页的数据。
4-1等值关联
1、当需要查询多表关联数据时,可以在where使用联结条件。例如:
员工表里保存着部门编码,但是没有部门名称,部门名称在部门表里,现在需要查询出所有员工的姓氏、部门编码、部门名称:
select e.last_name, e.department_id, d.department_name from hr.employees e, hr.departments d
where e.department_id = d.department_id;
2、以上sql语句的where条件是一个等值联结,通过员工表中的部门编码 和部门表中的部门编码相等,来确定两个表的数据联结到一起。如果不加这一句联结条件,就会形成一个笛卡尔乘积(员工表的每一行 乘以 部门表的每一行)。例如:
select e.last_name, e.department_id, d.department_name from hr.employees e, hr.departments d;
3、等值联结语法:
select table1.column, table2.column from table1, table2
where table1.column1 = table2.column2;
找出所有两个表中这两个字段相等的记录,如果有一个表中此字段的值在另一表中不存在,则记录会被过滤。
也可以同时联结更多的表,一般n个表进行联结,需要n-1个联结条件。 演示-员工部门关联
查询所有员工的姓氏、部门编码、部门名称。
select e.last_name, e.department_id, d.department …… 此处隐藏:3374字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




