DDL语句:数据定义语言,专门用来创建数据结构
描述主要的数据库对象:数据库对象就是存储数据的单元
创建表
描述各种数据类型
修改表的定义
删除,重命名和清空表
常见的数据库对象:
表:基本的数据存储集合,由行和列组成。
视图:从表中抽出的逻辑上相关的数据集合。
序列:提供有规律的数值。
索引:提高查询的效率。
同义词:给对象起别名。
Oracle数据库中的表:
用户定义的表:用户自己创建维护的一组表;包含了用户所需的信息。
SELECT * FROM user_tables;查看用户创建的表
数据字典:由Oracle Server自动创建的一组表;包含数据库信息。
查询数据字典:
查看用户定义的各种数据库对象:SELECT DISINCT object_type FROM user_objects;
查看用户定义的表,视图,同义词和序列:SLECT * FROM user_catalog;
CREATE TABLE 语句
必须具备:CREATE TABLE 权限 存储空间
CREATE TABLE [schema.]table {column datatype [DEFAULT exor]};
必须指定:表名 列名,数据类型,尺寸
CREATE TABLE 表名(
列名 数据类型(长度),
列名 数据类型(长度)
);
DDL语句是自动提交的,ROLLBACK是无效操作。
数据类型:
VARCHAR2(size) 可变长度字符数据
CHAR(size) 定长字符数据
NUMBER(p,s) 可变长数值数据
DATE 日期型数据
LONG 可变长字符数据,最大可达2G
CLOB 字符数据,最大可达4G
RAM(LONG RAM) 原始的二进制数据
BLOB 二进制数据。最大可达4G
BFILE 存储外部文件的二进制数据。最大可达4G
ROWID 行地址
使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
CREATE TABLE table [{column, column}] AS subquery;
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
1.CREATE TABLE 表 as 子查询;SELECT * FROM 表,结构和数据全部复制过去
CREATE TABLE dept1 AS SELECT * FROM dept;
2.只包含某一个表的某些字段,将* 改成指定的字段即可
CREATE TABLE dept2 AS SELECT dname,loc FROM dept;
3.通过子查询创建表的时候,新建表的字段名称指定,可以通过别名。
CREATE TABLE dept3 AS SELECT dname 名字, loc 地址 FROM dept;
4.创建一张表,和另外一张某些列对应,但是只需要数据表结构,不需要数据
CREATE TABLE dept4 AS SELECT dname,loc FROM dept WHERE 1=2;
ALTER TABLE 语句
作用:追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
重命名表的一个列名
DML:INSERT UPDATE DELETE:数据的
DDL语句的修改:表结构
1.增加表的列
ALTER TABLE 表名 ADD (列名 类型(长度),...)
ALTER TABLE emp ADD (tel varchar2(12), sex varchar2(2));
2.修改表的名字
ALTER TABLE 原始表名 RENAME TO 新的表名;
3.修改列的名字
ALTER TABLE 表名 RENAME column 原始列名 TO 新的列名;
4.修改列的类型及尺寸,默认值
ALTER TABLE 表名 MODIFY(列名 类型(长度) DEFAULT 默认值,...)
5.删除某一个列
ALTER TABLE 表名 DROP column 列名;
删除表
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除了
DROP TABLE 语句不能回滚
DROP TABLE 表名;
清空表:数据
DELECT FROM 表名;/*表可以回滚*/
TRUNCATE TABLE 表名;/*不可以回滚*/
描述主要的数据库对象:数据库对象就是存储数据的单元
创建表
描述各种数据类型
修改表的定义
删除,重命名和清空表
常见的数据库对象:
表:基本的数据存储集合,由行和列组成。
视图:从表中抽出的逻辑上相关的数据集合。
序列:提供有规律的数值。
索引:提高查询的效率。
同义词:给对象起别名。
Oracle数据库中的表:
用户定义的表:用户自己创建维护的一组表;包含了用户所需的信息。
SELECT * FROM user_tables;查看用户创建的表
数据字典:由Oracle Server自动创建的一组表;包含数据库信息。
查询数据字典:
查看用户定义的各种数据库对象:SELECT DISINCT object_type FROM user_objects;
查看用户定义的表,视图,同义词和序列:SLECT * FROM user_catalog;
CREATE TABLE 语句
必须具备:CREATE TABLE 权限 存储空间
CREATE TABLE [schema.]table {column datatype [DEFAULT exor]};
必须指定:表名 列名,数据类型,尺寸
CREATE TABLE 表名(
列名 数据类型(长度),
列名 数据类型(长度)
);
DDL语句是自动提交的,ROLLBACK是无效操作。
数据类型:
VARCHAR2(size) 可变长度字符数据
CHAR(size) 定长字符数据
NUMBER(p,s) 可变长数值数据
DATE 日期型数据
LONG 可变长字符数据,最大可达2G
CLOB 字符数据,最大可达4G
RAM(LONG RAM) 原始的二进制数据
BLOB 二进制数据。最大可达4G
BFILE 存储外部文件的二进制数据。最大可达4G
ROWID 行地址
使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
CREATE TABLE table [{column, column}] AS subquery;
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
1.CREATE TABLE 表 as 子查询;SELECT * FROM 表,结构和数据全部复制过去
CREATE TABLE dept1 AS SELECT * FROM dept;
2.只包含某一个表的某些字段,将* 改成指定的字段即可
CREATE TABLE dept2 AS SELECT dname,loc FROM dept;
3.通过子查询创建表的时候,新建表的字段名称指定,可以通过别名。
CREATE TABLE dept3 AS SELECT dname 名字, loc 地址 FROM dept;
4.创建一张表,和另外一张某些列对应,但是只需要数据表结构,不需要数据
CREATE TABLE dept4 AS SELECT dname,loc FROM dept WHERE 1=2;
ALTER TABLE 语句
作用:追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
重命名表的一个列名
DML:INSERT UPDATE DELETE:数据的
DDL语句的修改:表结构
1.增加表的列
ALTER TABLE 表名 ADD (列名 类型(长度),...)
ALTER TABLE emp ADD (tel varchar2(12), sex varchar2(2));
2.修改表的名字
ALTER TABLE 原始表名 RENAME TO 新的表名;
3.修改列的名字
ALTER TABLE 表名 RENAME column 原始列名 TO 新的列名;
4.修改列的类型及尺寸,默认值
ALTER TABLE 表名 MODIFY(列名 类型(长度) DEFAULT 默认值,...)
5.删除某一个列
ALTER TABLE 表名 DROP column 列名;
删除表
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除了
DROP TABLE 语句不能回滚
DROP TABLE 表名;
清空表:数据
DELECT FROM 表名;/*表可以回滚*/
TRUNCATE TABLE 表名;/*不可以回滚*/