创建表:

Create table 表名 ( s_id number(4) ,  s_name varchar2(10) , s_sex char(2) );

删除表:

Drop table 表名;

重命名表名:

Rename 旧表名 to 新表名 ;

添加列:

Alter table 表名 add (  s_age number(3) );

删除列:

Alter table 表名 drop( S_sex  );

修改列:

Alter table 表名 modify(
      s_id number(4) default null not null,
	  s_name varchar2(10) default null not null
     );

修改列名:

Alter table 表名 rename column 旧列名 to 新列名 ;

插入表数据的两种书写方式:

1.insert into 表名 (列名) values (值) ;
   如:insert into 表名 (s_id) values (0301) ;
  2.insert into 表名 values (值) ;
   如:insert into 表名 values (0302,’张三’,20) ;

查询列表所有信息:

Select * from 表名 ;

查询一个列表信息(加where条件):

Select * from 表名 where s_id = 302;

修改列表内容:

Update 表名 set s_name = ‘李四’,age = 18 where s_id=301;

删除列表内容:

Delete from 表名 where s_id = 301 ;

求最高分:

Select * from 表名 where grade =(select max(grade) from sc) ;

合一起显示:

Select “concat”(s_id s_name) from sc ;

返回字符的长度:

Select 列名,length(列名) from 表名 ;

大小写转换:

Select  upper(‘hello world’),lower(‘HELLO WORLD’),initcap(‘hello world’) from 表名(列名);

四舍五入:

Elsect round(45.567,1) from 表名;//——45.6
  Elsect round(45.567,0) from 表名;//——46
  Elsect round(45.567,-1) from 表名;//——50

取余:

Select 列名,mod(列名,数值) from 表名;

取整:

Select ceil(1.5) from 表名;//-----2(向上)可用列名
  Select floor(1.5) from 表名;//----1(向下)可用列名

查看当前的日期(秒):

select sysdate from 表名;

创建时间列:

Registerdate date default sysdate ;

查看当前时间(毫秒):

Select systimestamp from表名 ;

字符串转日期:

Insert into 表名(列名,列名)values(‘张三’,to_date('1991-12-22','YYYY-MM-DD'));

日期转字符串:

Select to_char(列名,'YYYY"年"MM"月"DD"日" HH24"时"MI"分"SS"秒"')from 表名 ;

空值转换:

1.select nvl(列名,数值) from 表名 ;
  2.select nvl2(列名,数值,数值) from 表名 ;(列属性为空选择第二个数值,不为空选一)

模糊查询:

1.Select * from 表名 where 列名 like ‘张%’;查询数据库中有没有姓“张”的
  2.Select * from 表名 where 列名 like ‘%张%’;查询数据库中有没有姓名带“张”的

范围值:

1.select * from 表名 where 列名 in (范围 如:‘张伟’,‘张三丰’);在此范围的
  2.select * from 表名 where 列名 not in (范围 如:‘张伟’,‘张三丰’);不在此范围的
  3.                              between 范围 如:6000 and 10000 ;

过滤重复:

Select distinct 列名 from 表名 ;

排序:

select * from 表名 order by 列名 desc ;
  select * from 表名 order by 列名 asc(不写默认为asc) ;

最大,最小,平均,和,次数:

Select max(列名),min(列名),avg(列名),sum(列名),count(列名或*)from 表名;

内外连接:

Select 列名 列名 from 表名 left join 表名 on 条件等 ;

自连接:

Select a.列名 ,b.列名 from 表名 a ,表名 b 条件等 (同一个表名);

单行子查询:

Select * from 表名 where grade =(select max(grade) from sc) ;

多行子查询:

Select 列名 from 表名 where 列名  in (select 列名 	from 表名);

伪列:

1.Select rownum,列名 from 表名 where rownum between 1 and 3 ;--查询123号信息
  2.select * from(Select rownum rn,列名 from 表名)where rn between 4 and 5 ;

查询系统当前拥有的账号:

Select username from all_users ;

授予权限:

Grant connect to 用户 ;(connect角色允许用户连接至数据库,并创建对应数据库对象)
  Grant resource to 用户 ;(resource 角色允许用户使用数据库的存储空间)

授权所有:

Grant all privileges to 用户名 ;

创建用户:

Create user 用户名 ;
  Create user 账号 identified by 密码 ;(创建成功之后需要授权才能使用)

删除用户:

Drop user 用户名 ;

授权视图操作:

grant create any view to 用户名;

创建视图:

Grant view 视图名 as 查询的需要合并的表,例如:
    Select student.*,sc from student,sc where student.sno=sc.sno;(不需要加括号,但是要授权之后才能运行)

查看视图:

Select * from 视图名 ;

创建序列:

Create sequence 序列名
     Start With i(指定要产生的第一个序列数 (如果该子句被省略,序列从1 开始) )
     Increment by j(指定序列号之间的间隔,在这儿 j 是一个整数 (如果该子句 被省略,序列增量为1))
     Maxvalue m(指定序列能产生的最大值)minvalue n(指定最小序列值)
     Cycie(指定序列在达到它的最大或最小值之后,是否继续产生)
     Cache n (定Oracle服务器预先分配多少值,并且保持在内存中(默认 情况下,Oracle服务器缓冲20个值)) ;(以上每项不写均有默认值,不需要了解)

查看用户有哪些序列:

Select* from user_sequences;

删除序列:

Drop sequence 序列名 ;

获取序列当前值:

Select 序列名.currval from dual;

获取序列的下一个值:

Select 序列名.nextcal from dual;`

插入表数据时自动获取序列号(不能重复):

Insect into 表名(编号列名,列名)values(序列名.nextcal,值);

制作表的自增ID:

Creact or replace trigger 取名
  Before insert on 表名 (在对XX表执行insert语句之前触发)
  For each row (作用到每一行,不写自动默认)
  When (new.id is null)(当新的一行的ID字段是空的时候)
  Begin
    Select 序列名.nextval into:new.id from dual ;
  End;

查看约束:

Select * from 系统表 where 系统表名中的列名 = upper(系统表名中的列名);

删除约束:

Alter table 表名 drop constraint 约束名;

检查约束:

Alter table 表名 add constraint  约束取名 check(列名和条件 如:salary >2000);