--:DDL数据库定义语言
--描述主要的数据库对象
--创建表
--描述各种数据类型
--修改表的定义
--删除,重命名和情况表
--常见的数据库对象
--表 基本的数据存储集合有行到列组成
--视图 从表中抽离出的逻辑上相关的数据集合.
--序列 提供有规律的数据(一般用作主键的值)
--索引 提高查询效率
--同义词 给对象起别名
--命名规则
--表名和列名
--必须以字母开头
--必须在1-30个字符以内
--只由A-Z,a-z,0-9,_,$和#组成
--必须不能是oracle的保留字
--必须不能和用户定义的其他对象重名
--创建表的方式
--第一种方式(白手起家式)
--第二种方式(依托于某个已经存在的表)
create table emp_1807 as select id,name,age from t_emp where age = 12;
create table emp_1807_1 as select id,name,age,pay from t_emp;
select * from emp_1807_1;
select * from t_emp;
--数据类型
--varchar2(size) 可变长的字符数据 最大可达到4KB
--char(size) 定长字符数据 最大可达到2KB
--number(size) 可变长的数值数据 最多可存储精度达到38位长度的数据
--DATE 日期型数据
--long 可变长的字符数据,(最大可达到4G)
--CLOB 定长的字符数据(最大可达到4G)
--BLOB 最大可达到4G,主要用于存储视频,图片,以二进制形式进行存储
--修改表的定义
--使用alter table 语句
--1.追加新的列
alter table t_emp add(salary number(10));
update t_emp set salary = 1000 where age = 12;
--如果要修改列的属性,那么该列必须为空
alter table t_emp modify(salary varchar2(10) default 2000);
--删除一个列
alter table t_emp drop column salary;
--数据定义语言是自动提交的
--重命名表的一个列名
alter table t_emp rename column age to ages
--删除表
drop table t_emp;
--清空表数据
delete t_emp;
truncate table t_emp;
rollback;
--数据库定义语言: 回滚语句无效,相当于会自动提交
--ps:truncate:从硬盘上删除表中所有数据,释放硬盘资源
--数据处理语言 DML
--delete:清空表数据 可回滚
--约束
--什么叫约束:约束是表级的强制规定
--主要的约束有以下5种
--not null 非空约束
--unique 唯一约束
--primary key 主键约束
--foreign key
--check
--ps:如果不指定约束名,那么oracle_server自动按
--SYS_Cn的格式指定约束名
--创建和修改约束
--建表的同时
--建表之后
--可以在表级或列级定义约束
--ps:可以通过数据字典视图查看约束
--表级约束和列级约束
--作用范围
--1.列级约束只能作用在一个列上
--2.表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上)
--定义方式
--1.列级约束必须跟在列的定义,表约束不与列一起,而是单独定义
--ps:not null:该约束只能定义在列上
create table emp_sc_18(
id number(3) constraint emp_sc_01_id_nn not null,
name varchar2(20) not null,
salary number(10,2)
)
create table emp_3(
id number(3) ,
name varchar2(20) not null,
salary number(10,2),
--表级约束
constraint emp_3 unique(id,name)
)
insert into emp_3 values(1,null,1000.0);
--表级约束无法在建表后添加
--如果要添加,只能通过列级的方式
--ps:唯一约束对空值无效
--ps:主键的约束是非空且唯一
--外键