当前位置 : 主页 > 编程语言 > 其它开发 >

SQL SERVER 学习过程(二)

来源:互联网 收集:自由互联 发布时间:2022-05-30
休息了好长一段时间,这几天照着书本自己慢慢敲的命令,看的再多不如手动去做。 use HrSystemgocreate table Employees( Em_id int primary key identity(1,1),--设置这个列为主键,并且为唯一标识列-

休息了好长一段时间,这几天照着书本自己慢慢敲的命令,看的再多不如手动去做。

use HrSystem
go
create table Employees
(
 Em_id int primary key identity(1,1),--设置这个列为主键,并且为唯一标识列--
 Emp_name varchar(50) not null,   --不为空--
 Sex char(2) DEFAULT('男'),  -- 设置这个列默认为男 --
 Title varchar(20) not null, 
 Wage float default(0),
 IdCard varchar(20),
 Dep_id int not null
 )


 --查看数据库的储存空间--
 sp_spaceused N'Employees'

 --使用dbcc checkident命令检查和设置表的标识值--
use HrSystem
go
create table tmpTable
( id int primary key identity,
  name varchar(50)
  )
 insert into tmpTable values('a')
 insert into tmpTable values('b')
 insert into tmpTable values('c')
 insert into tmpTable values('d')
 go
 dbcc checkident(tmpTable,noreseed)
 go
 --使用delete语句删除tmpTable表中的两条数据--
 delete from tmpTable where id>2

 --使用下面的语句重置标识符为2--
 dbcc checkident(tmpTable,reseed,2)

 --验证标识符的值--
 insert into tmpTable values('c')

--重命名表名--
--语法:sp_rename 原对象名,新对象名,对象类型--
--存储过程使用sp_rename将Employees重命名为EmpInfo--
use HrSystem
go
 sp_rename Employees,EmpInfo


 --修改表的列名,将表名--
 /*使用存储过程sp_rename时,使用column对列名进行重命名
   将表名Employees列Wage重命名为Salary*/
 sp_rename 'Employees.Wage','Salary','column'

 --向表中添加列--
 --使用alter table 语句向表中添加列--
 --alter table 表名 add 列名 数据类型和长度 列属性

 在Employees中增加列,列名为Tele,数据类型为varchar,长度为50,列属性允许为空
 use HrSystem
 go
 alter table Employees add Tele varchar(50) null

 --修改列属性--
--alter table 表名 alter column 列名 新数据类型和长度 新列属性
--在表Employees中修改列Tele的数据值为char,长度为30,并允许为空
alter table Employees alter column Tele char(30) null

--删除表中列--
alter table 表名 drop column 列名

--在表中Employees中删除列Tele 
alter table Employees drop column Tele

--删除表--
drop table 表名
--删除表Departments
drop table Departments

--创建主键约束--
/*主键是表中的一列或者一组列,他们的值唯一的标识标中的每一行,在创建和修改表时,可以定义主键约束,
主键的列的值不允许为空*/
constraint 主键名 primary key [clustered|nonclustered]
   (列名1,[列名2])

--在HrSystem中建立表Super,并使用constraint子句定义主键PK_test
use HrSystem
go
create table Super
( Super_id int,
  Super_name varchar(50),
  constraint pk_Super primary key(Super_id)
)

--修改主键约束--
add constraint 主键名 primary key [clustered|nonclustered]
   (列名1,[列名2,])
--创建student,然后将Stuid列设置为主键
create table Student
   (Stuid int identity(1,1),
    StuName varchar(50) not null,
	Sex bit default(0),
	Class varchar(50) not null,
	Score float default(0),
   )
go
alter table Student
add constraint pk_Stu primary key nonclustered (Stuid) 
go

--删除主键约束--
alter table 表名 drop constraint <primary key 约束名>
删除表Student主键约束PK_Stu
alter table Student drop constraint PK_Stu

--创建、修改、删除唯一约束性
--唯一性约束可以保证除主键外的其他一个或者多个列的数据唯一性,以防止在列中输入重复的值
--在Departents中的Dep_name列定义唯一性约束,在表中插入两条相同的数据,查看提示不允许插入重复值

 /*该示例在表 PasswordHash 中的 PasswordSalt 和 Person.Password列上创建唯一约束。*/
USE AdventureWorks2012;   
GO  
ALTER TABLE Person.Password   
ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);   
GO  

/*上条命令来自SQL SERVER示例*/
use HrSystem
go
alter table Departments 
add constraint Dep_name unique (Departments)
--创建表Facker,将Facker_name设置为唯一性约束代码
use HrSystem
go
create table Facker
    (Facker_id int,
	 Facker_name varchar(50),
	 constraint PK_Facker primary key(Facker_id),
	 constraint IX_Facker unique(Facker_name)
    )
--删除表Facker唯一约束IK_Facker
alter table Facker drop constraint IK_Facker

--从sys.key_constraints获取约束信息--
--系统视图 sys.key_constraints用来保存主键约束和唯一约束信息--
use HrSystem
go
select * from sys.key_constraints
go
--单独查询某一个约束信息
select * from sys.key_constraints where name='pk_Super'

--违反约束检查--
/*constraint 约束名
   check [not for replication]
   (逻辑表达式)
   */

/*创建Sutentone表,设置索引键和check约束*/
use HrSystem
GO
create table Sutentone
(Stuid int identity(1,1),
 StuName varchar(50) not null,
 Sex bit default(0),
 Class varchar(50) not null,
 Score float default(0),
 constraint PK_Stdent primary key(Stuid),
 constraint ix_Stdent unique(StuName),
 constraint ck_Stdent check(Score>=0),
)
go
/*创建Client表,同时创建检查约束,定义邮政编码Postcode是由6位数字组成的字符串*/
use HrSystem
go 
create table Client
(id int identity(1,1),
CitOrg varchar(50) not null,
address varchar(100) not null,
Postcode varchar(10) not null,
constraint pk_Client primary key(id),
constraint ix_Client unique(CitOrg),
constraint ck_Client check(Postcode like'[0-9][0-9][0-9][0-9][0-9][0-9]'),
--like是SQL SERVER关键字,用于对指定的字符串进行模式匹配,[0-9]指定单字符在0至9的范围。--
)
--修改约束检查--
use HrSystem
go
alter table Employees
add constraint ck_sex check (Sex='男' or Sex='女')

--删除检查约束--
--删除表Employees中ck_Sex的约束--
use HrSystem
go
alter table Employees
drop constraint ck_Sex
go
--从information_schema.check_constraints获取检查约束信息--
--从系统视图中information_schema.check_constraints可以查看当前数据库中当前用户 有权限查看的所有检查约束信息--

select * from information_schema.check_constraints

--创建和使用默认约束--
constraint 约束名
   default 约束表达式 [for 列名]
--在表Employees中的列Title的默认约束为‘职员’--
use HrSystem
go
alter table Employees
add constraint de_Title default '职员' for Title
go

 

上一篇:java-jdbc教程
下一篇:没有了
网友评论