1.创建数据库,      2)次要数据文件

作者: www.9159.com  发布:2019-09-19

一、创建数据库
1.启动服务(三种)
开始--cmd--输入net start mssqlserver
开始--运行--net start mssqlserver
开始--服务--找到SQLSERVER(MSSQLSERVER)--右键--启动

SQLServer数据库的基础知识的回顾:

SQLServer数据库的基础知识的回顾:

1.创建数据库
use master
go
if exists(select * from sysdatabases where name='数据库名字')
drop database 数据库名字
go
create database 数据库名字

2.打开ssms

  1)主数据文件:*.mdf

  1)主数据文件:*.mdf

create database 数据库名字
on primary
(
name = 'MySchool_data',
filename = 'D:projectMySchool_data',--主数据文件
size = 10mb,
maxsize = 100mb,
filegrowth=15%
)
log on
(
name = 'MySchool_log',
filename = 'D:projectMySchool_log',--日志文件
size = 3mb,
maxsize = 20mb,
filegrowth=1mb
)
2.五大约束
1.—-主键约束(Primay Key constraint) 唯一性,非空性
2.—-唯一约束 (Unique constraint)唯一性,可以空,但只能有一个
3.—-检查约束 (Check constraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.—-默认约束 (Default constraint) 该数据的默认值
5.—-外键约束 (Foreign Key constraint) 需要建立两表间的关系并引用主表的列
3.五大约束的语法示例

3.登录:windows身份验证
混合验证模式

      2)次要数据文件:*.ndf

      2)次要数据文件:*.ndf

1.—-添加主键约束(将stuNo作为主键)
alter table stuInfo
add constraint PK_stuNo primary key (stuNo)
2.—-添加唯一约束(身份证号唯一,因为每个人的都不一样)
alter table stuInfo
add constraint UQ_stuID unique(stuID)
3.—-添加默认约束(如果地址不填 默认为“地址不详”)
alter table stuInfo
add constraint DF_stuAddress default (‘地址不详’) for stuAddress
4.—-添加检查约束 (对年龄加以限定 15-40岁之间)
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)

系统数据库:
master:存储系统配置信息,数据库信息等;千万不能删;
model:模板信息;空白数据库模板,表模板;
tempdb:临时表,临时存储过程等;
msdb:存储调度信息等;

  3)日志文件:*.ldf

  3)日志文件:*.ldf

alter table stuInfo
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)

创建数据库的语法:
create database 数据库名
on
(
name='数据库名',
filename='盘符:文件夹名文件名.后缀名',
size=数值mb, --主数据文件最小值为3mb
filegrowth=数值mb或百分比, --按mb增长,或按百分比增长
maxsize=数值mb
)
log on
(
name='数据库名_log',
filename='盘符:文件夹名数据库名_log.ldf',
size=数值mb, --日志文件最小值为1mb
filegrowth=数值mb或百分比,
maxsize=数值mb
)
go

  每个数据库至少要包含两个文件:一个数据文件和一个日志文件

  每个数据库至少要包含两个文件:一个数据文件和一个日志文件

5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)

判断是否有同名数据库存在,如果存在则先删除
1>if exists(select * from sys.databases where name='数据库名')
drop database 数据库名
go
2>if db_id('数据库名') is not null
drop database 数据库名
go

 如何查看SQL Server的帮助==================快捷键F1

 如何查看SQL Server的帮助==================快捷键F1

alter table stuInfo
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
4.直接在建表的时候添加约束
create table UserType--用户类别表
(
TypeID int not null primary key identity(1,1),
TypeName varchar(20) not null
)
create table Users--用户表
(
UserID int not null primary key identity(1,1),
UserName varchar(20) not null,
UserPwd int not null,
UserTyID int not null foreign key references UserType(TypeID)--用户类别
)
create table VisitArea--访问区域表
(
VisitID int primary key identity(1,1),
VisitName varchar(20)
)
create table UserTypeA--用户类别与区域表
(
TypeAID int not null primary key identity(1,1),
UserTypeID int not null foreign key references UserType(TypeID),
VisitID int not null foreign key references VisitArea(VisitID)
)
create table UsersLog--用户登录记录表
(
LogID int not null primary key identity(1,1),
LogName varchar(20) not null,
LogUserID int not null foreign key references Users(UserID),
LogTime date not null
)
create table VisitRecord--访问记录表
(
VRID int not null primary key identity(1,1),
VUserID int not null foreign key references Users(UserID),
VVisitID int not null foreign key references VisitArea(VisitID),
VisitTime date not null,
VUserType int not null foreign key references UserType(TypeID)
)
create table UpGrade
(
UGID int primary key not null identity(1,1),
UGUserID int not null foreign key references Users(UserID),
UpDown int not null , --升降标识
UpTypeID int not null check(UpTypeID>1 and UpTypeID<4 ),
DownTypeID int not null check(DownTypeID>1 and DownTypeID<4 ),
UpDownTime date not null,

题目:在E盘的hello文件夹下创建数据库students,主数据文件 初始大小10mb 按10%的方式增长,不限制上限;
日志文件,初始大小3Mb, 按1mb的方式增长,最大为20mb

 

 

)

use master
go
if exists(select * from sysdatabases where name='MySchool')
drop database MySchool
go
create database MySchool
on
(
name='MySchool_data',
filename='D:projectMySchool_data.mdf',
size=5MB,
filegrowth=15%
)
log on
(
name='MySchool_log',
filename='D:projectMySchool_log.ldf',
size=5mb,
filegrowth=1mb
)
go

use MySchool
go
if exists(select * from sysobjects where name='Student')
drop table Student
go
create table Student
(
StudentNo int not null, --学号
LoginPwd nvarchar(20) not null, --登录密码
StudentName varchar(20) not null, --学生姓名
Sex bit not null, -- 性别
GradeId int not null, --年级
Phone varchar(20) not null, --电话号码
Address nvarchar(100), --地址
BornDate datetime not null, --出生日期
Email nvarchar(50), --邮箱
IDEntityCard varchar(18) --身份证号
)
go
--主键约束 学生标号
alter table Student
add constraint PK_StudentNo primary key(StudentNo)
--唯一约束 身份证号
alter table Student
add constraint UQ_IDEntityCard unique(IDEntityCard)
--默认约束 地址不详
alter table Student
add constraint DF_Address default('地址不详') for Address
--检查约束 出生日期
alter table Student
add constraint CK_BornDate check(BornDate>'1980-01-01')

 

use MySchool
go
if exists(select * from sysobjects where name='Subject')
drop table Subject
go
create table Subject
(
SubjectNo int identity(1,1) not null, --课程编号
SubjectName nvarchar(20) not null, --课程名称
ClassHour int not null, --课时
GradeId int not null --年级
)
go

--主键约束
alter table Subject
add constraint PK_SubjectNo primary Key(SubjectNo)
--检查约束
alter table Subject
add constraint CK_ClassHour check(ClassHour>0)

alter table Subject
add constraint Ck_SubjectName check(SubjectName!=null)
--外键约束

use MySchool
go
if exists(select * from sysobjects where name='Result')
drop table Result
go
create table Result
(
StudentNo int not null, --学号
SubjectNo int not null, --课程编号
StudentResult int not null, --学生成绩
ExamDate datetime not null --考试日期
)
go

 

alter table Result
add constraint PK_fuhe primary Key(StudentNo,SubjectNo,ExamDate)
alter table Result--默认约束 日期
add constraint DF_ExamDate default(getdate()) for ExamDate
alter table Result
add constraint CK_StudentResult check (100>StudentResult )
alter table Result
add constraint CK_StudentResult2 check (StudentResult>0 )
alter table Result
add constraint FK_SubjectNo subject是主表
foreign Key(SubjectNo) references Subject(SubjectNo)
alter table Result
add constraint FK_StudentNo
foreign Key(StudentNo) references Student(StudentNo)

use MySchool
go
if exists(select * from sysobjects where name='Grade')
drop table Grade
go
create table Grade
(
GradeID int identity(1,1) not null, --年级编号
GradeName nvarchar(20) not null, --年级

)
go

alter table Grade
add constraint PK_GradeID primary Key(GradeID)

--外键约束
alter table Student
add constraint FK_GradeId
foreign Key(GradeId) references Grade(GradeId)

alter table Subject
add constraint FK_GradeId2
foreign Key(GradeId) references Grade(GradeId)

--向Grade表插入数据
INSERT INTO Grade VALUES('S1')

--向Subject表插入数据
INSERT INTO Subject VALUES('Winforms',20,1)

--向Student表插入数据
INSERT INTO Student VALUES('10000','GuoJing','郭靖',1,1,02088762106,'天津市河西区','1987-09-08 00:00:00','GuoJing@sohu.com',111111)

--向Result表插入数据
INSERT INTO Result VALUES('10001',2,70.6,'2013-02-15 00:00:00')

select * from Grade
select * from Result
select * from Student
select * from Subject

如果当文件夹不存在时,需要在指定文件夹下创建数据库文件,需要先启动外围配置,再调用dos命令创建文件夹
启动外围配置
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'xp_cmdshell',1
reconfigure
go

一、创建文件夹 

一、创建文件夹 

调用dos命令
exec xp_cmdshell 'md 盘符:文件夹名...',no_output或output
go

exec sp_configure 'show advanced options',1

exec sp_configure 'show advanced options',1

完整的创建数据库的步骤:
1.启动外围配置

go

go

2.调用dos命令创建文件夹

reconfigure

reconfigure

3.判断是否有同名数据库存在

go

go

4.创建数据库

exec sp_configure 'xp_cmdshell',1

exec sp_configure 'xp_cmdshell',1

二、创建表
1.切换数据库
use 数据库名
go

go

go

2.判断同名表是否存在
if exists(select * from sys.objects where name='表名')
drop table 表名
go

reconfigure

reconfigure

 

go

go

三、.创建约束
alter table 表名
add constraint pk_表名_列名 primary key(列名), --主键:不为空不重复
cosntraint uq_表名_列名 unique(列名), --唯一约束:不重复
constraint ck_表名_列名 check(条件表达式),
constraint df_表名_列名 default '默认值' for 列名
go

exec xp_cmdshell 'mkdir E:新建文件'

exec xp_cmdshell 'mkdir E:新建文件'

外键:关联多个表之间的相同列;
学生信息表stuInfo:学号sno 姓名 性别 年龄 等... --学号一定是主键
学生成绩表score: 考号 学号no 成绩... --考号是主键 学号是外键

go

go

外键创建的前提,必须在另外一个表里面是主键;
主表:外键对应的主键所在的表;
从表:外键所在的表;
alter table 从表名
add constraint 从表名_主表名_从表列名 foreign key(从表列名) references 主表名(主表列名)
go
alter table score
add constraint score_stuInfo_no foreign key(no) references stuInfo(sno)
go
了解"联合主键":
alter table 表名
add constraint pk_表名_列名1_列名2 primary key(列名1,列名2)
go

 

 

 

二、创建数据库

二、创建数据库

1.例子: 

1.例子: 

 --判断,如果有这个数据库则进行删除

 --判断,如果有这个数据库则进行删除

www.9159.com ,if exists(select * from sysdatabases where name='MySchool')

if exists(select * from sysdatabases where name='MySchool')

begin

begin

drop database MySchool

drop database MySchool

end 

end 

 --创建数据库

 --创建数据库

create database MySchool

create database MySchool

on primary

on primary

(

(

--数据文件的具体描述

--数据文件的具体描述

 name='MySchool_data',                 --主数据文件的逻辑名称+++++++必须写

 name='MySchool_data',                 --主数据文件的逻辑名称+++++++必须写

 filename='E:MySchool_data.mdf',   --主数据文件的物理名称+++++++必须写

 filename='E:MySchool_data.mdf',   --主数据文件的物理名称+++++++必须写

 size=5mb,                                 --主数据文件的初始大小

 size=5mb,                                 --主数据文件的初始大小

  maxsize=100mb,                      --主数据文件增长的最大值

  maxsize=100mb,                      --主数据文件增长的最大值

  filegrowth=15%                       --主数据文件的增长率

  filegrowth=15%                       --主数据文件的增长率

)

)

log on

log on

 (

 (

--日志文件的具体描述,各参数含义同上

--日志文件的具体描述,各参数含义同上

name='MySchool_log',

name='MySchool_log',

 filename='E:MySchool_log.ldf',

 filename='E:MySchool_log.ldf',

 size=2mb,

 size=2mb,

filegrowth=1mb

filegrowth=1mb

 )

 )

 go

 go

三、创建表

三、创建表

 2 use MySchool --将当前数据库设置为MySchool,以便在MySchool里创建表

 2 use MySchool --将当前数据库设置为MySchool,以便在MySchool里创建表

 3 go

 3 go

 4 --判断是否存在表,存在则删除

 4 --判断是否存在表,存在则删除

 5 if exists (select * from sysobjects where name='Student')

 5 if exists (select * from sysobjects where name='Student')

 6 drop table Student

 6 drop table Student

 7---创建Student表

 7---创建Student表

 8 create table Student   

 8 create table Student   

 9 (

 9 (

10  StudentNo int identity(1,1)  primary key not null,  --学号 自增 主键,非空

10  StudentNo int identity(1,1)  primary key not null,  --学号 自增 主键,非空

11  loginpwd nvarchar(20) not null,

11  loginpwd nvarchar(20) not null,

12  StudentName nvarchar(20) not null,

12  StudentName nvarchar(20) not null,

13  Sex bit default'女' not null,      --性别,取值0,1

13  Sex bit default'女' not null,      --性别,取值0,1

14  GradeId int not null,

14  GradeId int not null,

15  Phone nvarchar(50) null,

15  Phone nvarchar(50) null,

16  Address nvarchar(100) null,

16  Address nvarchar(100) null,

17  BornDate datetime not null,

17  BornDate datetime not null,

18  Email nvarchar(20) null,

18  Email nvarchar(20) null,

19  IdentityCard varchar(18) not null

19  IdentityCard varchar(18) not null

20  )

20  )

21 go

21 go

四、创建约束

四、创建约束

 

 

语法:

语法:

 

 

 1 alter table 表名

 1 alter table 表名

 

 

2 add constraint 约束名 约束类型 具体的约束说明 

2 add constraint 约束名 约束类型 具体的约束说明 

 

 

 

 

例子:

例子:

 

 

1、添加默认约束(默认'地址不详')

1、添加默认约束(默认'地址不详')

 

 

1 alter table Student

1 alter table Student

 

 

2 add constraint df_address default('地址不详') for address

2 add constraint df_address default('地址不详') for address

 

 

 

 

2、添加检查约束(要求出生在1996年10月26日)

2、添加检查约束(要求出生在1996年10月26日)

 

 

1 alter table Student

1 alter table Student

 

 

2 add constraint ck_BornDate check (BornDate >='1996-10-26')

2 add constraint ck_BornDate check (BornDate >='1996-10-26')

 

 

 

 

3、添加唯一约束(身份证全世界只有一个)

3、添加唯一约束(身份证全世界只有一个)

 

 

 1 alter table Student

 1 alter table Student

 

 

2 add constraint uq_IdentityCard unique (IdentityCard) 

2 add constraint uq_IdentityCard unique (IdentityCard) 

 

 

 

 

 

 

4、添加主键约束

4、添加主键约束

 

 

 1 alter table Student

 1 alter table Student

 

 

2 add constraint pk_StudentNo primary key(StudentNo) 

2 add constraint pk_StudentNo primary key(StudentNo) 

 

 

 

 

5、添加外键约束(主表 Student 和从表 REsult建立关系,关联列StudentNo)

5、添加外键约束(主表 Student 和从表 REsult建立关系,关联列StudentNo)

 

 

1 alter table Result

1 alter table Result

 

 

2 add constraint fk_StudentNo

2 add constraint fk_StudentNo

3     foreign key(StudentNo) references Student (StudentNo)

3     foreign key(StudentNo) references Student (StudentNo)

 

 

五、sql操作数据库数据的实现(增、删、查、改)

五、sql操作数据库数据的实现(增、删、查、改)

 

 

(一)插入数据

(一)插入数据

 

 

语法:

语法:

 

 

        insert  into  目标表(新表)

        insert  into  目标表(新表)

 

 

        select '列名' union

        select '列名' union

 

 

eg

eg

 

 

        insert  into  card(ID,password)

        insert  into  card(ID,password)

 

 

        select  ‘0023-ABC’,‘ABC’  union

        select  ‘0023-ABC’,‘ABC’  union

 

 

(二)增加数据

(二)增加数据

 

 

语法:

语法:

 

 

    insert   into   表名

    insert   into   表名

 

 

    values (‘   ’,‘     ’)

    values (‘   ’,‘     ’)

 

 

eg

eg

 

 

    insert  into  card

    insert  into  card

 

 

    values (‘0023-ABC’,‘ABC’)

    values (‘0023-ABC’,‘ABC’)

 

 

(三)修改数据

(三)修改数据

 

 

语法:

语法:

 

 

     update   表名     set    行名

     update   表名     set    行名

 

 

     where     列名

     where     列名

 

 

eg

eg

 

 

    update   card    set     password=‘pwd’

    update   card    set     password=‘pwd’

 

 

    where ID=‘0023-ABE’

    where ID=‘0023-ABE’

 

 

(四)删除数据

(四)删除数据

 

 

语法:

语法:

 

 

     delete   from   表名

     delete   from   表名

 

 

     where   行名

     where   行名

 

 

eg

eg

 

 

    delete   from   card

    delete   from   card

 

 

    where   ID=‘0023-ABE’

    where   ID=‘0023-ABE’

 

 

(五)查看数据

(五)查看数据

 

 

语法:

语法:

 

 

     select  *   from   表名  

     select  *   from   表名  

 

 

eg

eg

 

 

    select  *   from  student

    select  *   from  student

 

 

本文由9159.com发布于www.9159.com,转载请注明出处:1.创建数据库,      2)次要数据文件

关键词:

上一篇:没有了
下一篇:没有了