如果需要创建数据库,可能会出现数据库名字重名的现象,我们可以使用如下代码查询数据库名是否存在,存在则删除此数据库。
--删除数据库
if exists(select * from sys.database where name = 'DBTEST')
drop database DBTEST
--创建数据库
create database DBTEST
on --数据文件
(
name = 'DBTEST', --逻辑名称
filename = 'E:\DATA\DBTEST.mdf', --物理路径和名称
size = 5MB, --文件的初始大小
filegrowth = 2MB --文件增长方式可以写大小,也可以写百分比
)
log on --日志文件
(
name = 'DBTEST_log', --逻辑名称
filename = 'E:\DATA\DBTEST_log.ldf', --物理路径和名称
size = 5MB, --文件的初始大小
filegrowth = 2MB --文件增长方式可以写大小,也可以写百分比
)
注意:此代码检查数据库是否存在“DBTEST”数据库,如果存在则删除数据库,此处理方式仅限学习时使用,请谨慎使用!!!
--创建数据库简写
create database DBTEST
2、创建表格(代码操作)
--切换数据库
use 数据库名
--创建表基本语法
create table 表名
(
字段名1 数据类型,
字段名2 数据类型
)
--判断表是否存在
if exists(select * from sys.objects where name = 'Department' and type = 'U')
--建表(部门,职级,员工)
create table Department
(
--部门编号,primary key:主键,identity(1,1):自动增长,初始值1,增长步长1
DepartmentId int primary key identity(1,1),
--部门名称
DepartmentName nvarchar(50) not null,
--部门描述
DepartmentRemark text
)
--职级
create table [Rank]
(
--职级编号,primary key:主键,identity(1,1):自动增长,初始值1,增长步长1
RankId int primary key identity(1,1),
--职级名称
RankName nvarchar(50) not null,
--职级描述
RankRemark text
)
--员工
create table People
(
PeopleId int primary key identity(1,1), --员工编号
DepartmentId int references Department(DepartmentId) not null, --部门(引用外键)
RankId int references [Rank](RankId) not null, --职级(引用外键)
PeopleName nvarchar(50) not null, --姓名
PeopleSex nvarchar(1) default('男') check(PeopleSex='男' or PeopleSex='女') not null, --性别
PeopleBirth smalldatetime not null, --生日
PeopleSalary decimal(12,2) check(PeopleSalary>=1000 and PeopleSalary<=1000000) not null, --月薪
PeoplePhone varchar(20) unique not null, --电话
PeopleAddress varchar(300), --地址
PeopleAddTime smalldatetime default(getdate()) --添加时间
)
--char: 定长,char(10),无论存储数据是否真的到了10个字节,都要占用10个字节。
--char(10)存储'ab',仍然占用10个字节
--varchar: 变长, varchar(10),最多占用10个字节
--varchar(10)存储'ab',占用2个字节
--text:长文本
--char,varchar,text前面加n:存储unicode字符,对中文友好
--varchar(100):存储100个字母或者50个汉字
--nvarchar(100):存储100个字母或者100个汉字
SET QUOTED_IDENTIFIER ON --开启标识符
GO
CREATE TABLE [dbo].[ScoreInfo01](
[id] [int] NULL,
[name] [varchar](50) NOT NULL,
[course] [varchar](50) NULL,
[score] [int] NULL
) ON [PRIMARY]
GO