SQL数据定义:CREATE,DROP,ALTER

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; --重建索引并启用.








 



 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADoubleLiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值