1. 判断是否存在某个数据库并删除-
use master --设置当前数据库为master,以便访问sysdatabases表
go
if exists(select *from sysdatabases where name='xueDB')
drop database xueDB
2. 创建数据库并设置属性
create database xueDB
on primary--primary可以省略,默认时就属于primary文件组
(/*--数据文件的具体描述--*/
name='xueDB_data',--主数据文件的逻辑名称
filename='d:\myDB\xueDB_data.mdf', -- 主数据文件的物理名称
size=4mb,
maxsize=100mb,
filegrowth=15%
)
log on
(/*--日志文件的具体描述--*/
name='xueDB_log',
filename='d:\myDB\xueDB_log.ldf',
size=2mb,
filegrowth=1mb
)
3. 只有特定的角色可以使用下面语句修改数据库名
sp_renamedb [ @dbname = ] ' old_name ' ,
[ @newname = ] ' new_name '
4.修改数据库的名字(只修改sqlserver中名字文件名字并未修改)
alter database xueDB
modify name=stuDB
5. 判断某个表是否存在并删除表
use stuDB
go
if exists(select *from sysobjects where name='stuMarks')
drop table stuMarks
6. 创建一个表
create table stuMarks
(
ExamNo int identity(1,1) primary key,-- identity(起始值,递增量)" 表示此列为自动编号
stuNo char(6) not null,
writtenExam int not null,
LabExam int not null
)
go
7.修改表之增删约束
alter table 表名
add constraint 约束名 约束类型 具体的约束说明
alter table 表名
drop constraint 约束名
例:alter table stuMarks
add constraint UQ_stuNo Unique(stuNo)
constraint PK_ExamNo primary key(ExamNo),--主键
constraint DF_stuNo foreign key(stuNo)references 另一表名 (SID),--外键
constraint DF_LabExam default (1) for LabExam,--状态默认为1
alter table stuMarks
drop constraint UQ_stuNo
8.增删SQL登录账户
exec sp_addlogin 'xue','123' -- 登陆名为xue,密码为123
exec sp_droplogin 'xue'
例:
9. 在stuDB数据库中添加两个用户(必须存在)
use stuDB
go
exec sp_grantdbaccess 'xue','123456'
go
10. 给数据库用户授权
use stuDB
go
grant select,update,insert on stuMarks to xue
grant create table to xue
go
11. 增删一个列
alter table stuMarks
add age int
alter table stuMarks
drop column age
12.添加删除主键(有主键了就不可以添加了)
Alter table stuMarks
add primary key(col)
13. 创建删除视图
create view viewname as select statement
drop view viewname
14. 表中插入记录
insert into stuMarks(stuNo,writtenExam,labExam,age)values(101901,99,96,20)
--ExamNo作为标识列不能给显示值,age可为空则可不写,其他非空一定要有
insert into 目标数据表 select * from 源数据表" --把源数据表的记录添加到目标数据表
15. 删除表中记录
delete from stuMarks where stuNo=101902
delete from stuMarks --删除整个表中的记录
16.查询表
select *from stuMarks--查询整个表的所有数据
select *from stuMarks where age=20 order by stuNo desc--默认为inc
select *from stuMarks where age like '%23%' order by stuNo desc
select top 2 *from stuMarks where age like '%20%' order by stuNo desc
select *from stuMarks where age in(20,23)
select *from stuMarks where age between 20 and 28
select sum/avg/count/max/min (age) as s from stuMarks --求表中年龄之和,平均值,最大最小,记录数
查询去除重复值:select distinct * from stuMarks
select * into pkpm_abc..sysItemNum from pkpmjc2007..sysItemNum把一表中的所有数据写入另一表中
17.更新表中记录
update stuMarks set stuNo=101902 where stuNo=101904
update stuMarks set stuNo=101902,age=27 where stuNo=101904
18.备份数据库
backup database pkpm_abc to disk='D:\pkpm_abc.bak'