【SqlServer】SqlServer基本语法
程序员文章站
2024-02-22 23:32:46
...
数据库操作
创建数据库
create database School
使用数据库
use School
删除数据库
drop database School
如果存在,则删除数据库
if(exists(select * from master.dbo.sysdatabases where dbid = DB_ID('test')))
begin
use master
alter database School
SET single_user
with rollback immediate
drop database School
end
用户模式
MULTI_USER 多用户模式,任何用户都可以连接
SINGLE_USER 单用户模式,数据库一次只能有一个连接,当维护数据库时启动
RESTRICTED_USER 限制模式,
回滚 ROLLBACK,即是在执行操作过程中,如果出现错误,则所有的操作都取消,
比如在添加数据操作时,共要插入10条数据,当在第3条数据时插入出错,这是就需要使用回滚,即出错时全部操作都取消插入
表操作
创建表
create table Student(--学生表
ID int identity(1000,1) primary key,--ID
Name nvarchar(64) default 'Name',--姓名
Grade int, --年级
Class int, --班级
Score int) --成绩
identity(1000,1) 表示是否标识,即是否自增,1000标识自增的初值,1表示增量
primary key 表示主键
删除表
drop table Student
增加列
alter table Student add Description int
插入数据
一次插入一条数据
insert into Student(Name,Grade,Class,Score) values('Jack',1,3,90)
一次插入多条数据
insert into Student(Name,Grade,Class,Score) values
('Tom',2,2,80),
('Jane',3,2,85),
('Mary',2,1,95),
('Allen',2,2,70)
删除全部数据
delete from Student
删除年级为1的学生
delete from Student where Grade = 1
更新表
update Student set Grade = 3 where Name ='Tom'
查询语句
select * from Student
查询不重复的记录,比如查询各个年级
select distinct Grade from Student
查询数据总数
select Count(*) from Student
模糊查询
select * from Student where Name like '%J%'
% 标识0个或多个字符
指定查询范围
select * from Student where Score >= 80 and Score <= 90
或
select * from Student where Score between 80 and 90
排序 升序
select * from Student order by Grade,Class desc
排序 降序 (排序的每个字段都需要加desc)
select * from Student order by Grade desc,Class desc
求和
select sum(Score) from Student
求平均值
select avg(Score) from Student
求最大值
select max(Score) from Student
求最小值
select min(Score) from Student
查询最后一个插入的Identity值,比如字段ID设置为自增后插入数据,在插入语句中ID是不用指明的,想获取ID需再次查询
select scope_Identity()
查询插入数据Rose的ID
insert into Student(Name,Grade,Class,Score) values('Rose',3,1,90)
select scope_Identity()
成绩表
create table Score
(ID int identity(1,1),
StudentID int,
Chinese float,
Math float
primary key(ID,StudentID)
)
删除表
drop table Score
设置外键,将StudentID设置为Student的外键
alter table Score add constraint FK_StudentID foreign key (StudentID) references Student(ID)
条件语句
if else
declare @b bit
set @b = 1
if(@b = 1)
begin
print '1'
end
else
begin
print '0'
end
输出“1”
when then
declare @stateID int
declare @state nvarchar(10)
set @stateID = 404
set @state =case
when @stateID=200 then '成功'
when @stateID=404 then '未找到'
when @stateID=503 then '服务不可用'
end
print @state
输出“未找到”
循环语句
declare @i int
declare @sum int
set @i = 0
set @sum = 0
while @i<10
begin
set @sum += @i
set @i +=1
end
print @sum
输出“45”