Oracle数据库总结语法一
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 "表名";