sql简单查询,过滤排序、单行函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本SQL select 语句
SQL:structural query language (结构化查询语言)
select * from employees;(查看所有,如果写错表明会出现什么情况?*是查询表中的所有列)
select id , name , email from employees;
注意:SQL 语言大小写不敏感SQL可以写在一行或多行;
关键字不能被缩写也不能被分行(select /from);
运算符:+ 、- 、* 、/
select 8 * 4 from dual(伪表);
练习:查询emp表中员工的no、领导编号、姓名、级别和年薪+1000
数字和日期何以使用算数运算符(标识为number是数字,标识为date的为日期)
Number类型的: select last_name , salary , 12 * salary + 1000 from employees; 区分优先级
Date 类型的: select sysdate(当天日期), sysdate + 1, sysdate + 2 from dual;(加减可以、乘除不可以)
练习:查询员工表中的first_name,last_name和领导编号*10的内容
练习:查询员工表中的first_name,last_name和领导编号+10的内容
空值: 空值不同于0, 凡是空值参与的运算,结果都为空(null)
别名: 1紧跟列明后面不加逗号(select employee_id id , last_name name , salary *12 annual from employees)
2 在列明后面加关键字as
3 别名默认显示都是大写的, 就想小写怎么办? 用”” (select employee_id “id” from employees)
连接符:把列与列连接, 列与字符连接在一起,用’||’表示, 可以用来合成列
在Java里有字符串参与的就像是‘+’
练习: 最后显示的结果是:aaa邓超的生日是01-1月-1965
练习: 查询顾客表中所有信息,别名分别是m_id , 姓名(拼接后),生日和电话号码
注意: Orcale 里的字符串用‘’只有在起别名的时候用到””
重复行:默认情况下,查询会返回全部行,包括重复行
select distinct (重复)department_id from empolyees;
二、过滤和排序数据
select employee_id, employee_name from employee where id > 20
查询生日为1965年1月1日出生的顾客信息
传统日期做法: select customer_id , first_name,last_name,phone from customers where dob='1-1月-1965'
运算符: = , > , >= , < , <= , <> !=
Is null
练习:生日是空的顾客信息
重点:其他比较运算符
1.between...and... (在两个值之间含边界)
查询工资大于3000小于10000的员工的名字
查询工资大于等于3000小于和等于10000的员工的姓名
select last_name from employees where between 3000 and 10000
select last_name from employees where salary >= 3000 and salary <= 10000
2.In 等于值列表中一个
查询工资为3000和10000的员工的姓名
1.select first_name||last_name from employees where salary=3000 or salary=10000
2.select first_name||last_name from employees where salary in(3000,10000)
3.select first_name||last_name from employees where salary =any(3000,10000)
4.select first_name||last_name from employees where salary = 3000
union select first_name||last_name from employees where salary = 10000
--顾客号是1和4的顾客的电话号码(4种方式)
Any:any是小于集合里任何一个,也就是比括号中任何一个小就满足了条件
select first_name||last_name from employees where salary All:比所有的都小,比最小的都小,才满足条件 select first_name||last_name from employees where salary 3.Like 模糊查询 --名字中含有a的员工的信息 select * from employee where last_name like ‘%a%’ --带字母d的顾客的信息 使用order by 子句排序 Asc 升序默认升序 Desc 降序 Order子句在select语句末尾 查询领导编号为2的员工的信息并且按照工资降序 select first_name||last_name from employees where manager_id = 2 order by salary desc 查询顾客表中顾客的信息,fist_name 降序