2072 module 2《管理数据库文件》
======================================================================================
select * from sysdatabases --查看SQL SERVER中所有database信息
------------------------------------------------------------------------
create database db1
------------------------------------
create database d2
on primary --将数据文件放在primary文件组中
(name=d2_data1, --指定文件名称
filename='e:\data\d2\d2_data1.mdf', --指定文件位置
size=2mb, --文件初始大小
maxsize=10mb, --文件最大大小
filegrowth=1mb) --文件达到初始大小后的文件增长率
log on --建立事务日志文件
(name=d2_log1,
filename='e:\data\d2\d2_log1.ldf',
size=2mb,
maxsize=10mb,
filegrowth=10%)
-----------------------------------------
create database d3
on primary
(name=d3_data1,
filename='e:\data\d3\d3_data1.mdf',
size=2mb,
maxsize=10mb,
filegrowth=1mb),
(name=d3_data2,
filename='e:\data\d3\d3_data2.ndf',
size=2mb,
maxsize=10mb,
filegrowth=1mb)
log on
(name=d3_log1,
filename='e:\data\d3\d3_log1.ldf',
size=2mb,
maxsize=10mb,
filegrowth=10%),
(name=d3_log2,
filename='e:\data\d3\d3_log2.ldf',
size=2mb,
maxsize=10mb,
filegrowth=1mb)
------------------------------------------------
execute sp_helpdb --单条存储过程查询语句可以写为三种形式,可以省略execute
exec sp_helpdb --查看所有数据库的信息
sp_helpdb
------------------------------------------------
execute sp_helpdb d1 --当同时执行多条存储过程查询语句时,每条语句前应加上execute或者exec
execute sp_helpdb d2
exec sp_helpdb d1 --查看指定数据库D1的信息
exec sp_helpdb d2
--------------------------------------------------
sp_spaceused --查看当前数据库的空间利用情况
use d1 --切换到D1数据库,并看D1的空间利用情况
go
sp_spaceused
--------------------------------------------------
exec sp_dboption --显示数据库的所有选项
exec sp_dboption d1 --显示数据库的所有已选中选项
--------------------------------------------------
exec sp_dboption d1,'read only','true' --通过SQL语句将D1数据库设为只读
exec sp_dboption d1
exec sp_dboption d1,'read only','false' --取消只读
--------------------------------------------------
dbcc sqlperf(logspace) --显示所有数据库的日志空间利用情况
--------------------------------------------------
alter database d2 --手工扩充数据库文件的大小,可以是数据文件,也可以是日志文件
modify file(name=d2_log1,size=15mb)
sp_helpdb d2
--------------------------------------------------
alter database d2 --为数据库增加数据文件
add file
(name=d2_data2,
filename='e:\data\d2\d2_data2.ndf',
size=10mb,
maxsize=15mb,
filegrowth=1mb)
--------------------------------------------------
alter database d2 --为数据库增加日志文件
add log file
(name=d2_log2,
filename='e:\data\d2\d2_log2.ldf',
size=10mb,
maxsize=15mb,
filegrowth=1mb)
----------------------------------------------------
sp_dboption d2,'autoshrink','true' --设置数据库的自动收缩,当数据库的空间利用未达到25%时,将自动收缩
alter database d2 set auto_shrink on
sp_dboption d2,'autoshrink','false' --关闭数据库的自动收缩
alter database d2 set auto_shrink off
-----------------------------------------------------
dbcc shrinkdatabase('d1',70) --将数据库收缩到原来的70%
dbcc shrinkfile(d1_data2,5) --将指定的数据库文件d1_data2减少到5mb
-----------------------------------------------------
alter database d1 remove file d1_data2 --删除文件
alter database d1 remove file d1_log2
-----------------------------------------------------
drop database db1 --删除数据库
-----------------------------------------------------
create database d4
on primary
(name=d4_data1,
filename='e:\data\d4\d4_data1.mdf',
size=2mb,
maxsize=10mb,
filegrowth=1mb),
filegroup F2 --在创建数据库的时候同时增加新文件组F2
(name=d4_data2,
filename='e:\data\d4\d4_data2.ndf',
size=2mb,
maxsize=10mb,
filegrowth=1mb)
log on
(name=d4_log1,
filename='e:\data\d4\d4_log1.ldf',
size=2mb,
maxsize=10mb,
filegrowth=10%)
--------------------------------------------------------
alter database d1 --在已建好的数据库中增加文件组
add filegroup FG2
--------------------------------------------------------
alter database d1 --将新的数据文件放到指定文件组中
add file
(name=d1_data3,
filename='e:\data\d1\d1_data3.ndf',
size=2mb,
maxsize=4mb,
filegrowth=10%)
to filegroup FG2
---------------------------------------------------------
exec sp_helpfile d1_data3 --查看文件信息
exec sp_helpfilegroup FG2 --查看文件组信息
exec sp_helpfilegroup 'primary' --Primary为保留字,必须括起来
exec sp_helpfilegroup [primary]
--------------------------------------------------------
alter database d2 --改变默认文件组,新的表如果不指明属于哪个文件组,则自动放到默认文件组中
modify filegroup FG2 default --新的数据文件如果不指明属于哪个文件组,则自动放到Primary文件组中
--------------------------------------------------------
alter database d2 --指明primary为默认文件组时,primary必须括起来
modify filegroup [primary] default
===========================================================================================================
表TABLE
===========================================================================================================
create table 员工表 --创建表
(序号 int not null,
姓名 char(10) not null,
年龄 smallint null,
出生日期 datetime null)
go
select * from 员工表 --查询表中所有内容
go
insert 员工表 values(1,'张三',24,'1980-12-01') --往表中插入值
insert 员工表 values(2,'李四',23,'1981-12-01')
insert 员工表 values(3,'刘五',22,'1982-12-01')
go
select * from 员工表
go
delete 员工表 --删除表中所有内空
-----------------------------------
--创建一个永久表T3,会保存到数据库中
create table t3(c1 int not null,c2 char(10) not null)
--创建一个局部临时表#T3,只供临时使用,不保存到数据库中,只用于一个窗口
create table #t3(c1 int not null,c2 char(10) not null)
--创建一个全局临时表##T3,只供临时使用,不保存到数据库中,可用于当前所有窗口
create table ##t3(c1 int not null,c2 char(10) not null)
---------------------------------------------------------------------------------------
create table 设备统计表
(序号 int identity(1,1) not null, --identity,自动编号,本例表示值从1开始,以1递增
设备名称 char(20) not null,
数量 int null,
价格 money null)
go
insert 设备统计表 values('计算机',200,4500) --identity列的值无需输入,自动生成
insert 设备统计表 values('集线器',10,500)
insert 设备统计表 values('交换机',20,8000)
insert 设备统计表 values('路由器',10,12000)
go
select * from 设备统计表
----------------------------------------------------------------------------------------
create table t4
(c1 int not null,
c2 char(10) null,
c3 char(10) null)
on FG1 --将新建的表T4加入指定的文件组FG1中
----------------------------------------------------------------------------------------
select * from sysobjects where xtype='u' --显示当前数据库中的所有用户定义表
sp_help 员工表 --显示员工表的设计信息
drop table t1 --删除表t1
========================================================================================
2071 module 3 《数据查询》
========================================================================================
create table sales --样例表sales
(sale_id int identity(1,1) not null,
product nvarchar(10) not null,
color nvarchar(10) not null,
size nvarchar(10) not null,
quantity int not null)
go
insert sales values('L01','R','3',200)
insert sales values('L01','B','1',300)
insert sales values('L01','B','2',100)
insert sales values('L02','B','1',450)
insert sales values('L02','B','2',330)
insert sales values('L02','B','3',220)
insert sales values('L01','R','2',500)
insert sales values('L01','B','1',300)
insert sales values('L01','R','3',150)
insert sales values('L01','B','1',450)
insert sales values('L01','B','2',350)
insert sales values('L01','B','3',250)
insert sales values('L02','R','1',500)
insert sales values('L02','R','2',300)
insert sales values('L02','R','3',100)
insert sales values('L01','B','1',1450)
insert sales values('L01','B','2',550)
insert sales values('L01','B','3',750)
insert sales values('L02','B','1',400)
insert sales values('L02','B','2',350)
insert sales values('L02','B','3',120)
insert sales values('L03','B','1',1450)
insert sales values('L03','B','2',550)
insert sales values('L03','B','3',750)
insert sales values('M01','B','1',400)
insert sales values('M02','B','2',350)
insert sales values('N01','B','3',120)
insert sales values('LM01','B','1',1450)
insert sales values('L01M','B','2',550)
insert sales values('M01L','B','3',750)
insert sales values('O01','B','1',400)
insert sales values('P02','B','2',350)
insert sales values('X03','B','3',120)
------------------------------------------------------------------------------
sp_help sales
----------------------------
select * from sales where product='l02' --使用where子句查询表中内容
select * from sales where quantity=300
select * from sales where color='R'
------------------------------------------------------------------------------
select product from sales --查询指定列的内容
select product,color from sales
select product,color,size from sales
------------------------------------------------------------------------------
select * from sales where size=3 --比较操作符
select * from sales where quantity>500
select * from sales where product<'L04'
select * from sales where quantity>=500
select * from sales where size<>3
--------------------------------------------------------------------------------
select * from sales where product like 'm%' --所有以M开头的
select * from sales where product like '%2%' --所有包含2的
select * from sales where product like '__2%' --第三个数字是2的
select * from sales where product like '[m,p]%' --所有以M或P开头的
select * from sales where product like '[^m,p]%' --所有不以M或P开头的
select * from sales where product like '[a-l]%' --从A到L中任意字母开头的
---------------------------------------------------------------------------------
select * from sales where product='L01' and color='B' --逻辑操作符
select * from sales where product='L01' and color='B' and size=2
select * from sales where product='L01' or color='B'
select * from sales where not(product='L01' and color='B')
select * from sales where product in ('L01','M01','L03')
select * from sales where quantity between 500 and 1000 --从500到1000,包含了500和1000
--------------------------------------------------------------------------------------------
create table t1 --空值的插入和空值的查询
(c1 int not null,
c2 char(10) null,
c3 char(10) null)
go
insert t1 values(1,'a1','b1')
go
select * from t1
go
insert t1 values(2,'a2','') --用引号括起来不输值不代表空值
go
select * from t1 where c3 is null
go
insert t1 values(3,'a3',null) --插入空值
insert t1 values(4,null,'b4')
insert t1(c1,c3) values(5,'b5')
insert t1(c1,c2) values(6,'a6')
insert t1(c1) values(7)
go
select * from t1 where c3 is null --查询空值
select * from t1 where c2 is null
-----------------------------------------------------------------------------------------------
select * from sales order by product --order by排序,不指明则默认为asc
select * from sales order by product asc --asc:升序
select * from sales order by product desc --desc:降序
select * from sales order by product,color desc --product为升序,color为降序
select * from sales order by product,color,size desc
-----------------------------------------------------------------------------------------------
select product from sales --这样查询结果中存在重复结果
select distinct product from sales --distinct消除结果中的重复列
select distinct color from sales
select distinct product from sales order by product --同时对结果进行排序
select distinct product,color from sales --product和color的组合不存在重复结果
------------------------------------------------------------------------------------------------
select sale_id as 编号, --改变结果中列名的显示
product as 产品,
color as 颜色,
size as 规格,
quantity as 数量
from sales
---------------------------------------------------------------------------------------------------
select '编号'=sale_id, --改变结果中列名的显示
'产品'=product,
'颜色'=color,
'规格'=size,
'数量'=quantity
from sales
----------------------------------------------------------------------------------------------------
select '编号:',sale_id, --插入说明列
'产品:',product,
'颜色:',color,
'规格:',size,
'数量:',quantity
from sales
----------------------------------------------------------------------------------------------------
alter table t1 --在表中增加新列时新列的值必须允许为空或者有默认值
add c4 int null
----------------------------------------------------------------------------------------------------
update t1 set c4=100 where c1=1 --update:更改表中的数据
update t1 set c3='b2' where c2='a2' and c1=2
----------------------------------------------------------------------------------------------------
delete t1 where c1=7 --delete:删除表中指定行的数据
delete t1 where c1=3 and c2='a3'
----------------------------------------------------------------------------------------------------
alter table t1 drop column c4 --删除列