数据库Tsql语句创建--约束--插入数据
1.创建数据库
use master
go
if exists(select * from sysdatabases where name='数据库名字')
drop database 数据库名字
go
create database 数据库名字
create database 数据库名字
on primary
(
name = 'MySchool_data',
filename = 'D:\project\MySchool_data',--主数据文件
size = 10mb,
maxsize = 100mb,
filegrowth=15%
)
log on
(
name = 'MySchool_log',
filename = 'D:\project\MySchool_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.五大约束的语法示例
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)
alter table stuInfo
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)
5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
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,
)
--------------------------------------------------------------------------------------------------------------------------------
use master
go
if exists(select * from sysdatabases where name='MySchool')
drop database MySchool
go
create database MySchool
on
(
name='MySchool_data',
filename='D:\project\MySchool_data.mdf',
size=5MB,
filegrowth=15%
)
log on
(
name='MySchool_log',
filename='D:\project\MySchool_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
数据库Tsql语句创建--约束--插入数据的更多相关文章
- 使用T-SQL语句创建数据库2
创建多个数据文件和多个日志文件 use master GO create database book on primaty --主文件组 ( name=‘book_data’, --主文件逻辑文件名 ...
- 创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用
/// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable ...
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
实例1.取得MYSQL版本 复制代码 代码如下: # -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQLdb as mdbcon = Non ...
- 数据库---T-SQL语句提纲
T-SQL语句: 创建表:create table Name(Code varchar(50)) 主键:primary key自增长列:auto_increment外键关系:references非空: ...
- 数据库---T-SQL语句(一)
一.T-SQL语句 1.创建表:create table Name(Code varchar(50),) 主键:primary key 自增长:auto_increment 外键关系:referenc ...
- java实现mysql数据库从一张表插入数据到另一张表
创建两张表: create table employee( id ), name ), email ), gender ) ); create table copyEmployee( id ), na ...
- Python003-测试辅助示例应用数据库更新语句创建
上周同事又问一个问题:表 C_Application 中数据量较大,需要批量更新 load_start_time 的时间为 '1900-01-01 18:43:49' 为初始值,以一定时间间隔且每次更 ...
- 数据库TSQL语句
一.创建数据库create database test3;二.删除数据库drop database test3;三.如何创建表create(创建) table(表) test(表名)(此处写列 var ...
- T-SQL 语句创建Database的SQL mirroring关系
1 证书部分:principle 和 secondary 端执行同样操作,更改相应name即可 USE master; --1.1 Create the database Master Key, if ...
随机推荐
- Git-删除本地文件夹的repository(本地仓库)
安装git软件后.有些文件夹里会出现带有?的图标,右键菜单上会有"Git-Sync"或者"Git-Commit"等命令:正常的应该是"Git-Clon ...
- MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
先看代码(sklearn的示例代码): from sklearn.neural_network import MLPClassifier X = [[0., 0.], [1., 1.]] y = [0 ...
- JTextArea 加入滚动条
JTextArea texA; JScrollPane scroll; TextEdit(String name){ super(name); init(); } void init(){ this. ...
- vue2 filter过滤器的使用
本章主要讲vue2的过滤器的使用 1.先介绍下vue1与vue2的filter区别,也就是vue2更新的地方 a: 2.0将1.0所有自带的过滤器都删除了,也就是说,在2.0中,要使用过滤器,则需要我 ...
- xxx while the managed IDbConnection interface was being used: Login failed for user xxx
Process cube的时候遇到如下错误. Errors in the high-level relational engine. The following exception occurre ...
- Android 设计一个菱形形状的Imageview组件.
网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android这个答案描述的挺清楚的:http://www.goodpm.net/postr ...
- latex问题总结
1.使 IEEE 的 Latex 杂志(journal)模板(templet)图片标题(caption)居中 由于IEEETran-journal中的默认caption左对齐.加上\usepackag ...
- layui layer 弹框
layer 这个是一个web弹层组件,挺好用的...然后项目框架是SSM... layer.open主要是用来弹出来一个iframe弹窗,然后用来展示数据也行,用来修改也行,这次记录的主要是展示,展示 ...
- Activiti BPMN 2.0 designer eclipse插件安装
官方网是这样说的: https://www.activiti.org/userguide/index.html#springSpringBoot The following installation ...
- centos7-centos6常用配置对比
设置(CentOS 6 vs CentOS 7)系统常用配置 ysvinit vs Upstart vs Systemd) 常见设置: 字符集CentOS 6方法:/etc/sysconfig/i1 ...