教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

SQL标准语言内容大全(4)

来源:网络收集 时间:2026-07-16
导读: 2、like使用的通配符: % 代表0个或任意多个字符 _ (下划线)代表任意一个字符,一定会有一个,不能没有 3、通配符组合:通配符可以放各种位置,也可以互相组合,比如: s% //s字符开头的字符串 %s //s字符结尾的

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

SQL标准语言内容大全(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520304.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)