关于SQL的一些使用例子
5、根据下面所给的商品库,写出SQL语句
商品表1(商品代号char(8),分类号char(8),单价float数量int)
商品表2(商品代号char(8),产地char(8),品牌char(8) 两张表
(1)从商品库中查询出数量在10和20之间的商品种数
select *
from 商品表1
where 数量 between 10 and 20
(2)从商品库中查询出每类(即分类名相同)商品的总数量
select 分类名,sum(数量) as 总数量
from 商品表1
group by 分类名
(3)从商品库中查询出比所有商品单价的平均值要低的全部商品
select *
from 商品表1
where 单价avg(单价)
from 商品表1 )
(4)从商品库中查询出所有商品的不同产地的总数
select count(distinct 产地) as产地数from商品表2
6、建立课程表,它包括三个属性:课程号、课程名和课程学分。其中课程号为主码;课程名唯一;课程学分只取1至5之间的整数,可以取空值
Create table 课程(
课程号char(4) primary key,
课程名char(12) not null unique,
课程学分int check(课程学分>=1and课程学分〈=5〉
5、根据下面所给的教学库,写出SQL语句
学生(学号char(8),姓名char(8),性别char(2),系名char(20), 出生年月 datetime)
选课(学号char(8),课程号char(10),成绩Int)
课程(课程号char(8),课程学分Int ) 三张表
(1)从教学库中查询出每门课程被选修的学生数
Select 课程.课程号,课程.课程名,count(*)as选课人数
from 课程,选课
where课程.课程号=选课.课程号
group by 课程.课程号
(2)从教学库中查询出所有已被学生选修的课程
select *
from 课程
where exists (select from 选课 where课程.课程号=选课.课程号)
(3) 查找学生表中电子工程系的学生的姓名、系名和出生年月,结果按出生年月降序排列,年龄即从小到大排序
SELECT姓名,系名,出生年月;
FROM学生;
WHERE系名=“电子工程系” ORDER BY出生年月DISC
(4)查找姓名以“李”打头的所有学生名
SELECT姓名;
FROM学生;
WHERE姓名 LIKE ‘ 李% ’
(5) 从教学库中查询出所有学生和选课情况,要求没选择任何课程的学生信息也反映出来。
(提示:此查询需要使用左连接,学生为左,选课为右)
SELECT *;
FROM 学生 LEFT JION 选课 ON 学生.学号=选课.学号.
(6)在课程表插入一个的元组数据
INSERT INTO课程(课程号,课程名,课程学分)VALUES (“A0074”,“大学英语(1)”,4)