Oracle数据库的简单查询
查询语句语法结构: select 列名1,列名2,列名3,… from 表; 在Oracle数据库下有一个employees员工表,有一个department部门表,一下操作均基于这两张表: 主要字段有;
Employees:员工表 Employee_id:员工编号, First_name:员工名 Last_name:员工姓 Email:邮箱 Phone_number:电话 Hire_date:入职时间 Job_id:工种。 Salary:薪资 Manager_id:领导编号 Commission_pct:奖金百分比。 Department_id:部门编号。 Departments:部门表: Department_id:部门编号 Department_name:部门名称 Manager_id:部门经理的编号 Location_id:部门地址编号需要注意的有: 1.关键字不区分大小写。表名,字段名也是,select,from 2.Sql脚本里面的标点符号都是英文符号。 3.查询的最后可以跟上分号,多条sql可以同时执行。
查询部分列 查询员工的姓名和薪资: Select first_name,last_name,salary from employees; 运行时需要选中sql脚本查询所有列
3.对列进行数学运算
给列取别名
字符串拼接
数据去重
语法: Select distinct 字段名 from 表名; 查询所有领导的编号 Select distinct manager_id from employees; 注意事项: Distinct后面一般情况下是跟一个字段名。 如果跟两个字段名,表示两个字段的值都相同的数据才算重复数据。 case when 当前时间 sysdate等值查询= 查询出first_name为King的数据。 sql: select * from employees where first_name = ‘King’;
不等值查询
,<,>=,<=,!=(不等),<>(不等)
空值查询 select * from employees where department_id = null;--------------错误的。 select * from employees where department_id is null;----对的。 查询不为空的数据: select * from employees where department_id is not null;
多条件查询 and or
区间查询
枚举查询
模糊查询 【重点】 语法结构: like ‘匹配模式’ 匹配模式特殊字符: % 任意多个字符 _ 一个字符
补充:. SQL单行注释 – 单行注释,相当于Java中//
排序 语法结构 order by 列名 [asc(升序,默认)|desc(降序)] 1.简单排序
select * from employees where department_id = 50 order by salary desc; 当排序的字段的值相同的情况下,想按着另外的顺序进行排序: order by salary desc,first_name asc;---首先按着薪资降序排,当多个人的薪资相同了,这些相同的人员信息按着first_name的字母的字典顺序进行升序排列。函数 实现了一个特定的功能
单行函数 作用于每一行数据,每一行数据得出一个结果a) 取余函数 mod(m,n) 等价于m%n b) 字符串长度 length(字符串) c) to_date(‘字符串日期’,’日期格式’) d)to_char(日期,’日期格式’)
2. 多行函数(组函数) 作用于一组数据,得出一个结果,默认把表中所有行当做1组。
max(列) 求一列最大值 min(列) 求一列最小值 avg(列) 求一列平均值 sum(列) 求一列值得和 count(列) 求该列有值的行数