sql2005数据库中的基本操作

时间:2022-08-01 20:39:27

一、对数据库的基本操作

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 约束名