关于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)

posted on 2008-11-05 23:32  黄洪汉  阅读(238)  评论(0编辑  收藏  举报