sql--DDL

DDL

一:建表

①:DESC(查看表结构)

DESC emp; #查看emp表的表结构 

②:Oracle支持的数据类型

1.NUMBER

​ --NUMBER(n):表示长度为n的整数,n的范围是(1,38),可以使用INT来代替

​ --NUMBER(m,n):表示小数数字,n表示小数的长度,m表示整个数字的长度,整数的长度为m-n,可以使用FLOAT代替

2.VARCHAER2

​ --VARCHAR2(n):表示字符串的长度最大可以为n,n的范围是(1,4000)字节

​ --CHAR(n):保存定长的字符串n的范围是(1,2000)字节

3.日期相关

​ --DATE:时间类型(不包括毫秒)

​ --TIMESTAMP:时间类型(包含毫秒)

4.数据类型(GB)

​ --CLOB:用于存放海量文字的类型,如红楼梦,三国演义

​ --BLOB:用于保存二进制数据,如图片,音乐

③:完整性约束

1.非空约束

​ --NOT NULL

2.唯一约束

​ --UNIQUE

3.主键约束(非空且唯一)

​ --PRIMARY KEY

4.检查约束

​ --CHECK

5.外键约束

​ --FOREIGN KEY REFERENCES

​ --必须有唯一约束或者主键约束的字段才能做另一张表的外键

​ --如果现在主表中的某一行数据有对应额子表数据,那么必须先删除子表中的数据之后才可以删除主表中的数据

​ --假设现在想删除主表,必须先删除子表,才可以删除主表

③:示例

CREATE TABLE member(
	mid NUMBER(5),
    name VARCHAR2(50) DEFAULT '无名氏',
    age NUMBER(3),
    birthday DATE DEFAULT sysdate,
    note CLOB
);

④:表的复制(两张表的结构一模一样)

CREATE TABLE 表名 AS 子查询;

⑤:表的重命名

RENAME 旧的表名 TO 新的表名;

二:表的删除

DROP TABLE 表名;

三:表结构的修改(SCHEMA 表结构)

①:给一张表新增字段

ALTER TABLE 表名 ADD(sex VARCHAR2(10) DEFAULT'男');

②:修改表的字段

ALTER TABLE 表名 MODIFY(sex VARCHAR2(10) DEFAULT'女';

③:删除表的字段

ALTER TABLE 表名 DROP COLUMN sex;

四:数据库中的对象

1.表

2.约束

3.序列(递增的整数值)

①:可以使用序列来为主键获取值

#创建一个序列
CREATE SEQUENCE test_seq;
#先获取序列的下一个值
SELECT test_seq.nextval FROM dual;
#获取序列当前的值
SELECT test_seq.currval FROM dual;

②:行号:ROWNUM(是一个伪列,来生成行号,这个行号不与任意记录挂钩)

​ 作用:获取前n行数据

​ 分页

SELECT ROWNUM,empno,ename,job FROM emp WHERE ROWNUM <= 10;

③:ROWID:指每一行数据存储的物理地址(这行数据存储在数据库哪一个文件的哪一行上)

​ 表中有许多重复的记录,需要将重复的数据删除掉只保存一个数据

4.索引(可以提高查询效率)

①:B树索引

将数据存储成B树,左边的节点比中间的节点小,右边的比中间的大

ROWID:用来快速定位节点所在的行中的所有数据

创建B树索引:

–自动创建:当某一列上设置了主键约束或唯一约束的时候

–手动创建:

CREATE INDEX 索引名称 ON 表名(列名[ASC|DESC];

②:位图索引

B树索引一般用于连续值的列(字段)

对于非连续的值,比如deptno(10,20,30)不好使用B树索引,使用位图索引

CREATE BITMAP INDEX 索引名称 ON 表名(列名[ASC|DESC];

如果查询所有列的话,则不会走位图索引,查询一列的才会走位图索引

5.视图

简化用户的查询操作

使得用户可以以多种角度来看待同一数据

CREATE VIEW 视图名称 AS 子查询
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值