T-SQL入门(二)——创建表

上一篇中,提到了 创建数据库 ,这一篇当然就是创建数据库中的表。

创建数据表的常规语法为:



[sql] CREATE TABLE 表名称 ( 列名称1 数据类型,是否为空,约束, 列名称2 数据类型,是否为空,约束, 列名称3 数据类型,是否为空,约束, .... ) [/sql]


其中数据类型可以参看MSDN中的说明,很详细,传送门


下面就在上次创建的stuDB中建立一个student表:



[sql] USE stuDB --转到stuDB数据库 GO IF EXISTS(SELECT * FROM sysobjects WHERE name='student') --如果有同名的,删除 DROP TABLE test1 GO CREATE TABLE student ( tid int IDENTITY(1,1) NOT NULL, --tid,以种子1,增量1自增长,不可为空 tname varchar(20) NOT NULL, --姓名,20varchar类型长度,不可为空 tage int NOT NULL DEFAULT 18 CHECK(tage > 0), --年龄,int型,不可为空,默认18,大于0约束 tInterTime datetime not null DEFAULT getDate() --加入时间,datetime类型,不为空,默认为插入时系统世界 ) ALTER TABLE student ADD CONSTRAINT RK_UID --创建主键,tid PRIMARY KEY(tid) INSERT INTO student (tname,tage) VALUES('ceshi1',25) --插入一条数据,没有插入的字段,按默认处理 [/sql]


最终形成的表:



25665296


创建了简单的数据表后,还可以对表进行增删或者进行约束和索引。
 
我们希望在student表中增加两个字段,班级id和民族。



[sql] ALTER TABLE student ADD cid int NULL ALTER TABLE student ADD nation varchar(10) NULL [/sql]


注:在已有的数据表中增加字段时需要注意的是不能指定当前字段不为空。
 
现在student表示下面的样子:


26042468


但我现在没有班级表,不想要cid,可以删除之:


[sql]ALTER TABLE student DROP COLUMN cid[/sql]


26265937


如果现在我想把原先的年龄的默认值从18改为16,改怎么做?默认值是不可以直接更改的,所以我们只能删了原来的默认值,然后再重新添加,但又有个问题,如何得到默认值的名字呢?这里需要一些变量的知识了,但暂且先不说,只要可以满足当前的功能即可。



[sql] DECLARE @dname varchar(100) --声明变量 select @dname=name from sysobjects where xtype = 'D' and parent_obj = object_id('student') and name like '%tage%' --查询默认值的名称 --ALTER TABLE student DROP CONSTRAINT @dname --删除语句不支持变量,所以要用下面的拼接函数 EXEC('ALTER TABLE student DROP CONSTRAINT ' + @dname) ALTER TABLE student ADD CONSTRAINT tageDefault Default '16' for tage [/sql]



一个简要的总结:
删除数据库/表/索引  
    drop database 数据库名  
    drop table 表名  
    drop index 表名.索引名  
    drop procedure 存储方法名  
    drop view 视图名  
 
.创建约束  
    alter table 表名 add constraint 约束名 约束类型  
    主键约束:primary key(列名)  
    外键约束:foregin key(列名) references 主表名(主键名)  
    唯一约束:unique(列名)  
    默认约束:default(默认值) for 列名  
    check约束:check(条件)  
    //标识列可以在创建列的时候,使用identity(1,1) 
 
简要总结的来源在这里



转载于:https://www.cnblogs.com/mnight/archive/2013/02/01/3677632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值