一、对数据库的基本操作

1.简单创建数据库的操作

语法格式:create database 数据库名;



2.创建并指定数据库相关信息,相关信息有:name逻辑名称、size初始大小、filename存放位置、filegrowth增量、maxsize最大值(数据文件/日志文件)


语法格式如下:

create database 数据库名

on 

 ( 

name = '', 

filename = '', 

size = , 

filegrowth = , 

maxsize = 

 ) 

 log on 

 ( 

name = '', 

filename = '', 

size = , 

filegrowth = , 

maxsize = 

 )



3.删除数据库,语法格式如下:


dorp database 数据库名




4.如何添加次要数据文件到数据库中?

语法格式如下

alter database 数据库名



add file 

 ( 

name = '', 

filename = '*.ndf', 

size = , 

filegrowth = , 

maxsize = 

 ) 

 add log file 

 ( 

name = '', 

filename = '*.ndf', 

size = , 

filegrowth = , 

maxsize = 

 )

5.如何添加文件组?


alter database 数据库名


add filegroup 文件组名



6.将制定文件组fg设置为默认文件组?


alter database 数据库名


modify filegroup fg default



7.如何分离数据库,附加数据库?


分离数据库: exec sp_detach_db 数据库名



附加数据库:



create database 数据库名 

 on 

 ( 

filename = '附加数据库的路径', 

 ) for attach

8.为student数据库添加fg数据组,并添加一个副数据库文件添加到fg数据组文件中?



alter database student 

 add filegroup fg 

 GO 

 alter database student 

 add file 

 ( 

name = '', 

filename = '*.ndf', 

size = , 

filegrowth = , 

 )to filegroup fg 

 alter database student 

 add log file 

 ( 

name = '', 

filename = '*.ldf', 

size = , 

filegrowth = , 

 )to filegroup fg

9.如何判断一个数据库是否存在,判断某数据库中的表是否存在?


判断数据库是否存在



use master 

 GO 

 if exists(select * from sysdatabases where name = '数据库名') 

 begin 

drop database 数据库名 

 end 

 GO 

 判断student数据库中的stuInfo表是否存在 

 use student 

 GO 

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

 begin 

drop table stuInfo 

 end

10.查看某数据库信息


exec sp_helpdb 数据库名




11.分离的目的?


答:方便数据库文件的备份与添加




12.添加SQL登录账号名为lizhenhua 密码为123


exec sp_addlogin 'lizhenhua','123'


exec sp_addlogin 'lizhenhua1','123'



13.在test数据库中添加两个数据库用户


use test 

 GO 

 exec sp_grantdbaccess 'lizhenhua','lizhenhuaDBUser' 

 exec sp_grantdbaccess 'lizhenhua1','lizhenhuaDBUser1'



14.授权操作


grant select,insert,update on employee to lizhenhuaDBUser


grant create table to lizhenhuaDBUser1



15.删除权限的语法


revoke select,insert,update on employee from lizhenhuaDBUser


revoke create table from lizhenhuaDBUser1



 二、 对数据库中的表的基本操作

1.数据库中有哪些基本数据类型?


不可变文本数据char、varchar、text 

二进制binary 

可变文本数据nchar nvarchar ntext

时间日期 datatime smalldatatime 

整型数据 bigint int smallint tinyint 

小数数据 decimal numeric

 近似值数据 float real 

货币类型 money

其他数据类型 timestamp bit uniqueidentifier sql-variant table



2.如何创建、修改、删除一个表?

2.1创建一个表,格式如下:


create table 表名(column1 类型,column2 类型,...)


2.2修改某个表,语法格式如下:


alter table 表名

2.2.1在一个已经定义好的表中,添加一个新列
alter table 表名
add 列名 类型

2.2.2如何使用几种常见的方式,在一个表中插入新的元素?
默认方式 insert into 表名 values()
按指定列插入新的元素 insert into 表名(x,y,z) values(v1,v2,v3)

注意:当一个表中有自动增长类型的数据时,需要set identity up
2.2.3如何删除表中的某列?
alter table 表名
drop column 列名

2.2.4修改某列的数据类型
alter table 表名
alter column 列名 数据类型


2.3删除某个表,语法如下:


drop table 表名



3.有哪些约束类型?如何为表添加各种约束?


约束类型有默认值约束,check约束,主键,外键,自定义增长,非空约束,唯一值约束


3.1default约束


第一种在创建表过程中使用默认值约束


create table stuInfo 

( 

name varchar(12), 

sex char(2) default '男', 

... 

)

第二种在创建完表后,添加默认值约束


create table stuInfo 

( 

name varchar(12), 

sex char(2) , 

... 

) 

alter table stuInfo 

add constraint DF_sex default '男' for sex


3.2check 约束


第一种在创建表过程中使用check约束


create table stuInfo 

( 

name varchar(12), 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

)



第二种在创建完表后,添加check约束


alter table stuInfo


add

constraint CK_age check(age between 1 and 160)


3.3主键约束


第一种在创建表过程中使用主键约束


方式一


create table stuInfo 

( 

name varchar(12) primary key not null, 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

)

方式二


create table stuInfo 

( 

name varchar(12)  not null, 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

primary key (name) 

)

第二种在创建完成表后,再定义主键约束

create table stuInfo 

( 

name varchar(12)  , 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

 

)

解题步骤:先为name列添加非空约束,然后再添加主键约束

添加非空约束


alter table stuInfo


alter column name varchar(12) not null


添加主键约束


alter table stuInfo


add constraint PK_name primary key name



3.4外键约束


第一种在创建表过程中使用外键约束


create table stuInfo 

( 

name varchar(12)  not null, 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

primary key (name) 

) 

create table great 

( 

stu_name varchar(12) foreign key  references stuInfo(name) , 

test int  

 

)

第二种在创建完成表后,再定义外键约束


create table stuInfo 

( 

name varchar(12)  not null, 

sex char(2) , 

age check(age between 1 and 160), --or check(age >=1 and age <= 160) 

... 

primary key (name) 

) 

create table great 

( 

stu_name varchar(12) not null, 

test int  
  

)



解题思路:先定义引用表中的列,定义主键,然后再定义外键。本题因为已经定义好了主键只需再great表中添加外键约束。


alter table great


add constraint FK_stu_name foreign key (stu_name) references stuInfo(name)



3.5自定义增加约束


使用关键字identity


create table stuInfo 

( 

id int identity(1001,1) not null, 

name varchar(12), 

... 

)


3.6唯一值约束


使用关键字unique


第一种方式在创建表的时候使用unique约束


方法一:


create table stuInfo 

( 

id int identity(1001,1) not null, 

name varchar(12) unique, 

... 

)

方法二


create table stuInfo 

( 

id int identity(1001,1) not null, 

name varchar(12), 

... 

unique(name) 

)

第二种方式在创建完成表后在添加unique约束


create table stuInfo 

( 

id int identity(1001,1) not null, 

name varchar(12), 

... 

) 

alter table stuInfo 

add constraint UQ_name unique (name)


3.7删除某表中的约束


alter table 表名


drop constraint 约束名