以脚本方式创建数据库相比使用企业管理器创建数据库的好处是数据库方便移植,只需要将*.sql文件复制到别的电脑上,打开并执行,就可以快速创建一模一样的数据库。
新建一个*.sql文件(*为自定义名称,最好使用英文字母,别使用中文字符)后开始写脚本代码
以下为创建数据库脚本代码:
use master
go
--删除数据库
if exists(select * from sysdatabases where name='SMDB')
drop database SMDB
go
--创建数据库
create database SMDB
on primary
(
name='SMDB_data',
filename='F:\SQL Server\SMDBDataBase\SMDB_data.mdf', --主数据库文件
size=10MB,
filegrowth=1MB
),
(
name='SMDB_dataSec',
filename='F:\SQL Server\SMDBDataBase\SMDB_dataSec.ndf', --次数据库文件
size=2MB,
filegrowth=1MB
)
log on
(
name='SMDB_log',
filename='F:\SQL Server\SMDBDataBase\SMDB_log.ldf', --主日志文件
size=2MB,
filegrowth=1MB
),
(
name='SMDB_logSec',
filename='F:\SQL Server\SMDBDataBase\SMDB_logSec.ldf', --次日志文件
size=2MB,
filegrowth=1MB
)
go
一个数据库只能有一个主数据库文件,但可以有多个次数据库文件。
以下为创建数据表、设置相关键和设置相关约束的脚本代码:
use SMDB
go
--创建Students数据表
if exists(select * from sysobjects where name='Students')
drop table Students
go
create table Students
(
StudentId int identity(100000,1),
StudentCardId numeric(18,0) not null,
StudentName varchar(20) not null,
StudentGender char(2) not null,
StudentBirthday datetime not null,
StudentAge int not null,
StudentPhone varchar(50),
StudentAddress varchar(500),
StudentClassId int not null
)
go
--创建Classes数据表
if exists(select * from sysobjects where name='Classes')
drop table Classes
go
create table Classes
(
ClassId int primary key,
ClassName varchar(10) not null
)
go
--设置Students和Classes间的关系
if exists(select * from sysobjects where name='fk_ClassId')
alter table Students drop constraint fk_ClassId
alter table Students add constraint fk_ClassId foreign key(StudentClassId) references Classes(ClassId)
--设置Students的主键
if exists(select * from sysobjects where name='pk_StudentId')
alter table Students drop constraint pk_StudentId
alter table Students add constraint pk_StudentId primary key(StudentId)
--设置Students的唯一约束
if exists(select * from sysobjects where name='uq_StudentCardId')
alter table Students drop constraint uq_StudentCardId
alter table Students add constraint uq_StudentCardId unique(StudentCardId)
--设置Students的检查约束
if exists(select * from sysobjects where name='ck_StudentAge')
alter table Students drop constraint ck_StudentAge
alter table Students add constraint ck_StudentAge check(StudentAge between 18 and 30)
if exists(select * from sysobjects where name='ck_StudentGender')
alter table Students drop constraint ck_StudentGender
alter table Students add constraint ck_StudentGender check(StudentGender = '男' or StudentGender ='女')
--设置Students的默认约束
if exists(select * from sysobjects where name='df_StudentAddress')
alter table Students drop constraint df_StudentAddress
alter table Students add constraint df_StudentAddress default('地址不详') for StudentAddress
if exists(select * from sysobjects where name='df_StudentPhone')
alter table Students drop constraint df_StudentPhone
alter table Students add constraint df_StudentPhone default('无') for StudentPhone
增、删、改、查基本操作
use SMDB
go
--查
select * from Students
select * from Classes
--增
insert into Students (StudentCardId,StudentName,StudentGender,StudentBirthday,StudentAge,StudentPhone,StudentAddress,StudentClassId) values (12345678945136547,'张三','男','1993-05-06',27,'13654872548','XX省XX县XX村',1)
insert into Classes(ClassId,ClassName) values (1,'软件1班')
--改
update Students set StudentGender='女' where StudentId=100002
--删
delete from Students where StudentId=100002
truncate table Students
使用delete删除数据后标识列继续增长,使用truncate删除数据后表示列重新编排,truncate的执行速度比detele快而且使用的系统资源和事务日志资源更少。
以上为数据库简单的脚本代码,供新手参考,欢迎留言指出错误,以上内容为作者纯手码字,如果雷同,万分荣幸,谢谢!
本文介绍如何通过SQL脚本创建数据库、数据表及执行增删改查操作,包括数据库移植方法,适合新手学习。文章详细展示了创建数据库、数据表、设置键和约束的脚本代码,并提供了基本的SQL操作示例。
902

被折叠的 条评论
为什么被折叠?



