1.建立数据库: create database 数据库名·
删除数据库: drop database 数据库名
打开数据库: use 数据库名
说明:打开一个数据库成为当前数据库,同时关闭之前的数据库。
--e.g.
create database studemtdb;
drop database studentdb;
use studentdb;
2.创建系统登录名:create login 登录名 with password=‘密码’ [, default_database=默认数据库] //中括号里面的内容可以没有
删除登录名:drop login 登录名
修改登录名信息:alter login 登录名 with name=新登录名 [, password=‘新密码'][,default_database=默认数据库]
禁用/启用登录名:alter login 登录名 disable/enable
--e.g.
create login db001 with password='db123', default_database=dbuser;
alter login db001 with name=db002;
drop login db001
3.创建当前数据库用户名:create user 用户名 [forlfrom login<登录名>][ with default_schema=<默认架构名>
删除用户名:drop user 用户名
修改用户名信息:alter user 用户名 with name=新用户名 [ , default_schema=<默认架构名>]
--e.g.
create user db101 for login db001 with default_schema=dbu001;·
alter user db101 with name=db102;
drop uesr db101;
4.建立模式: create schema 模式名 [authorization 用户名 ]
说明:缺省[authorization 用户名 ],则为当前用户模式.
删除模式: drop schema 模式名;
说明:删除一个模式,同时删除之中的所有数据库对象。
注:系统管理员(sysadmin)用户的架构名固定为dbo.
--e.g.
create schema db001 authorization u1;
drop schema db001;
5.基本表的定义(CREATE):
create table表名
( 列名1 数据类型 [default缺省值] [not null]
[constraint<约束名><完整性约束条件>] --列级约束
[,列名2 数据类型 [default缺省值][not null]]
[constraint<约束名><完整性约束条件>] --列级约束
[, [constraint<约束名>] primary key(列名1[,列名2]…)] --表级约束
[, [constraint <约束名>] foreign key (列名1[,列名2]...) references表名(列名1[,列名2].…)] --表级约束
[ on delete cascade] [ on update cascade] --级联删除、更新
[,[constraint<约束名>] check(条件)]); --表级约束
create table student
(
sno char(9)constraint pk_student primary key,
sname char(9) not null,
ssex char(2) ,
sage smallint,
sdept char(15),
constraint c_sage check(sage>=12)
);
create table course
(
cno char(4) constraint pk_course primary key,
cname char(20),
cpon char(4),
ccredit smallint
);
create table sc
(
sno char(9) not null,
cno char(4) not null,
grade decimal(5,1),
constraint pk_sc primary key(sno,cno),
constraint fk_sno foreign key(sno) references student(sno),
constraint fk_cno foreign key(cno) references course(cno),
constraint c_grade check(grade>=0 and grade<=100)
);
修改基本表定义(ALTER):
alter table 表名
add 子句 --增加新列或约束
drop column|constraint 名称 --删除列或约束alter column子句;--修改列定义
check|nocheck constraint 约束名 --启用或禁止约束
alter table student addaddr char(30);
alter table student alter column addr char(30) not null;
alter table student add constraint uq_adr unique(addr);
alter table teach add primary key(tno);
alter table student add constraint def_ssex default '女' for ssex;
alter table tc add constraint fk_tno foreign key(tno) references teach(tno);
alter table student drop constraint uq_adr;
alter table student drop column addr;
alter table student nocheck constraint up_adr;
删除基本表定义(DROP):
drop table 表名 [restrict|cascade];
6.索引的建立: create [unique/distinct] [clustered] index 索引名 on 表名 (列名[asc/desc][,列名[asc/desc]]…);
说明:distinct ( unique):唯一性索引,不允许表中不同的行在索引列上取相同值。
clustered:聚集索引,元组按索引项的值物理排序。每个表上只能建一个聚集索引,主码是聚集索引项。
asc(升序)/desc(降序):缺省为asc。
create index stud on student(sname desc);
--查询
select sno,sname from student;
注: select<列表>中只有索引项或只有(主码项,索引项)两项时才能看到索引效果,不能使用select * from student看效果。
索引的删除:drop index 索引名 on 表名 ;
可以随时禁止和启用索引。
Alter index stud on student disable;--禁止索引.
Alter index stud on student rebuild; --重建索引并启用.