Oracle数据库总结语法一

一世执手 提交于 2020-04-07 09:32:33

1、创建表

create table "表名"(

pid number(20),

pname varchar2(10)

)

2、添加一列

alter table "表名" add "列名称" number(1);   性别用0,1代替男女

3、修改列类型

alter table "表名" modify "列名称"  char(1);  char长度指定的,一直为1

4、修改列名称

alter table "表名" rename column "列名称"  to "列名";

5、删除列

 

alter table "表名" drop coiumn "列名称"

6、添加记录

insert into "表名" ("列名称","列名称") values("值","值");

commit;  事务提交不能忘

7、查询表记录

select * from "表名"

8、修改记录

update "表名" set "字段名"="值" where "字段名"="值";

commit;

9、删除全部记录

delete from "表名";

10、删除表结构

drop table "表名";

11、先删除表,在创建表。(相当于删除全部记录)

truncate table "表名";  (数据量大的情况下,尤其是由索引,效率高。索引可以提高查询效率,但是会影响增删改效率)

12、序列:默认从1开始,依次递增(主键赋值使用)

不属于任何一张表

create sequence "序列名";

//虚表无意义,补全语法

//nextval:取得序列的下一个内容

//currval:获取序列的当前内容

select "序列名.nextval" from "虚表";

select "序列名.currval" from "虚表";

13、Scott用户,默认密码tiger(Oracle自带)

//解锁Scott用户

alter user scott account unlock;

//解锁Scott密码(也可以重置密码)

alter user scott identified by tiger;

可以切换用户看数据

14、单行函数(作用与一行,返回一个值)

14.1、字符函数

selcet upper("YES") from "虚表";  yes大写

selcet lower("yes") from "虚表"; yes小写

14.2、数值函数

select round(  26.8,2) from "虚表"; ---round()四舍五入,后面参数是显示的条数

select trunc (56.16) from "虚表"; --- 直接截取,不再看后面是数

select mod(10,3) from "虚表";---求余数

14.3、日期函数

//查询emp中所有员工入职但现在的时间

select sysdate-"字段名"  from "表名";

//s算出明天的这个时候

select sysdate+1 from "虚表";

//距离月份

select months_between(sysdate,"字段名") from "表名";

//距离几年

select months_between(sysdate,"字段名")/12 from "表名";

//距离几周

select round((sysdate-"字段名")/7)  from "表名";

14.4、转换函数

select to_char(sysdate,"fm yyyy-mm-dd hh:mi:ss") from "虚表";---fm:去除日期格式前的0

14.5、字符串转日期格式

select to_char(“2019-07-26 11:36:20”,"fm yyyy-mm-dd hh:mi:ss") from "虚表";---fm:去除日期格式前的0

15、通用函数

//算年薪

---奖金中有null值,如果null和任意数字做算术运算,结果都是null

select "工资字段名*12+nvl(本身字段名,0)" from "表名";

16、条件表达式

16.1、**通用写法

//给name起中文名

select "字段名",

    case  "字段名"

      when '数据库中的name值' then '别名'

  when '数据库中的name值' then '别名'

   when '数据库中的name值' then '别名'

             else '别名'    --可以省略

               end

from "表名";

//如果工资》3000显示高收入,1500-3000中收入,其它为低收入

select "字段名",

    case  "字段名"

      when '字段名》3000' then '高收入'

  when '数据库中的name值' then '中收入'

             else '低收入'    --可以省略

               end

from "表名";

16.2、Oracle专用

**除了起别名,都用单引号

select "字段名",

    decode("字段名"

      '数据库中的name值' '别名'

'数据库中的name值' '别名'

   '数据库中的name值' '别名'

             '别名'  ) 中文名  ---列名的别名(可以加双引号和不加引号)

              

from "表名";

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!