创建表操作
create table 学生信息表
(
学号 varchar(20) not null primary key,
姓名 varchar(50),
性别 varchar(4),
出生日期 datetime,
班级 int,
)
create table 课程表
(
课程号 varchar(20) not null primary key,
课程名 varchar(20),
老师号 varchar(20)
)
create table 成绩表
(
学号 varchar(20) not null foreign key references 学生信息表(学号),
课程号 varchar(20) not null foreign key references 课程表(课程号),
成绩 int
)
在表中插入信息.01
insert 学生信息表
values('101','李军','男','1976-02-20','95033')
insert 学生信息表
values('103','陆君','男','1974-06-03','95031')
insert 学生信息表
values('105','匡明','男','1975-10-02','95031')
insert 学生信息表
values('107','王丽','女','1976-01-23','95033')
insert 学生信息表
values('108','曾华','男','1976-09-01','95033')
insert 学生信息表
values('109','王芳','女','1976-02-10','95031')
查询该表中的所有列
select *
from 学生信息表
insert 课程表
values('3-105','计算机导论','825')
insert 课程表
values('3-245','操作系统','804')
insert 课程表
values('6-166','数字电路','856')
select *
from 课程表
在表中插入信息.02
insert 成绩表
values('101','3-105',64)
select *
from 成绩表
insert 成绩表
values('101','6-166',85)
insert 成绩表
values('103','3-105',92)
insert 成绩表
values('103','3-245',86)
insert 成绩表
values('105','3-105',88)
insert 成绩表
values('105','3-245',75)
insert 成绩表
values('107','3-105',91)
insert 成绩表
values('107','6-166',79)
insert 成绩表
values('108','3-105',78)
insert 成绩表
values('108','6-166',81)
insert 成绩表
values('109','3-105',76)
insert 成绩表
values('109','3-245',68)
select *
from 成绩表
create table 学生信息表
(
学号 varchar(20) not null primary key,
姓名 varchar(50),
性别 varchar(4),
出生日期 datetime,
班级 int,
)
create table 课程表
(
课程号 varchar(20) not null primary key,
课程名 varchar(20),
老师号 varchar(20)
)
create table 成绩表
(
学号 varchar(20) not null foreign key references 学生信息表(学号),
课程号 varchar(20) not null foreign key references 课程表(课程号),
成绩 int
)
insert 学生信息表
values('101','李军','男','1976-02-20','95033')
insert 学生信息表
values('103','陆君','男','1974-06-03','95031')
insert 学生信息表
values('105','匡明','男','1975-10-02','95031')
insert 学生信息表
values('107','王丽','女','1976-01-23','95033')
insert 学生信息表
values('108','曾华','男','1976-09-01','95033')
insert 学生信息表
values('109','王芳','女','1976-02-10','95031')
select *
from 学生信息表
insert 课程表
values('3-105','计算机导论','825')
insert 课程表
values('3-245','操作系统','804')
insert 课程表
values('6-166','数字电路','856')
select *
from 课程表
insert 成绩表
values('101','3-105',64)
select *
from 成绩表
insert 成绩表
values('101','6-166',85)
insert 成绩表
values('103','3-105',92)
insert 成绩表
values('103','3-245',86)
insert 成绩表
values('105','3-105',88)
insert 成绩表
values('105','3-245',75)
insert 成绩表
values('107','3-105',91)
insert 成绩表
values('107','6-166',79)
insert 成绩表
values('108','3-105',78)
insert 成绩表
values('108','6-166',81)
insert 成绩表
values('109','3-105',76)
insert 成绩表
values('109','3-245',68)
select *
from 成绩表
select 学号,姓名
from 学生信息表
查看该表的指定列
select
学号 as'xuehao',
姓名 as'xingming',
性别 as'xingbie',
出生日期 as'chushengri',
班级 as'banji'
from 学生信息表
select *
from 学生信息表
select 学生号,成绩
from 成绩表
select 学生号,成绩
into newtable
from 成绩表
select 姓名,'年龄',2015-datepart(yy,出生日期)
from 学生信息表]
查看该表的所有列,并过滤掉重复的部分
select distinct 学生号
from 成绩表
查看该表的所有列,显示前4排数据
select top 4 *
from 成绩表
查看该表的指定列,用关键词过滤,结果按成绩倒序排列
select 学生号,成绩
from 成绩表
where 课程号='3-105'
order by 成绩 desc
查询该表的所有列,结果用班级、出生日期顺序排列
select *
from 学生信息表
order by 班级,出生日期
查询该表的指定列,用关键、>过滤.01
select 学号,姓名
from 学生信息表
where 出生日期>'1975-01-01'
查询该表的指定列,用关键字、<=过滤.02
select 学号,姓
from 学生信息表
where not 出生日期<='1975-01-01'
查询该表的所有列,用关键字、between and过滤.01
select *
from 成绩表
where 成绩between 60 and 80
查询该表的所有列,用关键字、between and过滤.02
select *
from 成绩表
where 成绩not between 60 and 80
-
查询该表的所有列,用关键字、in过滤
select *
from 成绩表
where 成绩in (85,90,95)
查询该表的所有列,用关键字、like过滤
select *
from 学生信息表
where 学号like '101'
查询该表的所有列,用关键字、like、%过滤
select 姓名,学号, 性别
from 学生信息表
where 姓名like '王%'
查询该表的指定列,用关键字、is not null过滤
select 学号, 课程号
from 成绩表
where 成绩is not null
查询该表的指定列,用关键字、>=、<=过滤
select *
from 成绩表
where 成绩>=60 and 成绩<=80
查询该表的所有列,用关键字、and、=过滤
select *
from 学生信息表
where 性别='女' and 班级='95033'
查询该表的所有列,并统计有多少行
select count(*)
from 学生信息表
查询该表的指定列,并统计有多少行
select count(学号)
from 学生信息表
查询该表的指定不重复列,并统计有多少行
select count(distinct 班级)
from 学生信息表
查询该表的指定列的平均值,用关键词、=过滤
select avg(成绩)
from 成绩表
where 课程号='3-105'
查询该表的指定列,查询结果按关键字顺序排列
select 课程号,count(*) as '选修课人数'
from 成绩表
group by 课程号
查询.高难度.01
select 学号, count(*)
from 成绩表
where 成绩> 85
group by 学号
having count(*)>= 2
查询.高难度.02
select *
from 学生信息表
where 班级in
(
select 班级
from 学生信息表
where 姓名='王芳'
)
查询.高难度.03
select 学号,姓名
from 学生信息表
where 学号 in
(
select 学号
from 成绩表
where 课程号='3-105'
)
查询.高难度.04
use 学生库
select *
from 学生信息表
where 班级= (
select 班级
from 学生信息表
where 姓名= '王芳'
)
查询.高难度.05
select 姓名出生日期
from 学生信息表
where 出生日期> any (
select 出生日期
from 学生信息表
where 班级= '95031'
)
查询.高难度.06
select 姓名出生日期
from 学生信息表
where 出生日期> (
select max(出生日期)
from 学生信息表
where 班级= '95031'
)
查询.高难度.07
select 姓名
from 学生信息表
where exists
(
select *
from 成绩表
where 学号= 学生信息表.学号and 课程号= '3-425'
)
由相关表查询数据,需将表进行连接 外连接(左外连接,有外连接,全外连接);内连接(自然连接) 即在两张表上查询数据,同时调用
两张表以上非嵌套查询(相关子查询;子查询)
查询学生的 学生信息表和成绩表的全部数据
select 学生信息表. , 成绩表.
from 学生信息表, 成绩表
where 学生信息表.学号=成绩表.学号
选修课3-105的成绩高于学号109的所有学生记录
select x. ,y.
from 成绩表x , 成绩表y
where x.课程号= '3-105' and y.课程号='3-105' and y.学号='109' and x.成绩> y.成绩
order by x.成绩 desc
select x., y.
from 成绩表x inner join 成绩表y
on x.课程号= '3-105' and y.课程号='3-105' and y.学号='109' and x.成绩> y.成绩
select 成绩表. ,成绩表.
from 学生信息表inner join 成绩表
on 学生信息表.学号=成绩表.学号 and 成绩表.课程号='3-105' and 成绩表.成绩>90
select 学生信息表.学号, 姓名, 课程名, 成绩
from 学生信息表, 课程表, 成绩表
where 学生信息表.学号= 成绩表.学号 and 课程表.课程号= 成绩表.课程号
select 学生信息表.学号, 姓名, 课程名, 成绩
from 学生信息表inner join 成绩表 on 学生信息表.学号=成绩表.学号 inner join 课程表
on 课程表.课程号=成绩表.课程号
将学号是101的同学的姓名改为 李军
update 学生信息表
set 姓名='李军改'
where 学号='101'
update 学生信息表
set 姓名='李军'
where 学号='101'
更改成绩表,设置成绩为加上20分.01
update 成绩表
set 成绩=成绩+20
更改成绩表,设置成绩为减去20分.02
update 成绩表
set 成绩=成绩-20
删除学号是1001的同学的所有数据.01
delete
from 成绩表
where 学号='1001'
删除表中的一行数据.02
delete 成绩表
where 学号='1001'
删除表中 学号属性值是1001 的那一行.03
delete 成绩表
from 成绩表
where 学号='1001'
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。