T-SQL入门(二)——创建表
2013-02-01 13:53
197 查看
上一篇中,提到了创建数据库,这一篇当然就是创建数据库中的表。
创建数据表的常规语法为:
CREATE TABLE 表名称
(
列名称1 数据类型,是否为空,约束,
列名称2 数据类型,是否为空,约束,
列名称3 数据类型,是否为空,约束,
....
)
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) --插入一条数据,没有插入的字段,按默认处理
ALTER TABLE student ADD cid int NULL
ALTER TABLE student ADD nation varchar(10) NULL
ALTER TABLE student DROP COLUMN cid
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
删除数据库/表/索引
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)
简要总结的来源在这里。
本文发布与Catcoder,转载请注明链接。
创建数据表的常规语法为:
CREATE TABLE 表名称
(
列名称1 数据类型,是否为空,约束,
列名称2 数据类型,是否为空,约束,
列名称3 数据类型,是否为空,约束,
....
)
其中数据类型可以参看MSDN中的说明,很详细,传送门。
下面就在上次创建的stuDB中建立一个student表:
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) --插入一条数据,没有插入的字段,按默认处理
最终形成的表:
创建了简单的数据表后,还可以对表进行增删或者进行约束和索引。
我们希望在student表中增加两个字段,班级id和民族。
ALTER TABLE student ADD cid int NULL
ALTER TABLE student ADD nation varchar(10) NULL
注:在已有的数据表中增加字段时需要注意的是不能指定当前字段不为空。
现在student表示下面的样子:
但我现在没有班级表,不想要cid,可以删除之:
ALTER TABLE student DROP COLUMN cid
如果现在我想把原先的年龄的默认值从18改为16,改怎么做?默认值是不可以直接更改的,所以我们只能删了原来的默认值,然后再重新添加,但又有个问题,如何得到默认值的名字呢?这里需要一些变量的知识了,但暂且先不说,只要可以满足当前的功能即可。
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
一个简要的总结:
删除数据库/表/索引
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)
简要总结的来源在这里。
本文发布与Catcoder,转载请注明链接。
相关文章推荐
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- 【sql入门】根据要求绘制E/R图,创建数据库(1)绘制E/R图
- PowerDesigner16.5快速入门显示,注释comment配置方法,以及创建sql文件过程中需要注意的一些问题
- 入门---1.1: 从XML中创建SqlSessionFactory
- SQL入门:创建视图
- SQL入门(创建数据库语法)
- T-SQL入门(一)——创建数据库
- T-SQL入门(二)——创建表
- SQL入门(1)——创建,删除,查看数据库(database)信息
- T-SQL入门(一)——创建数据库
- 【sql入门】根据要求绘制E/R图,创建数据库(2)mySQL建表基本语法及主键外键选择
- 2014.08.23 周六-http请求响应-sql入门:安装、创建数据库
- PowerDesigner16.5快速入门显示,注释comment配置方法,以及创建sql文件过程中需要注意的一些问题
- oracle PL/SQL入门--创建表
- [转载]传智播客_SQL入门
- sql基础入门——mysql与navicat连接
- 收录 一下 创建数据库 并 建立一个表的 SQL原码
- 【Mysql sql inject】【入门篇】SQLi-Labs使用 part 2【12-14】
- SQL语句---创建表同时添加约束
- Sql语句学习笔记(1)-创建数据库