oracle创建表格

建表

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;

注意:去重的时候 查询对象必须是去重的对象,不能查询全部,再用去重

posted @ 2018-06-30 14:59  binjoy  阅读(3408)  评论(0编辑  收藏  举报