时间:2021-05-23
下面给大家分享下sql server建库、建表、建约束技巧,下文介绍有文字有代码。
--创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建--
--exists关键字:括号里边能查询到数据则返回‘true' 否则返回‘false'
----------------------------------------使用T-SQL创建employee数据库------------------------------------
---------------------------------查询已存在的数据库信息---------------------------
---------------------------------删除数据库------------------------------------
复制代码 代码如下:
drop database School
---------------------------------创建Student数据库表----------------------------
复制代码 代码如下:
--1、选择操作的数据库--
use School
go
--判断表是否存在--
复制代码 代码如下:
if exists(select * from sysobjects where name = 'Student')
drop table Student
--2、创建表---
---查看所有数据库对象(数据库表)---
复制代码 代码如下:
select * from sysobjects
drop table Student
----------------------创建subject课程表-------------------
复制代码 代码如下:
-----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------
if exists(select * from sysobjects where name = 'subject')
drop table subject
use School
go
---创建subject课程表--
create table subject
(
SubjectNo int not null identity(1,1),
SubjectName nvarchar(50),
ClassHour int,
GradeID int
)
----------------------------------------创建Result成绩表-------------------
复制代码 代码如下:
-----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------
if exists(select * from sysobjects where name = 'Result')
drop table Result
use School
go
---创建Result成绩表--
复制代码 代码如下:
create table Result
(
StudentNo int not null,
SubjectNo int not null,
ExamDate Datetime not null,
StudentResult int not null
)
-----------------------------------------创建Grande年级表-------------------
复制代码 代码如下:
-----1、判断表是否存在;若存在则删除再创建,若不存在则直接创建--------
if exists(select * from sysobjects where name = 'Grade')
drop table Grade
use School
go
---创建Grande年级表--
复制代码 代码如下:
create table Grade
(
GradeId int not null,
GrandeName nvarchar(50)
)
-----------------------------------------T-SQL添加约束-------------------------
复制代码 代码如下:
--给StudentNo添加主键约束---
alter table Student
add constraint pk_StuNo primary key(StudentNo)
--给身份证添加唯一约束--
复制代码 代码如下:
alter table Student
add constraint uq_StuIdcard unique(IDENTITYcard)
---给地址address添加默认约束--
复制代码 代码如下:
alter table Student
add constraint df_stuaddress default('地址不详') for Address
---删除地址address默认约束---
复制代码 代码如下:
alter table Student
drop constraint df_stuaddress
----------出生日期添加检查约束--------
复制代码 代码如下:
alter table Student
add constraint ck_stuBorndate check(Borndate > '1980-01-01')
---------与Grand(年级表)建立主外键关系--------
--1、添加Grade主键(操作Grade)---
复制代码 代码如下:
alter table Grade
add constraint pk_graid primary key(GradeId)
--2、添加Grade外键(操作Student)--
复制代码 代码如下:
alter table Student
add constraint fk_stuGradeID foreign key(GradeId) references Grade(GradeId)
-------------------给subject课程表添加约束-----------------------
复制代码 代码如下:
----给subjectNo列添加主键约束------
alter table subject
add constraint pk_SubID primary key(SubjectNo)
------给课程名称subjectName添加非空约束;-----
复制代码 代码如下:
-----with nocheck:已经存在数据不通过check约束-------
alter table subject with nocheck
add constraint ck_subName check(SubjectName is not null)
-----学时必须大于0-----
复制代码 代码如下:
alter table subject with nocheck
add constraint ck_ClassHour check(ClassHour > 0)
-----与Grade年级表添加主外键约束----
复制代码 代码如下:
alter table subject with nocheck
add constraint fk_GradeID foreign key(GradeID)
references Grade(GradeID)
----------给result成绩表添加约束------------
-------添加多个约束---------
复制代码 代码如下:
alter table Result
add
constraint pk_No_subID_date primary key(StudentNo,SubjectNo,ExamDate),
constraint df_examdate default(getdate()) for ExamDate,
constraint ck_StudentResult check(StudentResult between 0 and 100),
constraint fk_StuNo foreign key(StudentNo) references Student(StudentNo),
constraint fk_subNo foreign key(SubjectNo) references Subject(SubjectNo)
--删除多个约束--
复制代码 代码如下:
alter table Result
drop constraint pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate
--------更改列的数据类型----------
复制代码 代码如下:
alter table Result
alter column StudentResult int
以上就是本文全部内容,希望大家喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.建库,建表,加约束.1.1建库复制代码代码如下:usemastergoifexists(select*fromsysdatabaseswhere)—判断ma
好的数据库规范有助于减少软件实现的复杂度,降低沟通成本,本铁律主要涵盖了建库建表、建索引、写SQL、ORM映射等方面的处理约定。1.建库铁律-铁律Level备注
说明:所有的代码基于SpringBoot2.0.3版本背景在应用程序启动后,可以自动执行建库、建表等SQL脚本.下文中以要自动化执行people.sql脚本为例
本文实例讲述了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法。分享给大家供大家参考,具体如下:建表:DROPTABLEIFEXISTSbull
MySQL会出现中文乱码的原因在于1.server本身设定问题,一般来说是latin12.建库建表时没有制定编码格式。MySql中表单输入数据出现中文乱码的解决