数据库基础编制程序

运用SSMS数据库管理工科具修改DEFAULT约束

1、连接数据库、选拔数据表-》右键点击-》采用设计。

997755.com澳门葡京 1

2、在表设计器窗口-》选中要修改的多少列-》在列属性中找到暗中认可值绑定-》举办改变。

997755.com澳门葡京 2

3、点击保存(恐怕ctrl+s)-》关闭表设计器-》刷新表-》重新展开表设计器查看。

997755.com澳门葡京 3

P索罗德IMAPAJEROY KEY约束增添法则

1、在表中常有一列或多列的结缘,其值能独一标志表中的每一行,那样的一列或多列成为表的主键(PrimaryKey)。

2、三个表只好有三个主键,何况主键约束中的列无法为空值。

3、只有主键列技能被看做另外表的外键所创办。

4、一般处境下三个表中只可以有一个主键。

 

—————————————-SQL
Server建库-建表-建约束创立School数据库————————————–

运用T-SQL脚本修改DEFAULT约束

DEFAULT约束修改准绳必须首先删除现成的DEFAULT约束,然后选拔新定义再一次创立,才具采用Transact-SQL修改DEFAULT约束。

语法:

–使用数据库
use 数据库名;
go
–决断要创制的约束是不是已存在
if exists(select * from sysobjects where
name=约束名)
alter table 表名 drop constraint
约束名;
go
–加多暗中认可值约束
alter table 表名 add constraint 约束名
default 约束值 for 列名;
go

997755.com澳门葡京 ,示例:

–使用数据库
use testss;
go
–推断要创制的封锁是不是已存在
if exists(select * from sysobjects where
name=’default1′)
alter table test1 drop constraint
default1;
go
–增添私下认可值约束
alter table test1 add constraint default2
default 18 for age;
go

 997755.com澳门葡京 4

997755.com澳门葡京 5

应用SSMS数据库管理工科具增加主键约束

–创设School数据库此前:首先判别数据库是还是不是存在,若存在则删除后再次创下制,若空中楼阁则开创–
–exists关键字:括号里边能查询到数量则赶回‘true’
不然赶回‘false’
if exists(select * from sysdatabases where name = ‘School’)
–exists再次来到‘true’则实践删除数据库操作–
drop database School

总结

1、每一个字段只好有三个暗中同意约束。
2、要是私下认可约束设置的值大于字段所允许的长度,则截取到字段允许长度。
3、无法到场到含有IDENTITY属性只怕TIMESTAMP的字段上。
4、假若字段的数据类型为用户自定义类型,何况已有暗中同意值绑定在此数据类型上,则不容许再一次利用暗许值。

 

采用SSMS数据库管理工科具加多一列作为三个主键约束

1、连接数据库,选拔数据表-》右键点击,接纳设计。

997755.com澳门葡京 6

2、在新窗口中,选拔一行,右键点击-》选择设置主键-》点击保存按键(或然ctrl+s)。

997755.com澳门葡京 7

3、刷新表查看示例结果。

997755.com澳门葡京 8

 

 

–exists重回‘false’则声明数据库不真实,直接创设

动用SSMS数据库处理工科具添扩张列作为贰个主键约束

1、连接数据库,选用数据表-》右键点击-》选用设计。

997755.com澳门葡京 9

2、在新窗口中-》按下ctrl键,选拔多行-》右键点击-》选用设置主键-》点击保存(或许ctrl+s)。

997755.com澳门葡京 10

3、刷新表查看示例结果。

997755.com澳门葡京 11

Ø Go批管理语句

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脚本增添主键约束

用于同偶然候施行多个语句

—————————————-使用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
)

选择T-SQL脚本增加一列作为多少个主键约束

当表中约束存在时,不得以直接助长主键约束,因为一张表只允许存在四个主键约束,即使急需加上主键约束须要先删除已存在的主键约束再增多主键约束。当表中不设有主键约束时,可一向抬高主键约束。

语法:

if exists(select * from sysobjects where
name=约束名)
alter table 数据库名.[dbo].表名 drop
constraint 约束名;
alter table 数据库名.[dbo].表名 add
constraint 约束名 primary key(列名 [asc|desc]);

示例:

–借使封锁存在则删除约束,假如封锁不设有则不删除
if exists(select * from sysobjects where
name=’idcon2′)
alter table [testss].[dbo].[test1]
drop constraint idcon2;
–增添封锁
alter table [testss].[dbo].[test1]
add constraint idcon2 primary key(id asc);

997755.com澳门葡京 12

997755.com澳门葡京 13

 

———————————查询已存在的数据库消息—————————
select * from sysdatabases

应用T-SQL脚本添扩展列作为叁个主键约束

当表中约束存在时,不可以平素抬高主键约束,因为一张表只允许存在二个主键约束,假如急需增加主键约束要求先删除已存在的主键约束再增添主键约束。当表中不设有主键约束时,可直接助长主键约束。

语法:

–添增多列主键约束

if exists(select * from sysobjects where
name=约束名)
alter table 数据库名.[dbo].表名 drop
constraint 约束名;
alter table 数据库名.[dbo].表名 add
constraint 约束名 primary
key(列名 [asc|desc],列名 [asc|desc],……);

示例:

–添增加列主键约束
if exists(select * from sysobjects where
name=’idcon2′)
alter table [testss].[dbo].[test1]
drop constraint idcon2;
–增多封锁
alter table [testss].[dbo].[test1]
add constraint idcon2 primary key(id asc,name desc);

997755.com澳门葡京 14

Ø 使用、切换数据库

———————————删除数据库————————————
drop database School

P途锐IMALANDY KEY约束优弱点

优点:

1、简单、效率高。 

2、保障数据完整性。

3、不会有空值。

4、不容许存在双重值。

缺点:

1、主键自增一般采纳int型,有多少条数的范围。

2、在数据库进行数量统有的时候会比较费力。 

 

use master
go

———————————创制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

方法1

—查看全数数据库对象(数据库表)—
select * from sysobjects

–推断是还是不是留存该数据库,存在就删除
if (exists (select * from sys.databases where name =
‘database_name’))
drop database database_name
go
–创设数据库,设置数据库文件、日志文件保留目录
create database database_name
on(
name = ‘database_name’,
filename = ‘c:\data\database_name.mdf’
)
log on(
name = ‘database_name_log’,
filename = ‘c:\data\database_name_log.ldf’
)
go

drop table Student

 

———————-创建subject课程表——————-
—–1、剖断表是或不是留存;若存在则删除再创造,若不设有则平素开立——–
if exists(select * from sysobjects where name = ‘subject’)
drop table subject

措施2(设置文件大小)、

use School
go

–判断是或不是留存该数据库,存在就删除
if (exists (select * from sys.databases where name =
‘database_name’))
drop database database_name
go
create database database_name
–暗中认可就属于primary主文件组,可粗略
on primary (
–数据文件的实际陈述
name = ‘database_name_data’,        –主数据文件的逻辑名
fileName = ‘c:\database_name_data.mdf’,     –主数据文件的物理名
size = 3MB,                  –主数据文件的开头大小
maxSize = 50MB,               –主数据文件增进的最大值
fileGrowth = 百分之十                –主数据文件的增长率
)
–日志文件的现实呈报,各参数含义同上
log on (
name = ‘database_name_log’,
fileName = ‘c:\database_name_log.ldf’,
size = 1MB,
fileGrowth = 1MB
)
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

方式3(设置次数据文件)

use School
go

if (exists (select * from sys.databases where name =
‘database_name’))
drop database database_name
go
create database database_name
–暗中同意就属于primary主文件组,可粗略
on primary (
–数据文件的具体叙述
name = ‘database_name_data’, –主数据文件的逻辑名
fileName = ‘c:\database_name_data.mdf’, –主数据文件的物理名
size = 3MB, –主数据文件的伊始大小
maxSize = 50MB, –主数据文件增进的最大值
fileGrowth = 一成 –主数据文件的增进率
),
–次数据文件的实际描述
(
–数据文件的具体呈报
name = ‘database_name2_data’, –主数据文件的逻辑名
fileName = ‘c:\database_name2_data.mdf’, –主数据文件的物理名
size = 2MB, –主数据文件的最先大小
maxSize = 50MB, –主数据文件拉长的最大值
fileGrowth = 10% –主数据文件的拉长率
)
–日志文件的实际陈诉,各参数含义同上
log on (
name = ‘database_name_log’,
fileName = ‘c:\database_name_log.ldf’,
size = 1MB,
fileGrowth = 1MB
),
(
name = ‘database_name2_log’,
fileName = ‘c:\database_name2_log.ldf’,
size = 1MB,
fileGrowth = 1MB
)
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)

Ø 决断表或别的对象及列是或不是存在

–给身份ID增加独一约束–
alter table Student
add constraint uq_StuIdcard unique(IDENTITYcard)

–判定某些表或对象是或不是存在
if (exists (select * from sys.objects where name = ‘classes’))
print ‘Exist’;
go
if (exists (select * from sys.objects where object_id =
object_id(‘student’)))
print ‘Exist’;
go
if (object_id(‘student’, ‘U’) is not null)
print ‘Exist’;
go

—给地点address增多默许约束–
alter table Student
add constraint df_stuaddress default(‘地址不详’) for Address

–决断该列名是还是不是存在,借使存在就删除
if (exists (select * from sys.columns where object_id =
object_id(‘student’) and name = ‘idCard’))
alter table student drop column idCard
go
if (exists (select * from information_schema.columns where table_name
= ‘student’ and column_name = ‘tel’))
alter table student drop column tel
go

—删除地址address私下认可约束—
alter table Student
drop constraint df_stuaddress

 

———-出出生之日期增加检查约束——–
alter table Student
add constraint ck_stuBorndate check(Borndate > ‘1980-01-01’)

Ø 创建、删除表

———与Grand(年级表)建构主外键关系——–

–剖断是否存在当前table
if (exists (select * from sys.objects where name = ‘classes’))
drop table classes
go
create table classes(
id int primary key identity(1, 2),
name varchar(22) not null,
createDate datetime default getDate()
)
go
if (exists (select * from sys.objects where object_id =
object_id(‘student’)))
drop table student
go

–1、添加Grade主键(操作Grade)—
alter table Grade
add constraint pk_graid primary key(GradeId)

–创建table
create table student(
id int identity(1, 1) not null,
name varchar(20),
age int,
sex bit,
cid int
)
go

–2、添加Grade外键(操作Student)–
alter table Student
add constraint fk_stuGradeID foreign key(GradeId) references
Grade(GradeId)

 

 

Ø 给表增多字段、修改字段、删除字段

——————-给subject课程表增加约束———————–

–加多字段
alter table student add address varchar(50) not null;
–修改字段
alter table student alter column address varchar(20);
–删除字段
alter table student drop column number;

—-给subjectNo列增加主键约束——
alter table subject
add constraint pk_SubID primary key(SubjectNo)

–增加八个字段
alter table student
add address varchar(22),
tel varchar(11),
idCard varchar(3);

——给课程名称subjectName增多非空约束;—–
—–with
nocheck:已经存在数据不经过check约束——-
alter table subject with nocheck
add constraint ck_subName check(SubjectName is not null)

–判别该列名是或不是留存,假如存在就删除
if (exists (select * from sys.columns where object_id =
object_id(‘student’) and name = ‘idCard’))
alter table student drop column idCard
go
if (exists (select * from information_schema.columns where table_name
= ‘student’ and column_name = ‘tel’))
alter table student drop column tel
go

—–学时务必超出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 student
add number varchar(20) null constraint no_uk unique;
–增添主键
alter table student
add constraint pk_id primary key(id);
–增添外键约束
alter table student
add constraint fk_cid foreign key (cid) references classes(id)
go
–加多独一约束
alter table student
add constraint name_uk unique(name);
–添加check约束
alter table student with nocheck
add constraint check_age check (age > 1);
alter table student
add constraint ck_age check (age >= 15 and age <= 50)
–加多暗许约束
alter table student
add constraint sex_def default 1 for sex;
–增多贰个涵盖默许值可感到空的列
alter table student
add createDate smalldatetime null
constraint createDate_def default getDate() with values;

——-加多多个约束———
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 student add
/*添加id主键、自增*/
id int identity constraint id primary key,
/* 加多外键约束*/
number int null
constraint uNumber references classes(number),
/*默许约束*/
createDate decimal(3, 3)
constraint createDate default 2010-6-1
go

–删除三个约束–
alter table Result
drop constraint
pk_No_subID_date,fk_subNo,fk_StuNo,ck_StudentResult,df_examdate

–删除约束
alter table student drop constraint no_uk;

——–更动列的数据类型———-
alter table Result
alter column StudentResult int

 

Ø 插入数据

insert into classes(name) values(‘1班’);
insert into classes values(‘2班’, ‘2011-06-15’);

insert into student
select ‘bulise’ name, age, sex, cid
from student
where name = ‘tony’;

–多条记下相同的时候插入
insert into student
select ‘jack’, 23, 1, 5 union
select ‘tom’, 24, 0, 3 union
select ‘wendy’, 25, 1, 3 union
select ‘tony’, 26, 0, 5;

 

Ø 查询、修改、删除数据

–查询数据
select * from student;
select id, ‘bulise’ name, age, sex, cid from student
where name = ‘tony’;
select *, (select max(age) from student) from student
where name = ‘tony’;

–修改数据
update student set name = ‘hoho’, sex = 1 where id = 1;

–删除数据(from可总结)
delete from student where id = 1;

 

Ø 备份数据、表

–备份、复制student表到stu
select * into stu from student;
select * into stu1 from (select * from stu) t;

 

Ø 利用存款和储蓄进度查询表消息

–查询student相关音信
exec sp_help student;
exec sp_help classes;

 

 

 

转载自 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website