建表
Create table +名称(
列名 类型 约束
);
注:类型一般分为
char型 固定长度字符
varchar2型 可变长度字符
number型 number(5,2)
date型
约束
主键约束 (primary key):规定的列值不允许为空,不允许重复,唯一性
Eg:身份证ID
根据主键的条件进行查询,一个主键值只会对应一条数据
唯一约束(unique): 规定的列值不允许重复
非空约束(not null):规定列值不允许为空
检查约束(check+(条件)):规定的列值必须满足制定条件
删除表格
Drop+table +表名
插入数据
Insert into 表名[(列1,列2,列3…..列n)]value (值1,值2…..,值n)
eg: insert into student (sid,sname,sex,birthday,height) values (001,'法士特','男',null,1.51);
备份
Create table emp_back as select * from emp;
--提交
commit;
插入数据时后面加 一个 commit 就自动一次性上传数据
级联更新
如果更新列的所有信息就不需要加where 如果要改指定的信息,需要加where
级联删除
eg:从emp表中删除所有部门编号为 sales这个部门所属的部门编号
delete from emp where deptno = (select deptno from dept where dname='sales')
简单去重 distinct 某列中重复的值不显示 .复杂一点去重使用group by
select deptno from emp
强制转换
将字符串转换为数字 to_number(char)
将字符串转换为日期 to_date
select to_date("2006-05-03","YYYY-WW-DD") from emp
--一键清空所有表格
truncate table 表名 ;
eg:truncate table emp;
alter使用
alter table student rename to student1; --修改表名
alter table student rename column birthday to shengri;--修改列名
alter table student add(nashen varchar2(43));--新增列
--删除列
alter table student modify(sname varchar2(30));--修改列的类型
--添加约束
--删除约束
rownum
--排序,根据输出的数据进行排序
--只能从1开始
eg: 查询工资前3 名
select rownum, t.*
from (select * from emp order by sal desc) t
where rownum <= 3;
--nv1 将空值改为0
select comm,nvl(comm,0) from emp
--数字函数
select round(1235.122) from dual; -- 不接参数默认取整
select round(1235.678,2) from dual; -- 接参数n 精确到n 位 且四舍五入
select round(1235.122,-2) from dual; --接参数-n,-n位归0
select trunc(1235.122 ,2) from dual; --不四舍五入
--字符函数
select initcap ('bindongming') from dual; --将首字母改为大写,其他全部小写
select upper ('bindongming') from dual; --全部改为大写
select lower ('bindongming') from dual; --全部改为小写
--字符函数
select initcap ('bindongming') from dual; --将首字母改为大写,其他全部小写
select upper ('bindongming') from dual; --全部改为大写
select lower ('bindongming') from dual; --全部改为小写
--rowid 新增 修改 删除数据
select rowid, t.* from emp t where deptno=10
--排序
--按个人薪资升序排列 order by .. esc 以xxx升序排列
select * from emp order by sal asc;
--按个人薪资降序排列
select * from emp order by sal dasc;
--group by 去重
select job from emp where comm is not null and comm!=0 group by job;
注意:去重的时候 查询对象必须是去重的对象,不能查询全部,再用去重