创建数据库
--如果存在就删除
--所有的数据库都存在sys.databases当中
if exists(select * from sys.databases where name = 'DBTEST')drop database DBTEST--创建数据库
else
create database DBTEST
on --数据文件
(name='DBTEST',--逻辑名称 字符串用单引号filename='D:\DATA\DBTEST.mdf',--物理路径和名称size=5MB,--文件的初始大小filegrowth=2mb--文件增长大小,也可以写百分比
)log on --日志文件
(name='DBTEST_log',--逻辑名称 字符串用单引号filename='D:\DATA\DBTEST_log.ldf',--物理路径和名称size=5MB,--文件的初始大小filegrowth=2mb--文件增长大小,也可以写百分比
)--创建数据库简写
create database DBTEST1 --数据库的数据文件和日志文件会为默认值
sys.databases路径:系统数据库 -> master -> 视图 -> 系统视图 -> sys.databases
查看前1000行:
if exists(select * from sys.databases where name = 'DBTEST')drop database DBTEST
如果DBTEST
数据库存在,那么就删除(drop)掉这个数据库。
创建数据表
--切换数据库
use DBTEST--创建表的基本语法
--create table 表名
--(--)
--判断表是否存在
if exists(select * from sys.objects where name='Department'and type='U')drop table Department--建表(部门、职级、员工)
create table Department --部门表
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长DepartmentID int primary key identity(1,1),DepartmenName nvarchar(50) not null, --最多能个存50个字,不能为nullDepartmentRemark text --部门描述
)--Rank是一个关键字,可以使用[ ]括起来create table [Rank] --部门表
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长RankID int primary key identity(1,1),RankName nvarchar(50) not null, --最多能个存50个字,不能为nullRankRemark text --部门描述
)--char:定长,char(10),里面可以存储10个字节,存了3个字节,也占用10个字节
--varchar:变长,varchar(10)最多占用10个字节,11个存不进去
--text:长文本
--前面加一个n标识存储的unicode字符,nchar,nvarchar,ntext
--对中文更加友好
--varchar(100):存储100个字母或者50个汉字
--nvarchar(100):存储100个字母或者100个汉字--员工
create table People
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长DepartmentId int references Department(DepartmentId) not null, --外键,部门RankId int references [Rank](RankId) not null,--职级,引用外键PeopleID int primary key identity(1,1),PeopleName nvarchar(50) not null, --最多能个存50个字,不能为nullPeopleSex nvarchar(1) default('男') check(PeopleSex='男'or PeopleSex='女'),PeopleBrith smalldatetime not null, --data:年月日,datatime:年月日时分秒,smalldatetime:最近的一段时间的时间,占用空间也会更小PeopleSalary decimal(12,2) check(PeopleSalary>=1000 and PeopleSalary<=1000000)not null,PeoplePhone varchar(20) unique not null,--unique:这个数据是唯一的PeopleAddress nvarchar(300),PeopleAddTime smalldatetime default(getdate())--添加时间
)
数据类型
- char:定长,char(10),里面可以存储10个字节,存了3个字节,也占用10个字节
- varchar:变长,varchar(10)最多占用10个字节,11个存不进去
- text:长文本
- 前面加一个n标识存储的unicode字符,nchar,nvarchar,ntext
- 对中文更加友好
- varchar(100):存储100个字母或者50个汉字
- nvarchar(100):存储100个字母或者100个汉字
- data:只包括年月日
- datetime:包括了年月日时分秒
- smalldatetime:最近的年月日
- decimal(12,2):整数占12位,小数2位
check(PeopleSalary>=1000 and PeopleSalary<=1000000)
,检查PeopleSalary>=1000并且PeopleSalary<=1000000
。
primary key
:主键
references Department(DepartmentId)
:是指定了一个外键约束,将另一个表中的特定字段(DepartmentId)与本表的某个字段进行关联。
default('男')
:不填默认就是男。