第一篇:SQL-数据查询语言
宁波工程学院
数据库理论与技术课程实验报告
学院: 电子与信息工程学院 专业:计算机科学与技术 年级: 计科10-2 实验时间: 2012年4月15日
组长: 何亚玲 学号: 10401010201 指导教师签字: 成绩:
实验
三、SQL-数据查询语言
一、实验目的和要求
1、实验目的:深入理解连接查询和嵌套查询的语句格式、执行过程,掌握它们的使用方法;理解数据更新语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围;理解视图的概念,掌握其定义方法和应用方法。
2、实验要求:在每次实验前,学生必须根据实验指导书设计出实验方案(程序和实验步骤);在实验过程中要求独立进行程序调试和排错,学会使用在线帮助来解决实验中遇到的问题,同时运用理论的知识来分析问题和解决问题,记录下实验过程和结果。上机结束后写出实验报告,并对实验过程进行分析和总结。
二、实验内容与步骤
1、在SQL SERVER 2005上附加数据库jxgl和ReadBook。
2、在jxgl中完成下列查询
(1)查询选修课程学生的学号、姓名、所选课程号、课程名称以及所取得的成绩(2)查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名(3)查询和“刘涛”在一个班级的学生的信息 思考:该查询可用几种方法实现?
(4)查询选修了‘计算机基础’课的学生的学号、姓名(分别用连接查询和嵌套查询的方法实现)
(5)查询没有选修课程的学生的信息
(6)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(用两种方法实现)
(7)查询每个学生超过该门课程平均成绩的课程号
1(8)查询至少选修了“0311102”学生所选全部课程的学生的学号(9)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号(10)同时显示students中学生以及teachers中教师的姓名、性别
3、在jxgl中完成下列数据更新
(1)向course表添加一个新的元组。
(2)将“0301102”学生所选的“0000002”课程的成绩改为100分,绩点改为2(3)删除(1)中在course表中添加的记录
(4)统计每门课程的平均成绩并将统计结果存入到jxgl数据库中
思考:如何将students表中班级名 “03计算应用1”改为“03计算机应用1”(可调用函数完成)
4、查询教师的编号、姓名、上课的课程号、课程名称及班级。将该查询定义为一个视图。
5、在第4题定义的视图中完成下列查询
(1)查询“姚明”所上课程和班级。(2)统计每一位教师上课的数量
6、利用数据库ReadBook完成下列查询及视图设计。(在SQL SERVER2005上附加数据库ReadBook)
(1)设计一个查询,要求用连接和嵌套两种方式完成。(2)设计一个查询,要求用外连接的方式完成。
(3)设计一个查询,要求用带exists或not exists相关子查询完成(4)设计一个集合查询
(5)设计一个带复合条件连接的查询
(6)设计一个视图,并在该视图中完成添加、修改、删除数据的操作。
(7)设计一个视图,并在该视图完成两个统计:a.每位读者以及他的借书数量,按借书数量作降序排列 b.每本书以及被借出的次数,按借出次数作降序排列。
注意在实验报告中说明查询的目的和对应的语句。
三、实验过程及数据记录
1、在SQL SERVER 2005上附加数据库jxgl和ReadBook。
2、在jxgl中完成下列查询
(1)查询选修课程学生的学号、姓名、所选课程号、课程名称以及所取得的成绩
select Students.sno,sname,SC.cno,cname,grade from Students,SC,Course where Students.sno=SC.sno and SC.cno=Course.cno
(2)查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名 select cno,cname from
Course
(3)查询和“刘涛”在一个班级的学生的信息 select * from
students where class=(select class from
students where sname='刘涛')
思考:该查询可用几种方法实现?
(4)查询选修了‘计算机基础’课的学生的学号、姓名(分别用连接查询和嵌套查询的方法实现)连接查询:
select Students.sno,sname from students,SC,Course where cname='计算机基础'and Students.sno=SC.sno and SC.cno=Course.cno 嵌套查询:
select s1.sno,sname from
students s1,SC s2,Course s3 where cname='计算机基础'and s1.sno=s2.sno and s2.cno=s3.cno 执行结果同上
(5)查询没有选修课程的学生的信息
select * from
Students where sno not in(select sno from sc)
(5)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(用两种方法实现)
1:select sname,mgrade from students where
mgrade>(select max(mgrade)
from students where class='03计算应用')
2:select sname,mgrade from students where
mgrade>all(select mgrade from students where class='03计算应用1')
(6)查询每个学生超过该门课程平均成绩的课程号
select
cno from sc sc1 ,students where
grade>(select avg(grade)from sc sc2
where sc2.cno=sc1.cno)
(9)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号 where sc2.cno=sc1.cno)
select
s1.sno from
course c1,course c2,sc sc1,sc sc2,students s1,students s2 where
c1.cname='计算机基础'
and
c2.cname='C语言基础' and c1.cno=sc1.cno
and
sc1.sno=s1.sno and c2.cno=sc2.cno and
sc2.sno=s2.sno and
s1.sno=s2.sno(10)同时显示students中学生以及teachers中教师的姓名、性别 因为教师并没有标明性别,所以不显示
select sname,ssex from students select tname from teachers
3、在jxgl中完成下列数据更新
(1)向course表添加一个新的元组。增加的元组为学习的学期cterm: use jxgl_1 alter table course add cterm char(1)
(2)将“0301102”学生所选的“0000002”课程的成绩改为100分,绩点改为2 update sc set grade='100',point='2' where sno='0301102'
and cno='0000002'(3)删除(1)中在course表中添加的记录 use jxgl_1 alter table course drop column
cterm(4)统计每门课程的平均成绩并将统计结果存入到jxgl数据库中
select cno,avg(grade)as avg_grade from SC group by cno
思考:如何将students表中班级名 “03计算应用1”改为“03计算机应用1”(可调用函数完成)update
students set class='03计算机应用' where class='03计算应用'
4、查询教师的编号、姓名、上课的课程号、课程名称及班级。将该查询定义为一个视图。
create
view teacher_information(tno,tname,cno,cname,class)as select teachers.tno,tname,TC.cno,cname,class from Course,TC,Teachers where Course.cno=TC.cno and TC.tno=Teachers.tno
5、在第4题定义的视图中完成下列查询
(1)查询“姚明”所上课程和班级。select cname,class from teacher_information where
tname='姚明'
(2)统计每一位教师上课的数量 select tname,count(cno)the_all from teachers_view group by tno,tname
6、利用数据库ReadBook完成下列查询及视图设计。(在SQL SERVER2005上附加数据库ReadBook)
(1)设计一个查询,要求用连接和嵌套两种方式完成。
连接:
select
rname,bookname from
books,L_R,readers where books.bookid=L_R.bookid and
L_R.rno=readers.rno 嵌套:
select rname,bookname from books b1,L_R lr1 ,readers r1 where b1.bookid=lr1.bookid and
lr1.rno=r1.rno(2)设计一个查询,要求用外连接的方式完成。select classid,rno from books right outer join L_R on
books.bookid=L_R.bookid
(3)设计一个查询,要求用带exists或not exists相关子查询完成 select distinct bookname from books where exists(select bookid from
L_R where
books.bookid=L_R.bookid and rno='04201')(4)设计一个集合查询
select * from readers where rsex='男' union
select * from readers where spet='网络'(5)设计一个带复合条件连接的查询
select rname,bookname from books,L_R,readers where books.bookid=L_R.bookid and L_R.rno=readers.rno(6)设计一个视图,并在该视图中完成添加、修改、删除数据的操作。create
view books_information(bookid,classid,bookname)as select bookid,classid,bookname from books
select * from books_information
insert into books_information(bookid,classid,bookname)values('sn911','yy','计算机维修')
update books_information set classid='yy' where bookid='sn9001'
delete from
books_information where classid='sn9007'
(7)设计一个视图,并在该视图完成两个统计:a.每位读者以及他的借书数量,按借书数量作降序排列 b.每本书以及被借出的次数,按借出次数作降序排列。create view lr(rno,rname,bookid)6 as select readers.rno,rname,bookid from readers,L_R where readers.rno=L_R.rno
select rno,rname,count(bookid)as 借书数量 from lr group by rno,rname order by 借书数量desc
select bookid,count(bookid)as 借书次数 from lr group by bookid order by 借书次数desc drop view lr
注:图很多,不一一附上
四、实验结果分析
这次实验的内容是熟悉连接查询和嵌套查询的语句格式、执行过程,并掌握它们的使用方法;理解数据更新语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围;理解视图的概念,掌握其定义方法和应用方法。
按照课本的指导,导入数据库,才可以进行相关查询。编写程序时会出现很多错误,很多分析时还正确,却不能执行,自己不断独立纠错改正,才可以实现查询结果。
第二篇:SQL语言数据查询操作
实验三 SQL语言——数据查询操作
一、实验时间
二、实验地点:317室
三、实验条件与环境
1. 通用PC机
2. PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台
3. PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)
4. 最好有一台公用的SQL Server 2000 服务器
四、实验目的1. 通过上机实验进一步加深对SQL查询语句的基本语法格式的掌握
2. 通过上机实验掌握单表查询的实现过程
3. 通过上机实验掌握多表关联查询的实现过程
4. 通过上机实验掌握嵌套查询的实现过程
5. 通过上机实验掌握集函数与谓词在Select语句中的使用
6. 通过上机实验加深了解Select语句与关系代数运算(如选择、投影、连接、除法等)两者之间的联系与区别
五、实验要求:
1. 本实验所有实验内容要求在规定时间(2课时)内完成2. 实验内容中涉及到的各查询操作均通过SQL语言来实现
3.实验完成后需要书写实验报告
六、实验内容:
1.查询为工程J1供应零件的供应商号码SNO
2.查询为工程J1供应零件P1的供应商号码SNO
3.查询为工程J1供应红色零件的供应商号码SNO
4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO
5.查询至少选用了供应商S1所供应的全部零件的工程号JNO
6.找出所有供应商的名称和所在城市
7.找出所有零件的名称、颜色和重量
8.找出使用供应商S1所供应零件的工程号码
9.找出工程项目J2使用的各种零件的名称及其重量
10.找出上海厂商供应的所有零件号码
11.找出使用上海产的零件的工程名称
12.找出没有使用天津产的零件的工程号码
13.找出重量最轻的红色零件的零件编号PNO
14.找出供应商与工程所在城市相同的供应商提供的零件号码
15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME
16.重复第15题,但不检索两个CITY值相同的三元组
17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和
18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列
七、实验总结:
数据查询是一种极为重要的面向数据库的数据操纵方式。实验完成后,请同学们总结一下SELECT语
句实现各种类型查询任务的一般过程和操作实现方法,并对利用SELECT语句实现各类查询任务的解题规律与方法作一总结。
第三篇:SQL查询语言
《SQL查询语言》教学设计
一、教学目标分析
认知目标
学习SQL查询语言的使用方法。
掌握SQL语言当中的SELECT语句
能力目标
培养学生应用查询语句查询数据的应用能力
情感目标
体验SQL语言查询方法
主动将数据库管理信息的思想、方法创造性地应用到生活、学习之中。
二、教学内容分析
课前需要为学生准备名为SCHOOL数据库文件,里面放着名为CLASS的表,供学生练习使用。提供这个数据库文件可以避免学生在建立表以及表中录入记录上花费太多的时间,而把重点放在对本节内容的学习上,可以让教师更好地进行目标调控,做到有的放矢。这个数据库文件放置于网络共享文件夹中,并将其快捷方式置于学生机的桌面上。教学重点:
1、使用“在设计视图中创建查询”。
2、SQL查询语言的格式。
教学难点:
运行、调试SQL命令。
解决措施:
通过老师讲解、演示及设置的任务,让学生在学习的过程中,自己动手,以不断解决问题为手段,有机结合各种知识,以任务驱动的方式发展能力,一步步完成学习任务。
三、学生学习状态分析
本课的教学对象是大二的学生,由于学生的理论知识薄弱,加上数据库比较抽象,比较难理解的特点,从而造成学生对数据库的认识还很模糊。学生在本节课之前,已经掌握数据库和表的创建、打开及表中输入、修改记录的方法,初步掌握SQL的一些基本操作,在此基础上,如何学会在数据库众多表中查询记录变得至关重要了,所以为了学生更好地掌握这一点知识点,应广泛调动他们的学习兴趣,增强学习的主动性。
四、教学策略
职业技术学院课程本身的特点、知识及技能的传授应以典型“任务”为主,创造学生自主探究学习的平台,学生在教师的指导下带着任务通过实际操作、探究学习等方式,逐步完成任务。
五、教学过程
合理安排教学过程是教学成功的关键。因此,我把教学过程分为“情境感知,揭示课题——任务驱动,讲授新知——课堂小结,巩固新知”三部分。
(一)情境感知,揭示课题
为了让同学们对自己班级同学的情况有所了解,我们如何简便地查询呢?我们可以通过输入一些命令解决问题。这些命令就是我们这节课所要学习的SQL查询语言。设计思路:
SQL所包含的数据具有一定的规模,并且能快速地从众多表中查询到某个同学的情况,让学生体会到数据库在现实生活中的应用。
(二)任务驱动,讲授新知
1. 如何在SQL中使用查询命令?
任务一:
在SCHOOL数据库的CLASS表中查询所有的记录
Select * from class
1)步骤:略
2)分析刚才写的查询命令:
SELECT:表示这是一个查询语句
*:表示显示出符合条件记录的所有字段内容,如果在这输入的是一些逗号分隔的字段名,则查询结果只显示响应字段的内容。
FROM:表示从哪个表里查询。
3)写SQL命令时应注意的事项:
命令必须是英文的半角字母
字符型数据要用英文的单引号包含起来。
设计思路:
这既是课堂重点也是难点,通过两个层次推进的设疑,教师适当地理解、演示,使学生对SQL查询语言已消除了陌生感,并有了一定的理解。
2. 尝试练习
任务二:
查询表中头三条记录
通过本例讲解让学生掌握TOP关键字的用法
任务三:
查询姓名和年龄两列数据
通过本例讲解让学生掌握部分字段内容的查询
任务四:
查询年龄大于等于17而小于等于19的数据
通过本例讲解,让学生掌握比较运算符和逻辑运算符的应用,以及另一种方法BETWEEN…AND…关键字的用法
任务五:
查询健康状况为良好的所有数据
通过本例讲解,让学生掌握WHERE关键字的用法
任务六:
查询姓李的学生所有数据
通过本例讲解,让学生掌握LIKE关键字的用法
任务七:
查询健康状况为良好或一般的数据
通过本例讲解,让学生掌握IN关键字的用法
任务八:
查询中文成绩及格的数据
通过本例讲解,让学生掌握比较运算符的应用
任务九:
查询英语和中文的总成绩
通过本例讲解,让学生掌握为派生列起别名的方法
任务十:
学生练习:
查询一班各位同学的英语、中文成绩总分。
任务十一:
将中文成绩俺降序排列(升序asc)
通过本例讲解,让学生掌握ORDER BY关键字的应用
任务十二:
查询一班同学中文成绩排名状况(按降序)
通过本例讲解,让学生掌握WHERE条件和ORDER BY关键字综合应用
任务十三
查询各班中文总成绩
通过本例讲解,让学生掌握聚合函数和GROUP BY关键字的应用
任务十四
查询一班中文总成绩
通过本例讲解,让学生掌握聚合函数和GROUP BY关键字以及HAVING关键字的应用 任务十五:
利用class表中的姓名、中文、英文成绩创建一个名为jjnn的新表。
通过本例讲解,让学生掌握从源表中筛选一部分数据产生新表的方法。
设计思路:
这个环节我抛出了一个个任务,促使学生去自我探索和自主学习,达到掌握操作和使用的目的,激发学生的学习热情和创造积极性。
(三)课堂小结,巩固新知
这节课我们学习了SQL语言查询的使用方法,综合以上任务,不难得出SELECT语句的使用格式和方法(板书SELECT语句的格式):
〈SELECT语句〉::=
SELECT [ALL|DISTINCT]〈目标列表达式〉[别名] [ ,〈目标列表达式〉[别
名]]„
FROM 〈表名或视图名〉[别名][ ,〈表名或视图名〉[别名]]„
[WHERE〈条件表达式〉]
[GROUP BY 〈列名1〉[HAVING〈条件表达式〉]]
[ORDER BY 〈列名2〉[ASC|DESC]];
〈目标列表达式〉::=
*
|〈表名〉.*
|[〈表名〉.]〈列名表达式〉{,[〈表名〉.]〈列名表达式〉}
|〈集函数名〉([DISTINCT|ALL] *|列名)
〈集函数名〉::=
COUNT
|SUM
|AVG
|MAX
|MIN
〈条件表达式〉::=
1.„ θ „
2.„ [NOT] BETWEEN „ AND „
3.„ [NOT] IN(„)
4.„ [NOT] LIKE '„'
5.„ IS [NOT] NULL
6.[NOT] EXISTS 〈SELECT语句〉
7.〈条件表达式〉〈AND|OR〉〈条件表达式〉
对学生在操作中出现的问题再一次强调书写命令的注意事项。
六、教学反思
本节课,我的设计任务与学生的成绩有关,容易激起学生很大的关注。随着任务的深入,学习目标得到很好的落实,力争以学习目标为起点,又以学习目标为归宿。学习过程中要时刻关注学生的进展及出现的问题,对于学生的点滴进步给予及时的肯定;对于出现的问题,也是一种动态生成的教学资源,应善于捕捉,适时提出,引导学生分析并解决,实现“问题从学生中来,最终回到学生中去”,从而完善学生的意义建构。
第四篇:Sql语句查询
sql语句多表连接查询
在程序开发过程中,不仅可以对单一数据表进行查询,还可以进行多表查询,用户通过多表查询从多个表中提取出需要的数据。
多表查询可以分为内连接查询、外连接查询以及联合查询。
1.内连接查询
连接查询是指通过各个表之间共同列的关联性查询数据。连接查询分为内连接查询和外连接查询。内连接是将两个相互交叉的数据集合中重叠部分的数据行连接起来,返回表示两个数据集合之间匹配连接关系的数据行。
可以在FORM子句中使用INNER JOIN„ON„建立内连接,也可以在WHERE子句中指定连接条件建立内连接,例如:
select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID
也可以用下面的语句实现。
select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID
2.外连接查询
外连接是对内连接的扩充,除了将两个数据集合中重叠部分以内的数据行连接起来之外,还可以根据要求返回左侧或右侧数据集合中非匹配的数据,即左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。
l左外连接LEFT OUTER JOIN
左外连接LEFT OUTER JOIN逻辑运算符除了返回两个数据表中满足连接条件的行,它还返回任何在后一个数据表中没有匹配行的前一个数据表中的行。非匹配行的部分字段列作为空值返回。
l右外连接RIGHT OUTER JOIN
右外连接RIGHT OUTER JOIN是左外连接的反向连接。它除了返回两个数据表中满足连接条件的行,还返回任何在前一个数据表中没有匹配行的后一个数据表中的行。非匹配行的部分字段列作为空值返回。
3.使用UNION进行联合查询
使用UNION运算符可以进行联合查询。UNION运算符连接多个SELECT语句,将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中所有查询的全部行。使用UNION运算符遵循的规则如下:
(1)在使用UNION运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚集函数等)。
(2)在使用UNION组合的结果集中的相应列必须具有相同数据类型,或者两种数据类型之间必须存在可能的隐性数据转换,或者提供了显式转换。例如,在datetime数据类型的列和binary数据类型的列之间不能使用UNION运算符,除非提供了显式转换,而在money数据类型的列和int数据类型的列之间可以使用UNION运算符,因为它们可以进行隐性转换。
(3)结果集中列的名字或者别名是由第一个SELECT语句的选择列表决定的。
注意:对数据表进行联合查询时,结果集中行的最大数量是各表行数之“和”,而对数据表进行连接查询时,结果集中行的最大数量是各表行数之“积”。
第五篇:SQL查询语句
SQL查询语句
第一次:查询(显示)、条件、排序、空记录
第二次:通配符、生成表、文件(记事本)、数组、临时表,数学函数、分组、嵌套查询
第三次:插入记录、删除记录、更新记录 第四次:超连接、新建(打开)数据库、表的建立、表的删除、第五次 表结构的修改,添加记录 显示同张芳同一天出生的学生的信息 格式:
1、查询(显示)记录
显示所有男学生的学号,姓名,性别 区分:字段、条件、表名
Select 字段名列表(*)from 表名; where 条件表达式;
into table(dbf)文件名;
into cursor 临时表名;
into array 数组名;
to file 文件名;
order by 字段名列表(asc desc);
group by 字段名 having 条件;
显示所有大于平均分的学生的学号、姓名 显示同E4挣同样工资的职工信息
Select * from 职工 where 工资=(select 工资 from 职工 where 职工号=”E4”)职工(仓库号C(10),职工号 C(10),工资 N(10,2))
显示所有工资大于1500的员工的仓库号、职工号及所在的城市
2、插入记录
Insert into 表名(字段名列表)values(记录值)
3、删除记录
Delete from 表名 where 条件
4、更新记录
Update 表名 set 字段名=记录值; Where 条件
5、表的删除
drop table 表名
6、表的建立
create table 表名(字段名 数据类型(宽度))
7、表结构的修改select * from 职工where 职工号!=“E4” AND 工资=(select 工资 from 职工 where 职工号=“E4”)
alter table 表名
1)增加字段
alter table student add 身份证号 c(10)
2)删除字段
alter table student drop colum 身份证号
3)修改字段名
alter table student rename colum 出生日期 to 出生年月
4)增加字段有效性规则
alter table student alter 成绩 set check 成绩>=0 and 成绩<=100;
error “成绩输入错误,成绩应该在0-100之间”
5)删除字段有效性规则
alter table student alter 成绩 drop check 注意:
以上题目中用到的 SQL语句粘贴到计事本文件XY.TXT中(每行一条语句)。对两个表操作的方法:
1)同时打开两个表
select 仓库.仓库号,城市,职工号,工资 from 仓库,职工;
where 职工.仓库号=仓库.仓库号 and 工资=1250
2)超连接(内连接、左连接、右连接、全连
接)
内连接:只显示符合条件的记录
左连接:显示符合条件的记录及第一个表中不符合条件的记录
右连接:显示符合条件的记录及第二个表中不符合条件的记录
全连接:显示符合条件的记录及第一、二个表中不符合条件的记录
成绩表(score)
学号姓名课程名成绩 2001张三计算机10 2003张四英语20 2001张三语言30 2005张三数据40 2003张四计算机50
Select sum(成绩)from score group by 学号
Select sum(成绩)from score group by 课程名
select 字段名列表(*)from 表名;where 条件;
order by 字段名列表 asc|desc;
into table(dbf)表名;
into array 数组名;
to file 文件名;
into cursor 临时表名
题目练习
实现以下功能:在考生文件夹下,打开“陶的数据库”的数据库,并利用SQL语句在该数据库中新建一个表:gongzi(职工号 c(4),实发工资 n(7,0)),将zhigong表中基本工资大于1330(含1330)的记录存储在gongzi表中,其中实发工资为:基本工资+加班费(白天20,晚上30),最后将所有的SQL语句保存到考生目录下的sqlanswer.txt文件中(自行建立,一行一条语句)
open database 陶的数据库
create table gongzi(职工号 c(4),基本工资 n(7,2))
select 职工号,基本工资+白班*20+晚班*30 from zhigong;where 基本工资>1350 into array xy
insert into gongzi from array xy