sql资料.docx
《sql资料.docx》由会员分享,可在线阅读,更多相关《sql资料.docx(23页珍藏版)》请在冰豆网上搜索。
sql资料
建表的题目
1、使用SQL建立表的语句建立一个与自由表“金牌榜”结构完全一样的自由表golden.dbf。
2、用SQL语句在“外汇”数据库中新建一个数据库表rate,其中包含4个字段“币种1代码”C
(2)、“币种2代码”C
(2)、“买入价”N(8,4)、“卖出价”N(8,4)。
3、使用SQL语句创建一个名为“分组情况表”的自由表,“分组情况表”有两个字段:
组号和组名,组号占两个字符,组名占10个字符。
4:
请建立一个名称为course.dbf表,它包含课程号(c,4),课程名(c,16),学分(n,2)三个字段。
其中课程号不允许为空值,而且它是一个主索引,学分允许为空。
5、请建立一个名称为xs.dbf的表,它包含学号c(8),姓名c(10),性别c
(2),民族c(6)四个字段,其中性别要求必须是男或女,如果输入的性别不符合要求,则弹出一个“性别必须是男或女”的错误信息,性别字段的默认值为:
“女”。
简单查询
1、使用SQL命令从employee表中查询所有已婚(婚否字段值为逻辑真)记录的职工号、姓名和出生日期信息,结果按出生日期降序排序存入表infor_da中。
2、使用SQL命令从worker中查询年龄最大的三名职工信息:
职工号、姓名、出生日期,查询结果按年龄降序(即出生日期升序)排序并保存在表infor_db.dbf中。
3、使用SQL命令在employee表中查询年龄最大的前5名员工的姓名和出生日期,查询结果按年龄降序排序存入文本文件emage.txt中。
(提示:
表中无年龄字段,但是有出生日期字段)。
4、创建一个名称为sview的视图,该视图的SELECT语句查询salarys表(雇员工资表)的部门号、雇员号、姓名、工资、补贴、奖励、失业保险、医疗统筹和实发工资,其中实发工资由工资、补贴和奖励三项相加,然后再减去失业保险和医疗统筹得出,结果按“部门号”降序排序。
5、在SCORE_MANAGER数据库中查询学生的姓名和年龄(计算年龄的公式是:
2003—year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。
6、用SQL语句从rate_exchange.dbf表中提取外币名称、现钞买入价和卖出价三个字段的值并将结果存入rate.dbf表(字段顺序为外币名称、现钞买入价、卖出价,字段类型和宽度与原表相同,记录顺序与原表相同)。
7、将“销售表”中的日期在2000年12月31日前(含2000年12月31日)的记录复制到一个新表“销售表2001.Dbf”中。
8、将"教师表"中工资小于4000的所有记录存入自由表salary.dbf中,表中的记录先按"工资"降序、再按"姓名"升序排列。
9.使用SQL的SELECT命令从“学生表”中查询学生注册日期等于2005年9月2日的学生的学号、姓名、年龄、性别、班级和注册日期,查询结果按年龄降序排序,同时将查询结果存储到表TABE中。
10、表TABA中有重复的记录,用SQL语句将表TABA中的记录复制到另外一个与它具有相同结构的表TABC中,并消除重复的记录(对于重复多次的记录,只复制一条记录的数据)。
简单联接查询
1.用SQL语句完成下列操作:
列出所有与“红”颜色零件相关的信息(供应商号,工程号和数量),并将检索结果按数量降序排序存放于表supply_temp中。
2.用SQL语句完成下列操作:
列出“林诗因”持有的所有外币名称(取自rate_exchange表)和持有数量(取自currency_sl表),并将检索结果按持有数量升序排序存储于表rate_temp中。
3.使用SQL的SELECT命令查询退房日期大于或等于2005-04-01的客户号、身份证、姓名、工作单位和该客户入住的客房号、类型名、价格信息,查询结果按价格降序排序,并将查询结果存储到表TABD中。
表TABD的字段为客户号、身份证、姓名、工作单位、客房号、类型名、价格。
4.查询客户名为lilan所有订单的信息,查询结果依次包含订单号、签订日期、商品名、单价和数量等五项内容。
各记录按订单号升序排序;订单号相同按商品名排序,并将查询结果存放在表tabletwo中。
5.用SQL语句完成下列操作:
列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存储于表stock_temp中。
6.使用SQL命令查询2001年(不含)以前进货的商品,列出其分类名称、商品名称、进货日期,查询结果按进货日期升序排序并存入文本文件infor_a.txt中。
7.查询哪些课程有不及格的成绩,将查询到的课程名称存入文本文件new.txt。
8.根据sdb数据库中的表用SQLSELECT命令查询学生的学号、姓名、课程名和成绩,结果按“课程名”升序排序,“课程名”相同时按“成绩”降序排序,并将查询结果存储到sclist表中。
Course.dbf
课程号
课程名
9.分别查询“林诗因”、“张三丰”和“李寻欢”所持有的外币名称和持有数量,按持有数量升序将结果存储在以姓名命名的DBF表文件。
10.用SQL语句完成下列操作:
检索“田亮”所借图书的书名、作者和价格,结果按价格降序存入book_temp表中。
11.请查询选修了“计算机基础”和“高等数学”的学生的考试成绩(依次包含姓名、课程名称和考试成绩3个字段),并先按课程名称升序、再按考试成绩降序存储到表zonghe.dbf中。
12.使用SQL的SELECT语句,根据顾客点菜表和菜单表查询顾客点单价大于等于40元菜的顾客号和菜编号、菜名、单价和数量,结果按菜单编号降序排序并存储到名为TABA表中,将SQL的SELECT语句存储到名为TWO.PRG文件中。
表TABA由SELECT语句自动建立。
13.将“评分表”中“01”组歌手(“歌手编号”字段的左边两位表示了该歌手所在的组号)的所有记录存入自由表two.dnf中,two.dbf的表结构与“评分表”相同,表中的记录先按“歌手编号”降序、再按“分数”升序排列。
14.建立视图NEW_VIEW,该视图含有选修了课程但没有参加考试(成绩字段值为NULL)的学生信息(包括“学号”、“姓名”和“系部”3个字段)。
嵌套查询
eg1:
请查询没有选修任何课程的学生信息,结果按学号升序存入new_table1.dbf中。
eg2:
请查询有选修课程的学生信息,结果按学号升序存入new_table2.dbf
eg3:
请查询没有任何人选修的课程信息,结果按课程号升序存入new_table3.dbf。
eg4:
请查询有人选修的课程信息,结果按课程号升序存入new_table4.dbf
Eg3.使用SQL命令建立视图view_b,视图中是目前在orders表中没有所签订单的职工(employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件view_b.txt中。
分组计算查询
1、以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前三名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表newcoun.dbf。
2、
(1)使用SQLUPDATE命令计算和更新student表的年龄字段值(计算年龄的表达式是year(date())–year(出生日期));
(2)使用SQLSELECT命令查询各种"政治面目"的学生人数和平均年龄,并将结果存储于表sqlresults(字段名是政治面目、人数和平均年龄)。
3.统计各门课程的平均成绩,统计结果包含“课程名”和“平均成绩”两个字段,并将统计结果按课程名升序保存在表NEW_TABLE32中。
4.根据“国家”和“获奖牌情况”两个表统计并建立一个新表“假奖牌榜”,新表包括“国家名称”和“奖牌总数”两个字段,要求先按奖牌总数降序排列(注意“获奖牌情况”的每条记录表示一枚奖牌)、再按“国家名称”升序排列。
5.使用SQL语句计算每个歌手的最高分、最低分和平均分,并将结果存储到result.dbf表中(包含歌手姓名、最高分、最低分和平均分4个字段),要求结果按平均分降序排序。
6.查询统计“赵小青”和“吴伟军”两位职员所签订单的有关金额,并将其中最高金额、最低金额和平均金额存入表Tablethree.dbf中。
注:
表tablethree中应包含两条相应记录。
7.使用SQL的SELECT命令查询选课数量大于等于4门且平均成绩大于等于75分的每个同学的学号、姓名、平均成绩和选课门数,查询结果按平均成绩降序排序并存储到表TWO中。
表TWO中的字段名分别为:
学号、姓名、平均成绩、选课门数。
8.查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到max.dbf表文件(字段名是课程名称和分数)。
9.使用SQL命令建立视图view_cb,视图中显示每个职工签订的所有订单总金额(签订订单金额合计)大于15000元的职工号、姓名及其所签订订单的总金额,结果按总金额升序排序。
10.以客户为单位、从customer和orders表中求出订单金额的和。
结果包含"客户号"、"客户名"和"合计"三项内容,其中"合计"是指与某客户所签所有订单金额的和。
结果应按"合计"降序排序,并存放在tabletwo表中。
11.使用SQL的CREATEVIEW命令定义一个名称为SVIEW的视图,该视图的SELECT语句完成查询:
选课门数是3门以上(不包括3门)的每个学生的学号、姓名、平均成绩、最低分和选课门数,并按“平均成绩”降序排序。
12.使用SQL的SELECT命令查询每个学生所选的所有课程的成绩都是60分以上(包括60分)的学生的学号、姓名、平均成绩和最低分,并将查询结果按学号升序排序存储到表FOUR中。
表FOUR的字段为学号、姓名、平均成绩、最低分。
13.用SQL语句完成下列操作:
将选课在5门课程以上(包括5门)的学生学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学生、姓名、平均分和选课门数)。
14.统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中,表中只有一个字段,字段名为学生人数。