想要创建数据表,首先你要使用某个数据库
use test --切换当前数据库为test,test为数据库名
创建数据表
--创建表语法
create table 表名
(
字段名1 数据类型
字段名2 数据类型
...
)
示例1:
use test --切换当前数据库为test,test为数据库名
--创建表
--我们这里以部门表为例
create table Department
(
--部门ID
DepartmentId int primary key identity(1,1),
--类型为int,
--primary key表示主键(不能有相同的,只能唯一),
--identity(1,1)表示自动增长,初始值为1,每次增长1
--部门名称
DepartmentName varchar(10) not null,
--varchar类似java里面的字符串类型String,10表示最多10个字符
--not null表示不能为空
--部门描述
DepartmentRemark text--对于长文本,可以用text类型
)
ps:字符串类型的一些区别
char:定长,比如char(10),无论存储数据是否真的到了10个字节,都要占用10字节
类似C语言的char[10],也就是10个字节大小的char数组
varchar:变长,比如varchar(10),是最多占10个字节,你里面放1个字节,就占1个字节
text:长文本,比如你有几千几万字,你就可以用这个
char,varchar,text前面加n(比如nvarchar):存储unicode字符,对中文友好,比如varchar(100):存储100个字母或者50个汉字,
nvarchar(100):存储100个字母或100个汉字,
示例2:
--员工表
create table People
(
PeopleId int primary key identity(1,1),--员工编号
PeopleName nvarchar(10) not null,--员工姓名
PeopleSex nvarchar(1) default('男') check(PeopleSex='男' or PeopleSex='女'),--性别
--default表示默认值,就是你不在这格里面填,那它默认就是男
--check表示对PeopleSex进行约束,
--check(),括号里面表示具体约束上述表示PeopleSex只能是男或女,
--or表示或的意思
PeopleBirth datetime not null,--生日
--日期可以用datetime或者date
--datetime可以存储年月日,时分秒
--date只能存储年月日
--ps:还有smalldatetime,表示范围比datetime范围小一点
PeopleSalary decimal(12,2) check(PeopleSalary>=1000 and PeopleSalary<=10000),--薪资
--浮点数类型还有float,但是float是有误差的,
--对于“钱”,我们用decimal精度更好一点
--decimal(12,2),12表示总长度12,2表示小数点两位
PeoplePhone varchar(20) unique not null,--电话
--unique表示唯一的意思,只能有唯一一个值
PeopleAddress varchar(50),--地址
PeopleAddTime smalldatetime default(getdate()),--入职时间
--default(getdate())就是默认值是当前填表的时间
DepartmentId int references Department(DepartmentId),--是哪个部门的
--reference表示外键,也就是我这个员工表的DepartmentId和Department里的DepartmentId关联上了
--意义就是,如果我现在Department表里面已经是规定了DepartmentId只有1 2 3这3个部门编号,
--那你在现在这个People表中DepartmentId就不能填上除了1 2 3以外的数字编号
--主键:唯一标识一行
--外键:就是把其他表里的主键作为我这个表的字段
)
删除数据表
--判断表是否存在,如果存在就删除
if exists(select * from sys.objects where name ='Department' and type='U')
--sys.objects表示当前库里面存储的一些对象,如果在里面能找到Department说明表之前就有了
--and表示而且的意思,类似其他语言中的&&
--type='U'表示是用户创建的
drop table Department--删除数据表