data definition language数据库定义语言
模式的定义与删除
模式的定义
- 定义模式实际上定义了一个命名空间
- 在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。
- 在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>] - 例:
CREATE SCHEMA TEST AUTHORIZATION ZHANG
CREATE TABLE TAB1(COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
COL4 NUMERIC(10,3),
COL5 DECIMAL(5,2)
);
-- 为用户ZHANG创建了一个模式TEST,并在其中定义了一个表TAB1。
模式的删除
- DROP SCHEMA <模式名> <CASCADE|RESTRICT>
- CASCADE(级联)
删除模式的同时把该模式中所有的数据库对象全部删除 - RESTRICT(限制)
如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。
当该模式中没有任何下属的对象时才能执行。 - DROP SCHEMA ZHANG CASCADE;
删除模式ZHANG
同时该模式中定义的表TAB1也被删除
数据库的定义和删除
数据库的创建
CREATE DATABASE [IF NOT EXISTS] <数据库名> [CHARACTER SET utf8]
数据库的删除
DROP DATABASE <数据库名>
查看服务中心所有的数据库
SHOW DATABASES;
查看数据库创建细节
SHOW CREATE DATABASE <数据库名>;
选择数据库
USE <数据库名>
数据表
定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
数据表定义常见的5种约束
1.—-主键约束(Primay Key Coustraint) 唯一性,非空性
2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.—-默认约束 (Default Counstraint) 该数据的默认值
5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列
数据表定义常见的数据类型
修改基本表
修改表名
ALTER TABLE <原表名> RENAME TO|AS <新表名>
修改表编码
ALTER TABLE <表名> CHARACTERSET <编码格式>
添加列
ALTER TABLE <表名> ADD <列名> VARCHAR (20) <约束>
修改Modify(重新定义)
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) NOT NULL
修改列属性数据类型
-- 将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student ALTER COLUMN Sage INT;
更换列的位置
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) AFTER
<列名2>-- 重新放置某列之后
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) FIRST-- 将某列放在表结构的第一列
修改列名
ALTER TABLE <表名> CHANGE <原列名> <新列名> VARCHAR (200)
删除列
ALTER TABLE <表名> DROP COLUMN <列名>;
删除表
DROP TABLE <表名>[RESTRICT| CASCADE];
RESTRICT:删除表是有限制的。
欲删除的基本表不能被其他表的约束所引用
如果存在依赖该表的对象,则此表不能被删除
CASCADE:删除该表没有限制。
在删除基本表的同时,相关的依赖对象一起删除
查看表
查看表结构
DESC <表名>
DESCRIBE <表名>
SHOW COLUMNSF ROM <表名>
SHOW [FULL] FIELDS FROM <表名>
查看创建语句
SHOW CREATE TABLE <表名>