操作对象 | |||
模式 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROPVIEW | |
索引 | CREATE INDEX | DROP INDEX |
一、模式
创建模式,调用该命令的用户必须拥有DBA权限,或者获得了DBA授予的CREATE SCHEMA 的权限
eg:CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 如果没指定模式名,那么模式名隐含为用户名.
模式的定义实际就是定义一个命名空间,这个空间里可以定义该模式包含的数据对象,基本表、视图、索引等等
eg: CREATE SCHEMA TEST AUTHORIZATION AndrewShuBao
CREATE TABLE TB1 ( ~~~~~);
删除模式,就必须要选择CASCADE或者RESTRICT中一种。
其中,CASCADE表示删除模式的同时把模式中的所有数据库对象全部删除。
RESTRICT表示只有该模式下没有任何数据库对象才可以删除。
eg: DROP SCHEMA AndrewShuBao CASCADE
二、表
创建表:就不说了,说下模式与表(每一个基本表都属于一个模式,一个模式可以包含多个表,有三种方式确定模式和表的关系)
eg1:CREATE TABLE "TEST".TB1(~~~~~)
eg2:就是创建模式的同时创建表
eg3:设置所属的模式,这样在创建表时表名中就不必给出模式名
删除表:如果有视图选择RESTRICT时不能删除表,CASCADE能删除且把表的视图一起删除了
修改表:
(新增列)ALTER TABLE TB1 ADD SSS INT;
(修改列) ALTER TABLE TB1 ALTER COLUMN SSS NVARCHAR(50)
(添加约束条件) ALTER TABLE TB1 ADD UNIQUE(SSS)
三、视图
创建视图:
eg:CREATE VIEW TB1VIEW AS SELECT * FROM TB1
执行查询视图 SELECT * FROM TB1VIEW
删除视图(略)
四、索引
创建索引:一般格式CREATE [UNIQUE] [CLUSTER ] INDEX <索引名> ON <表名> ( ~~~~~);
eg: CREATE CLUSTER INDEX TB1Index ON TB1(列名 asc或者desc 或者不写)
不要轻易的创建索引 , 索引为了方便用户查询一些不会变更的数据表,如果一个表里面的数据经常修改、删除、新增最好不要建立索引
系统中有些不用的索引尽量删除避免系统维护索引的时间。
关系
解释关系这个词之前先说说域和笛卡尔积的概念
域:很简单就是一组具有相同数据类型的值的集合 说白一点就是一种抽象的定义 比如光源(太阳光、荧光、电筒光~~~)比如整数(1、2、3~~)比如小于50的数(-1、49.123121412~~)相信明白域的概念了吧
笛卡尔积:都说它是域上面的一种集合运算看到积 肯定是乘法了 那就不难理解了举个例子解释一下
D1{1,2,3} D2{a,b} D3{@,#} ~~它们是一组定义好的域,这些域当然可以相同,乘法也没说过两个相同的数不能相乘,那么它的计算公式呢就是
D1*D2*D3=
{
{1,a,@},{1,a,#},{1,b,@},{1,b,#},
{2,a,@},{2,a,#},{2,b,@},{2,b,#},
{3,a,@},{3,a,#},{3,b,@},{3,b,#}
}
说白了就是简单的排列组合
说完上面两个概念现在解释什么叫做关系:D1*D2*……Dn的子集叫做域D1,D2,D3……,Dn上的关系用R(D1,D2,D3,...,Dn)表示
n叫做关系的目或度(n=1,单元关系 n=2二元关系)
说白点关系就是一张二维表
关系数据库中关系模式是型,关系是值,关系模型是对关系的描述。
其中关系模式R( U,D,DOM,F ) R为关系名 U为组成该关系的属性名集合 D属性组U中属性所来自的域 DOM属性向域的映像集合 F属性间数据的依赖关系集合