oracle DDL、DML与TCL
程序员文章站
2022-05-09 12:05:08
...
一、DDL
1、建表
建表语句:create table 表名() [tablespace tablespace_name ];
对表加备注:
comment on table 表名 is ‘备注内容’;
对表中字段加备注:
comment on column 表名.字段名 is ‘备注内容’;
2、修改与删除
删除表
drop table 表名 [cascade constrains];
修改表中字段名
alter table 表名 rename column 原字段名 to 新名;
修改表中字段类型
alter table 表名 modify 字段名 新类型;
添加字段
alter table 表名 add 字段名 类型;
删除字段
alter table 表名 drop column 字段名;
3、约束
限定非空/默认值
非空:限定某字段不允许空值
create table 表名(
字段名1 类型1 not null,
…
字段名n 类型n
);
默认值:设定某字段默认值
create table 表名(
字段名1 类型1 default 值,
…
字段名n 类型n
);
主键
主键是自己设定的字段,该字段不能为空,而且该字段的值必须唯一。
主键是唯一标识,不能为空,加快查询速度,自动创建索引 。
在创建表时设定主键
Create table 表名(
字段名1 类型1 primary key, --设为主键
…
);
表建立后设定主键
alter table 表名add constraint 主键标识名 primary key (字段名);
唯一性约束
唯一性约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
在创建表时设定唯一性约束
create table 表名(
字段名1 类型1 unique, --设定唯一性约束
…
);
表建立后设定唯一性约束
alter table 表名 add constraint 约束标识名 unique (字段名);
外键约束
外键就是在主表中可以重复出现,但是它的值是另一个表的主键,外键使两个表相关。
外键可约束表的数据的更新,外键和主键表联系,数据类型要统一,长度(存储大小)要统一,在更新数据的时候会保持一致性。
设定外键
在创建表时设定外键
create table 表名(
字段名1 类型1,
…
字段名n 类型n,
constraint 外键标识名 foreign key (外键字段名) references 主键表名 (主键字段名)
);
表建立后设定外键
alter table 表名 add constraint 外键标识名 foreign key (外键字段名) references 主键表名 (主键字段名);
检查约束
check约束:保证某一字段的值按一定的格式,在一定的范围 中。
在创建表时
create table 表名(
字段名1 类型1 check (条件范围),
…
);
表建立后
alter table 表名 add constraint 标识名 check (条件范围);
二、DML
数据操纵语言用于查询、插入、修改和删除数据
数据操纵语言是最常用的SQL命令
数据操纵语言命令包括:INSERT、UPDATE、DELETE、SELECT
insert用于添加数据,格式:
insert into 表名 (field_name1…) values (value1…);
insert into 表名 values (value1…); --当列出表中所有字段时,可省去字段列表
更新和删除
update 用于修改表中数据,格式:
update 表名 set filed1=value,field2=value2 where 条件
例
update t_dept9 set sname=‘能源部’ where nid=5;
update t_dept9 set sname=‘能源部’,sdes=‘能源部是刚成立的部门’ where nid=5;
update t_dept9 set sname=‘能源部’; //用时要慎重
delete用于删除表中数据,格式:
delete from 表名 where 条件
例
Delete from t_dept9 where nid=5;
Delete from t_dept9; //用时要慎重
Select查询
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
2、序列
序列是oracle特有一个对象,用于产生一系列不重复的数字。
创建序列
create sequence 序列名 increment by 1 start with 1 nomaxvalue minvalue 1;
删除序列
drop sequence 序列名;
使用Oracle序列
序列.nextval --生成并返回下一个值
序列.currval --返回当前序列值
三、TCL
事务是最小的工作单元,作为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有:
COMMIT - 提交并结束事务处理
ROLLBACK - 撤销事务中已完成的工作
四、oracle数据类型
1.VARCHAR2(size) 可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;
2.NVARCHAR2(size) 可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size;
VARCHAR2与NVARCHAR2区别:
Nvarchar2(10) 表示可以存10个汉字或者10个字母
Varchar2(10) 表示可以存5个汉字或者10个字母
3.NUMBER(p,s) 精度为p并且数值范围为s的数值;精度p的范围从1到38;数值范围s的范围是从-84到127; 例如:NUMBER(5,2) 表示整数部分最大3位,小数部分为2位
;NUMBER(5,-2) 表示数的整数部分最大为7其中对整数的倒数2位为0,前面的取整。
NUMBER 表示使用默认值,即等同于NUMBER(5);
4.LONG 可变长度的字符数据,其长度可达2G个字节;
5.DATE 有效日期范围从公元前4712年1月1日到公元后4712年12月31日
6.RAW(size) 长度为size字节的原始二进制数据,size的最大值为2000字节;你必须为RAW指定一个size;
7.LONG RAW 可变长度的原始二进制数据,其最长可达2G字节;
8.CHAR(size) 固定长度的字符数据,其长度为size个字节;size的最大值是2000字节,而最小值和默认值是1;
9.NCHAR(size) 也是固定长度。根据Unicode标准定义
10.CLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节。
11.NCLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集。
12.BLOB 一个二进制大型对象;最大4G字节
13.BFILE 包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.
1、建表
建表语句:create table 表名() [tablespace tablespace_name ];
对表加备注:
comment on table 表名 is ‘备注内容’;
对表中字段加备注:
comment on column 表名.字段名 is ‘备注内容’;
2、修改与删除
删除表
drop table 表名 [cascade constrains];
修改表中字段名
alter table 表名 rename column 原字段名 to 新名;
修改表中字段类型
alter table 表名 modify 字段名 新类型;
添加字段
alter table 表名 add 字段名 类型;
删除字段
alter table 表名 drop column 字段名;
3、约束
限定非空/默认值
非空:限定某字段不允许空值
create table 表名(
字段名1 类型1 not null,
…
字段名n 类型n
);
默认值:设定某字段默认值
create table 表名(
字段名1 类型1 default 值,
…
字段名n 类型n
);
主键
主键是自己设定的字段,该字段不能为空,而且该字段的值必须唯一。
主键是唯一标识,不能为空,加快查询速度,自动创建索引 。
在创建表时设定主键
Create table 表名(
字段名1 类型1 primary key, --设为主键
…
);
表建立后设定主键
alter table 表名add constraint 主键标识名 primary key (字段名);
唯一性约束
唯一性约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
在创建表时设定唯一性约束
create table 表名(
字段名1 类型1 unique, --设定唯一性约束
…
);
表建立后设定唯一性约束
alter table 表名 add constraint 约束标识名 unique (字段名);
外键约束
外键就是在主表中可以重复出现,但是它的值是另一个表的主键,外键使两个表相关。
外键可约束表的数据的更新,外键和主键表联系,数据类型要统一,长度(存储大小)要统一,在更新数据的时候会保持一致性。
设定外键
在创建表时设定外键
create table 表名(
字段名1 类型1,
…
字段名n 类型n,
constraint 外键标识名 foreign key (外键字段名) references 主键表名 (主键字段名)
);
表建立后设定外键
alter table 表名 add constraint 外键标识名 foreign key (外键字段名) references 主键表名 (主键字段名);
检查约束
check约束:保证某一字段的值按一定的格式,在一定的范围 中。
在创建表时
create table 表名(
字段名1 类型1 check (条件范围),
…
);
表建立后
alter table 表名 add constraint 标识名 check (条件范围);
二、DML
数据操纵语言用于查询、插入、修改和删除数据
数据操纵语言是最常用的SQL命令
数据操纵语言命令包括:INSERT、UPDATE、DELETE、SELECT
insert用于添加数据,格式:
insert into 表名 (field_name1…) values (value1…);
insert into 表名 values (value1…); --当列出表中所有字段时,可省去字段列表
更新和删除
update 用于修改表中数据,格式:
update 表名 set filed1=value,field2=value2 where 条件
例
update t_dept9 set sname=‘能源部’ where nid=5;
update t_dept9 set sname=‘能源部’,sdes=‘能源部是刚成立的部门’ where nid=5;
update t_dept9 set sname=‘能源部’; //用时要慎重
delete用于删除表中数据,格式:
delete from 表名 where 条件
例
Delete from t_dept9 where nid=5;
Delete from t_dept9; //用时要慎重
Select查询
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
2、序列
序列是oracle特有一个对象,用于产生一系列不重复的数字。
创建序列
create sequence 序列名 increment by 1 start with 1 nomaxvalue minvalue 1;
删除序列
drop sequence 序列名;
使用Oracle序列
序列.nextval --生成并返回下一个值
序列.currval --返回当前序列值
三、TCL
事务是最小的工作单元,作为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有:
COMMIT - 提交并结束事务处理
ROLLBACK - 撤销事务中已完成的工作
四、oracle数据类型
1.VARCHAR2(size) 可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;
2.NVARCHAR2(size) 可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size;
VARCHAR2与NVARCHAR2区别:
Nvarchar2(10) 表示可以存10个汉字或者10个字母
Varchar2(10) 表示可以存5个汉字或者10个字母
3.NUMBER(p,s) 精度为p并且数值范围为s的数值;精度p的范围从1到38;数值范围s的范围是从-84到127; 例如:NUMBER(5,2) 表示整数部分最大3位,小数部分为2位
;NUMBER(5,-2) 表示数的整数部分最大为7其中对整数的倒数2位为0,前面的取整。
NUMBER 表示使用默认值,即等同于NUMBER(5);
4.LONG 可变长度的字符数据,其长度可达2G个字节;
5.DATE 有效日期范围从公元前4712年1月1日到公元后4712年12月31日
6.RAW(size) 长度为size字节的原始二进制数据,size的最大值为2000字节;你必须为RAW指定一个size;
7.LONG RAW 可变长度的原始二进制数据,其最长可达2G字节;
8.CHAR(size) 固定长度的字符数据,其长度为size个字节;size的最大值是2000字节,而最小值和默认值是1;
9.NCHAR(size) 也是固定长度。根据Unicode标准定义
10.CLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节。
11.NCLOB 一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集。
12.BLOB 一个二进制大型对象;最大4G字节
13.BFILE 包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.