--查询当前数据库名称
Select name from v$database;
--时查询账户状态
Select username,account_status from dba_users
--解锁用户
Alter user scott account unlock
--修改用户密码
Alter user scott identified by admin
--查询全部数据
select * from 表名
--如果想查询员工的姓名和年薪,可以使用计算列
select ename,sal*12 from emp
--查询系统当前时间
--select sysdate from dual
--给字段加别名 起别名时 as也可以不加,但最好加上 注意如果别名本身带有空格,需要用””括起来查询员工姓名和年薪,年薪字段显示成 annual_sal
select ename,sal*12 as annual_sal from emp
--nvl(comm,0)
如果第一个参数为null,则返回第二个参数(0),
如果第一个参数不为null,则函数返回第一个参数本身
--字符串和字符串连接 oracle中字符串连接是 || 号 字符串使用’’如果字符串中本身就有’,想显示这个单引号,需要使用两个单引号进行转义,即’’代表‘
--查员工的姓名和月薪, 数据的显示格式如 姓名: SMITH,月薪:800
select '姓名:'||ename || ',月薪:' || sal as ename_sal from emp
--显示 员工姓名 连接上 123’4
select ename||'123''4' from emp
--使用distinct关键字去掉重复行 如果distinct修饰两个字段,代表两个字段组合起来不能重复
--查看员工来自哪些个部门
-select distinct deptno from emp
--等值条件
--查询部门编号为10的员工的全部信息
select * from emp where deptno=10
--非等值条件
--查询薪水大于1500的员工姓名,工资
select ename,sal from emp where sal>1500
--查询部门编号不是10的员工姓名和薪水以及部门编号,<>表示不等于,也可以用!=表示
select ename,sal ,deptno from emp where deptno<>10
--使用between and 确定范围
--查询薪水大于等于800小于等于1500的员工姓名和工资
select ename,sal from emp where sal between 800 and 1500
--NULL
--查询没有奖金的员工姓名和工资、奖金 注意没有奖金不能使用 comm=‘’
select ename,sal,comm from emp where comm is null
--使用in简化多个or
--查询薪水是800或1500或2000的员工的姓名和薪水、奖金
select ename,sal,comm from emp where sal=800 or sal=1500 or sal=2000select ename,sal,comm from emp where sal in(800,1500,2000)
--多个条件 查询部门编号为10并且薪水大于1000的员工的姓名和工资
select ename,sal from emp where deptno=10 and sal>1000
--模糊查询
使用like关键字,支持条件的模糊查询
横线_代表一个字母
%代表0个或多个字母要想查带%的字符串 需要用到转义字符\%
需要使用escape 关键字指定转义字符
--查询姓名里面包含ALL的员工姓名
select ename from emp where ename like '%ALL%'
--查询姓张的员工
select * from emp where sname like '张%’
--查询第二个字母为A的员工姓名
select ename from emp where ename like '_A%'
--order by对过滤后的数据进行排序asc表示升序 desc表示降序 默认按升序排列
--查询所有部门信息,按部门编号降序排列
select * from dept order by deptno desc
--查询所有的员工的信息,根据薪水升序排列
select * from emp order by sal asc
--查询员工的姓名、薪水、部门编号,先按部门编号升序、部门编号相同的按姓名降序
select ename,sal,deptno from emp order by deptno asc,ename desc
--字符串处理函数
lower(input)转小写 把ename字段转换成小写
select lower(ename) from emp
upper(input) 字符转大写
initcap(input) 将每个单词首字母转大写
concat(input1,input2) 连接第一个字符值到第二个字符值,等价于“||”
substr(input,m[,n]) 从m开始取n个字符,n被忽略则取到字符串结尾
length(input) 返回字符数
instr(input,char[,m][,n]) 返回在字符值中查找字符串char的位置。m为查找开始位置,n为第几次发现,mn默认1
replace(input,char1,chr2) 从字符串中查找char1,找到替换成char2
lpad(input,n,char) 从左边对字符串使用char进行填充,直到满足参数n的长度
rpad(input,n,char) 同上 从右边
数字处理函数
Round(参数1,[参数2]) 四舍五入,参数2可选,参数2表示保留几位小数
Trunc(参数1,[参数2]) 功能:截断数字,参数2表示截断到的小数位,如果参数2忽略则默认为0
SQL组成
数据定义语言(Data Definition Language,DDL),用于定义SQL模式、表、视图、索引等数据库对象结构数
据操作语言(Data Manipulation Language,DML),用于插入、删除和更改数据
数据查询语言(Data Query Language,DQL),用于查询数据,通常将数据操作语言和数据查询语言统称为数
据操作语言
数据控制语言(Data Control Language,DCL),用于对表、视图等的授权、完整性规则的描述和事务控制等