定义:数据库对象容器
包括:基本表、视图、触发器
-- 为用户U1定义一个架构,取名为Salse
CREATE SCHEMA Salse AUTHORIZATION U1
-- 创建表
CREATE TABLE Test(
c1 INT PRIMARY KEY,
c2 char(4)
)
grant select to u2 -- 授权 查询 给u2
deny delete to u3 -- 撤销 u3 的 删除权限
-- 把Test表从Common架构传输到Special架构中
alter schema Special transfer Common.Test;
-- 删除架构Special.Test
drop table Special.Test;
-- 删除架构
drop schema Special;
在数据库Library_DB中创建一张用于借阅人员信息管理表borrower_info表,表中包括:借阅者编号、姓名、出身年月、地址、电话号码等
create table borrower_info
(
reader_id varchar(20) primary key,
reader_name nvarchar(10) not null,
reader_brith char(10),
reader_address nvarchar(50),
reader_phone char(11)
-- 检查范围
reader_age nchar(1) check(reader_age>=15)
-- 精度
n_id numeric(3,1)
-- 添加外键
FOREIGN KEY (Sno) REFERENCES Student(Sno)
-- 含计算
myavg AS (low + high)/2
-- 识别列表(默认不能为该字段复制,只能由系统自动生成)
SID INT IDENTITY(1,1) NOT NULL
-- 更改默认识别列表
SET IDENTITY_INSERT [ database_name. [ schema_name ]. ] table { ON | OFF }
-- 其别名
Tno char(5) constraint PK_Tno
-- 将新添加的Type列的数据类型改为NCHAR(2)。
ALTER TABLE SC ALTER COLUMN Type NCHAR(2)
-- 限定范围
ALTER TABLE SC ADD CHECK(Type IN ('必修', '重修', '选修') )
-- 删除type列
ALTER TABLE SC DROP COLUMN Type
-- 删除表test
DROP TABLE test
)
向表borrower_info中加入字段名为ethnic的列,以记录该学生的民族。该列的属性为nvarchar(5),缺省(默认)值为’汉族’
ALTER TABLE borrower_info ADD ethnic nvarchar(5) default '汉族'
# 如有错误!请通知我!谢谢!
create table Student(
Sno char(7) primary key,
Sname char(10) not null,
Sex char(2) add check(Sex IN('男','女')),
Birthdate date,
Dept varchar(20)
)
create table Course(
Cno char(10) primary key,
Cname varchar(20) not null,
Credit tinyint add check(Credit >0),
Semester tinyint
)
create table SC(
Sno char(7),
Cno char(10),
Grade smallint add check(Grade >=0,Grade<=100),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Student(Cno)
)
-- 为SC表添加“修课类别”列,此列的定义为:Type NCHAR(1),允许空。
ALTER TABLE SC ADD Type NCHAR(1) NULL
从物理上将一个大表分成几个小表
CREATE PARTITION FUNCTION myRangePF1(int) AS RANGE LEFT FOR VALUES (1,100,1000);
CREATE PARTITION FUNCTION myRangePF2(int) AS RANGE RIGHT FOR VALUES (1, 100, 1000)
CREATE PARTITION FUNCTION myRangePF1(int)
AS RANGE LEFT FOR VALUES (1, 100, 1000);
GO
CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1
TO (test1fg, test2fg, test3fg, test4fg);
-- 创建将所有分区映射到同一个文件组的分区方案。
CREATE PARTITION FUNCTION myRangePF3(int)
AS RANGE LEFT FOR VALUES (1, 100, 1000);
GO
CREATE PARTITION SCHEME myRangePS3
AS PARTITION myRangePF3
ALL TO ( test1fg )