DDL(Oracle)


DDL       数据定义       建表       建视图 建其他

drop

create table t (a varchar2 (10));可变字符串最大为10

transaction  

 -----------事务回退语句-------- 

•      rollback;                      所有语句都回退

•  -----------事务确认语句-------- 

•      commit;//此时再执行rollback无效

事务(Transaction)一系列操作要么同时完成    要么不完成

updata insert等也算事务事务起始于第一条语句

执行/碰到 DDL  DCL(授权) 语句事务自动提交

当正常断开连接的时候例如exit,事务自动提交。  当非正常断开连接,例如直接关闭dos窗口或关机,事务回滚

char 定长字符串   输入多少都占固定长度 (效率问题,定长效率高<如:数组>)

Number (8,3)  数字8位 小数3 位

Date              日期时间

Long             变长字符串 最长2G

Varchar2        最多4k 4096字节

五个约束条件: 非空 唯一 主键 外键 check

约束条件: 在数据库中算是一个对象

非空:  not null   

唯一: unique  不能重复, 可以随意插空值,两个空值不算重复 

      constraint stu_name_email_uni unique(email, name) (组合约束)

主键: primary key    可以唯一标识整条记录,(语法上:唯一非空的组合)

       逻辑,代表单独的每条不同记录,(现实的逻辑)(也可以组合约束)

       constraint stu_id_pk primary key (id), 

外键:  建立在一张表的两个字段,两个表的两个字段

       被参考字段必须是主键 有子记录不能删(有关联字段)

      •  --------------外键约束   被参考字段必须是主键 ------------- 

   constraint stu_class_fk foreign key (class)references class(id)

修改表结构

•  ---------------修改表结构,添加字段------------------ 

•      alter table stu add(addr varchar2(29));  

•  ---------------删除字段-------------------------- 

•      alter table stu drop (addr); 

•  ---------------修改表字段的长度------------------ 

•      alter table  stu modify(修改) (addr varchar2(50));

//更改后的长度必须要能容纳原先的数据精度 

•  ----------------删除约束条件---------------- 

•      alter table stu drop constraint  约束名 

•  -----------修改表结构添加约束条件--------------- 

•      alter table  stu add constraint stu_class_fk foreign key(class) references class (id);

数据字典表

Desc user_tables;          当前用户下有多少张表

•       desc dictionary; 

•       //数据字典表共有两个字段 table_name comments 

•       //table_name主要存放数据字典表的名字 

•       //comments主要是对这张数据字典表的描述  

---查看当前用户下面所有的表、视图、约束-----数据字典表user_tables--- 

•      select table_name from user_tables; 

•      select view_name from user_views; 

•      select constraint_name fromu ser_constraints; 

索引

-------------索引------------------

•      create index idx_stu_email on stu(email);

// 在stu这张表的email字段上建立一个索引:idx_stu_email

create index idx_stu_email on stu(email,class);

两个字段组合建索引

---------- 删除索引 ------------------

•      drop index idx_stu_email; 

---------查看所有的索引----------------

•      select index_name from user_indexes; 

加主键 或唯一约束   自动加索引          

索引-读取效率高,插入效率低,访问量大,不轻易建立索引,索引 占据大量空间

视图

-----------创建视图-------------------

视图 是一个子查询

•      create view v$stu as selesct id,name,agefrom stu; 

•  视图的作用: 简化查询 保护我们的一些私有数据,通过视图也可以用来更新数据,但是我们一般不这么用缺点:要对视图进行维护(改表结构时,需更新)

创建序列

产生一个唯一的不间断的数字序列 ,一般做主键 一般一个表对应一个

•      create sequence seq;//创建序列 

•      select seq.nextval from dual;// 查看seq序列的下一个值 

•      drop sequence seq;//删除序列 

insert into article values(seq.nextval,'a','b');

原文地址:https://www.cnblogs.com/kydnn/p/5036212.html