mysql建库建表建约束_sqlserver建库、建表、建约束技巧

下面给大家分享下sql server建库、建表、建约束技巧,下文介绍有文字有代码。

--创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建--

--exists关键字:括号里边能查询到数据则返回‘true' 否则返回‘false'

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

--exists返回‘true'则执行删除数据库操作--

drop database School

--exists返回‘false'则表明数据库不存在,直接创建

create database School

on primary

(

--主数据库文件--

name = 'School', --主数据文件逻辑名

fileName = 'D:\project\School.mdf', --主数据文件物理逻辑名

size = 5MB, --初始值大小

maxsize = 100MB, --最大大小

filegrowth = 15% --数据文件增长量

)

log on

(

--日志文件--

name = 'School_log',

filename = 'D:\project\School_log.ldf',

size = 2MB,

filegrowth = 1MB

)

go

----------------------------------------使用T-SQL创建employee数据库------------------------------------

create database employee

on primary

(

--主要数据文件--

name = 'employee1',

filename = 'D:\project\employee1.mdf',

size = 10MB,

filegrowth = 10%

),

(

--次要数据文件--

name = 'employee2',

filename = 'D:\project\employee2.ndf',

size = 20MB,

maxsize = 100MB,

filegrowth = 1MB

)

log on

(

--第一个日志文件--

name = 'employee_log1',

filename = 'D:\project\employee_log1.ldf',

size = 10MB,

filegrowth = 1MB

),

(

--第二个日志文件--

name = 'employee_log2',

filename = 'D:\project\employee_log2.ldf',

size = 10MB,

maxsize = 50MB,

filegrowth = 1MB

)

---------------------------------查询已存在的数据库信息---------------------------

select * from sysdatabases

---------------------------------删除数据库------------------------------------

代码如下:

drop database School

---------------------------------创建Student数据库表----------------------------

代码如下:

--1、选择操作的数据库--

use School

go

--判断表是否存在--

代码如下:

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

drop table Student

--2、创建表---

create table Student

(

--具体的列名 数据类型 列的特征(是否为空)--

StudentNo int identity(2,1) not null,

LoginPwd nvarchar(20) not null,

StudentName nvarchar(20) not null,

Sex int not null,

GradeId int not null,

phone nvarchar(50) not null,

BornDate datetime not null,

Address nvarchar(255),

Email nvarchar(50),

IDENTITYcard varchar(18)

)

go

---查看所有数据库对象(数据库表)---

代码如下:

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

以上就是本文全部内容,希望大家喜欢。

您可能感兴趣的文章:mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法

Mysql 建库建表技巧分享

SQL Server--怎样用ADO在SQL SERVER中建库,建表

详解在MySQL中创建表的教程

mysql建表常用sql语句个人经验分享

Oracle新建用户、角色,授权,建表空间的sql语句

SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

必须会的SQL语句(二) 创建表、修改表结构、删除表

一条SQL语句修改多表多字段的信息的具体实现

用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

用sql命令修改数据表中的一个字段为非空(not null)的语句

SqlServer编写数据库表的操作方式(建库、建表、修改语句)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值