创建表操作

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'


吴建波
4 声望0 粉丝

java工程师