浩瀚

SqlServer使用sql语句建库建表建约束

SqlServer使用sql语句建库建表建约束

批处理

use master
go

判断数据库是否存在

if exists(select * from sysdatabases where name='student')
  drop database student
go

判断student数据库是否存在,存在则删除student数据库

创建数据库

create database student
     on primary
  (
     name='student_data', 
     filename='C:\sql\student_data.mdf',
     size=3mb,
     filegrowth=1mb
  ),---添加次文件
  (
     name='student_nData',
     fileName='C:\sql\student_nData.ndf',
     size=1mb,
     filegrowth=10%
  )
  log on
  (
     name='student_log',
     filename='C:\sql\student_log.ldf',
     size=1mb,
     filegrowth=10%
  )
  go

name 逻辑名 fileName 文件保存路径 size 初始大小 filegrowth 增长比例,.mdf主要数据库文件,.ndf次文件,.ldf日志文件

use student
go

选择刚刚创建的student数据库

创建年级表

if exists(select * from sys.tables where name='grade')
  drop table grade
  go
  create table grade
  (
     gid int not null primary key identity(1,1),
     gName varchar(20)  not null  unique  ---唯一约束
  )
  go

if和上面的创建库同理,创建grade表 gid列标识列,种子1,步长1 语法:列名 数据类型 非空 主键 标识

insert into grade values('1'),('2'),('3')

插入测试数据

创建学生表

if exists(select * from sys.tables where name='studentInfo')
  drop table studentinfo
  go
  create table studentInfo
  (
     stuId int not null primary key identity(1,1),
     sName varchar(20) not null,
     gid int not null, ----references grade(gid)---建表的时候建外键
     age int not null check(age>18 and age<100),
     phone char(11) check(len(phone)=11),
     email varchar(20),
     [address] nvarchar(255)
  )
  go

创建外键约束

alter table studentInfo
   add constraint fk_grade_studentInfo foreign key(gid) references grade(gid)
go

studentInfo表的gid列引用grade表的gid列

添加默认约束

alter table studentInfo
   add  constraint df_address default '湖北' for [address]---加默认约束
go

为studentInfo表的address列添加默认约束

删除约束

alter table studentInfo
drop constraint df_address

删除studentInfo表的df_address约束