Sql基础代码
目录
第一章 建库建表 2
1.1 数据库的应用 2
1.1.1 创建数据库 2
1.1.2 查询数据库 3
1.1.3 删除数据库 3
1.2 表的运用 4
1.2.1 创建表 4
1.2.2 删除表 5
1.3 约束 6
1.3.1 五种约束 6
1.3.2 约束的使用 6
第二章 数据查询 8
2.1 建表和插入数据 8
2.1.1 建立学生信息表 8
2.1.2 插入信息 9
2.2 查询运用 11
2.2.1 数据查询 11
2.2.2 单表查询 12
2.2.3 连接查询 13
2.2.4 操作结果集查询 18
2.2.5 嵌套查询 18
2.3 数据库更新 19
第三章 函数 19
3.1 五种函数的运用 19
3.1.1 字符串函数 20
3.1.2 数学函数 21
3.1.3 日期函数 22
3.1.4 系统函数 23
3.1.5 聚合函数 24
第四章 变量 25
4.1 局部变量 26
4.2 全局变量 27
第五章 循环语句 30
5.1 统计平均成绩 30
5.2 提分 31
5.3 根据成绩显示等级 35
第六章 存储过程 36
6.1 存储过程的应用 36
6.1.1 系统存储过程 36
6.1.2 Sp_helptext的使用 40
6.1.3 创建存储过程 41
6.2 raiserror语句的应用 45
第七章 exists子查询 46
7.1 exists子查询的应用 46
7.2 求银行利息 49
7.3 变量查询 51
7.4 查询考试通过情况 53
7.5 循环提分 55
7.6 通过率 57
第八章 事物 58
8.1 使用事物解决银行转账 59
第九章 触发器 60
9.1 检测触发器 62
9.2 创建触发器 62
9.3 触发器delete运用 64
9.4 触发器update运用 65
9.5 触发器禁止修改运用 66
第一章 建库建表
1.1 数据库的应用
1.1.1 创建数据库
–创建数据库student
create database student
on primary–默认就属于primary主文件组,可省略
(name=‘student_data’,–逻辑名
filename=‘D:\student_date.mdf’,
–物理名,也就是储存此数据库的路径
size=5mb,–文件初始大小
maxsize=100mb,–文件增长的最大值
filegrowth=15%–文件的增长率)
–日志文件的具体描述
log on
(name=‘student_logo’,
filename=‘D:\student_log.ldf’,
size=2mb,
filegrowth=1mb)
Go
1.1.2 查询数据库
–查询当前服务器的所有的数据库
select*from sysdatabases
–查询数据库student的信息
select*from sysdatabases where name=‘student’
1.1.3 删除数据库
drop database student—可以直接删除
use master–设置当前数据库为master,一般访问sysdatabases表
go
if exists(select*from sysdatabases where name=‘student’)
drop database student
–使用exists子查询查询在sysdatabases里有没有student数据库,有则删除此数据库
–删除后然后替换为以下的数据库
create database student
on primary–默认就属于primary主文件组,可省略
(
name=‘student_data’,–逻辑名
filename=‘D:\student_date.mdf’,
–物理名,也就是储存此数据库的路径
size=5mb,–文件初始大小
maxsize=100mb,–文件增长的最大值
filegrowth=15%–文件的增长率
)
–日志文件的具体描述
log on
(
name=‘student_logo’,
filename=‘D:\student_log.ldf’,
size=2mb,
filegrowth=1mb
)
Go
1.2 表的运用
1.2.1 创建表
–创建表stuinfo
create table stuinfo
(
stuname varchar(20) not null,–学生姓名
stuno char(6) not null primary key,–学生学号,primary key 是设置主键为stuno
stuage int not null,–学生年龄
stuid char(18) null,–身份证号
stuseat smallint identity(1,1),–座位号,没填null,表示默认为可以为空
stuaddress text–学生地址,在数据类型后面没有添加null,表示数据输入默认可为空
)
go
create table stumarks
(
examno char(7) not null,–考号
stuno char(6) not null,–学号
writtenexam int not null,–笔试成绩
labexam int not null)–机试成绩
go
1.2.2 删除表
drop table stuinfo–直接删除stuinfo表
use student
go
if exists(select*from sysobjects where name=‘stuinfo’)
drop table stuinfo
–使用exists子查询查询在sysobjects里有没有stuinfo表,有则删除此表
create table stuinfo
(
stuname varchar(20) not null,
stuno char(6) not null,
stuage int not null,
stuid char(18) null,–身份证号
stuseat smallint identity(1,1),
stuaddress text
)
Go
1.3 约束
1.3.1 五种约束
–创建表的五种约束:
primary key constranint–主键约束
unique constraint–唯一约束
check constraint–检查约束
default constraint–默认约束
foreign constraint–外键约束
1.3.2 约束的使用
–添加主键约束
alter table stuinfo–添加表名
add constraint pk_stuno primary key(stuno)
alter table stumarks
add constraint pk_examno primary key(examno)
–唯一约束
alter table stuinfo
add constraint uq_stuno unique(stuno)
alter table stumarks
add constraint uq_examno unique(examno)
–检查约束
alter table stuinfo
add constraint ck_stuage check(stuage between 5 and 30)–年龄大小约束
alter table stuinfo
add constraint ck_stuid check(stuid like’43%’)–身份证号码约束
alter table stumarks
add constraint ck_writtenexam check(writtenexam between 0 and 100)–笔试成绩约束
alter table stumarks
add constraint ck_writtenexam check(writtenexam between 0 and 100)–机试成绩约束
–默认约束
alter table stuinfo
add constraint df_studdress default(‘湖南湘潭’) for studdress–将studdress值默认为‘湖南湘潭’
–外键约束
alter table stumarks
add constraint fk_stuno
foreign key(stuno) references stuinfo(stuno)–将stumarks外表联接到stuinfo主表