泛微培训教材:SQL语句基本练习
(完整版)sql语句练习题及答案
(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。
学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。
2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。
2查询姓名中第2个字为“明”字的学⽣学号、性别。
3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。
数据库常用SQL语句练习(含答案)
Emp(员工表)和Dept(部门表)简单题1. 案例:查询没有上级领导的员工的编号,姓名,工资select empno,ename,sal from emp where mgr is null;2. 案例:查询emp表中没有奖金的员工的姓名,职位,工资,以及奖金select ename,job,sal,comm from emp where comm is null or comm=0;既可以是null,也可以是03. 案例:查询emp表中含有奖金的员工的编号,姓名,职位,以及奖金select ename,job,sal,comm from emp where comm>0;4. 案例:查询含有上级领导的员工的姓名,工资以及上级领导的编号select ename,sal,mgr from emp where mgr is not null;5. 案例:查询emp表中名字以‘S’开头的所有员工的姓名select ename from emp where ename like 's%'6. 案例:查询emp表中名字的最后一个字符是'S'的员工的姓名select ename from emp where ename like '%s'7. 案例:查询倒数的第2个字符是‘E’的员工的姓名select ename from emp where ename like '%e_'8. 案例:查询emp表中员工的倒数第3个字符是‘N’的员工姓名select ename from emp where ename like '%n__'9. 案例:查询emp表中员工的名字中包含‘A’的员工的姓名select ename from emp where ename like '%a%'10. 案例:查询emp表中名字不是以'K'开头的员工的所有信息select * from emp where ename not like 'k%';11. 案例:查询emp表中名字中不包含‘A’的所有员工的信息select * from emp where ename not like '%a%'12. 案例:做文员的员工人数(job= CLERK 的)select count(*) from emp where job='clerk';13. 案例:销售人员job: SALESMAN 的最高薪水select max(sal) from emp where job='salesman';14. 案例:最早和最晚入职时间select min(hiredate),max(hiredate) from emp;15. 案例:查询emp表中员工的编号,姓名,职位,工资,并且工资在1000~2000之间。
泛微培训教材:SQL语句基础共61页
泛微软件股份—Learning Day课件
查询记录
示例3 对查询结果记性计算:总金额 = 单价*数量 select danjia*shuliang from formtable_main_2 -----算术表达式 -----运算符优先级
泛微软件股份—Learning Day课件
目录
第一部分:SQL语句分类 第二部分:SELECT专题 第三部分:数据操纵语言DML 第四部分:数据定义语言DDL
泛微泛软微件软股件泛份股微-份新软-员协件工同股入管份职理—培解Le训决a课r方ni件案ng Day课件
查询记录
基本语法
数据定义语言(Data Definition Language,DDL)语句 CREATE ALTER DROP RENAME TRUNCATE
事务控制(Transaction Control, TC)语句 COMMIT ROLLBACK SAVEPOINT
数据控制语言(Data Control Language, DCL)语句 GRANT REVOKE
泛微软件股份—Learning Day课件
过滤查询结果
示例3 查询系统有效用户 select * from hrmresource where stauts in(0,1,2,3)
示例4 查询分部id = 5的有效用户 select * from hrmresource where stauts in(0,1,2,3) And subcompanyid1 = 5
SELECT [ALL|DISTINCT] <column|expression>[,<column|expression>]··· FROM <table|view>[,<table|view>]··· [WHERE <condition(s)>] [GROUP BY <column1>[HAVING<condition(s)_1>]] [ORDER BY <column2>[ASC|DESC]]
SQL四个基本语句练习及参考答案
ACCESS数据表结构:Class:班级信息表cour_cla_tea:课程—班级—教师对应关系表。
就是一门课程有什么班上由哪位老师任教course:课程信息表stu_mark:学生的成绩记录student:学生信息表teacher:教师信息表查询select:单表查询:1、查找显示所有管理员和老师的基本信息2、查找显示所有老师的基本信息3、查找显示“郭襄”老师的所有基本信息4、查找显示“古龙”管理员的密码5、查找显示“第二学期”中成绩不及格的信息多表查询:1、查找显示“周伯通”同学的所有课程成绩信息2、查找显示“段誉”同学不及格的课程及其分数3、查找显示有上“计算机通讯与网络”这门课程所有班别4、查找显示“01数本(2)班”所有的学生名单5、查找显示“01电本(1)班”的所有课程名称6、查找显示“计算机科学与技术”专业的所有学生7、查找显示“数据库原理”课程前10名的学生成绩,学生名称,并以成绩的降序排列8、查找显示“郭襄”老师担任的所有课程名称9、查找显示“01数本(1)班”所有不及格的课程及对应学生名单10、查找显示上“教育学”这门课的所有学生名单,学期数及其分数11、查找显示“莫声谷”老师教的所有班级名称及其对应专业名称其他查询:1、查询所有姓王的学生基本资料2、查询学习课程“软件工程”中,分数最高和分数最低的学生名字以及分数3、计算出“01数本(2)班”班学生学习“操作系统”课程的平均分4、计算出“王语嫣”同学“第二学期”的各们课程成绩总分与平均分更新update:1、将“郭襄”老师的密码改为“010012”2、把“王重阳”同学调到“01计本(1)班”班3、把“李莫愁”同学所有不及格的课程分数改为60分添加insert:1、在student添加一个学号为“ST01260113”,名字为“张三”,初始密码为“260113”,班别为“CL012601”的一个学生记录删除:1、删除“王重阳”同学的所有数据记录查询select:单表查询:1、查找显示所有管理员和老师的基本信息select * from teacher2、查找显示所有老师的基本信息select * from teacher where user_level='teacher'3、查找显示“郭襄”老师的所有基本信息select * from teacher where teach_name='郭襄'4、查找显示“古龙”管理员的密码select teach_pwd from teacher where teach_name='古龙'5、查找显示“第二学期”中成绩不及格的信息select * from stu_mark where year_term='第二学期' and mark<60多表查询:1、查找显示“周伯通”同学的所有课程成绩信息(三个表连接查询)select stu_name,course_name,mark from student,stu_mark,course where student.stu_name='周伯通' and student.stu_id=stu_mark.stu_id and stu_mark.course_id=course.course_id2、查找显示“段誉”同学不及格的课程及其分数(三个表连接查询)select stu_name,course_name,mark from student,stu_mark,course where student.stu_name='段誉' and mark<60 and student.stu_id=stu_mark.stu_id and stu_mark.course_id=course.course_id3、查找显示有上“计算机通讯与网络”这门课程所有班别(三个表连接查询)select course_name,class_name from course,class,cour_cla_tea where course_name='计算机通讯与网络' and course.course_id=cour_cla_tea.course_id and cour_cla_tea.class_id=class.class_id 4、查找显示“01数本(2)班”所有的学生名单(两个表连接查询)select class_name,stu_name from class,student where class.class_id=student.class_id and class_name='01数本(2)班'5、查找显示“01电本(1)班”的所有课程名称(三个表连接查询)select class_name,course_name from class,course,cour_cla_tea where class_name='01电本(1)班' and course.course_id=cour_cla_tea.course_id and cour_cla_tea.class_id=class.class_id6、查找显示“计算机科学与技术”专业的所有学生(两个表连接查询)select speciality_name,stu_name from class,student where speciality_name='计算机科学与技术' and class.class_id=student.class_id7、查找显示“数据库原理”课程前5名的学生成绩,学生名称,并以成绩的降序排列(三个表连接查询)select top 5 course_name,stu_name,mark from student,course,stu_mark where course_name='数据库原理' and course.course_id=stu_mark.course_id and stu_mark.stu_id=student.stu_id order by mark desc8、查找显示“郭襄”老师担任的所有课程名称(三个表连接查询)select distinct teach_name,course_name from course,teacher,cour_cla_tea where teach_name='郭襄' and teacher.teach_id=cour_cla_tea.teach_id and cour_cla_tea.course_id=course.course_id9、查找显示“01数本(1)班”所有不及格的课程及对应学生名单(四个表连接查询)select class_name,course_name,stu_name,mark from class,stu_mark,student,course where class_name='01数本(1)班' and class.class_id=student.class_id and student.stu_id=stu_mark.stu_id and stu_mark.course_id=course.course_name and mark<6010、查找显示上“教育学”这门课的所有学生名单,学期数及其分数(三个表连接查询) select course_name,stu_name,year_term,mark from course,student,stu_mark where course_name='教育学' and course.course_id=stu_mark.course_id and stu_mark.stu_id=student.stu_id10、查找显示“莫声谷”老师教的所有班级名称及其对应专业名称(三个表连接查询) select teach_name,class_name, speciality_name from teacher,cour_cla_tea,class where teach_name='莫声谷' and teacher.teach_id=cour_cla_tea.teach_id andcour_cla_tea.class_id=class.class_id其他查询:1、查询所有姓王的学生基本资料select * from student where stu_name like ‘王*’2、查询学习课程“软件工程”中,分数最高和分数最低的学生名字以及分数分数最高:select top 1 course_name,stu_name,mark as score from student,stu_mark,course where course_name='软件工程' and stu_mark.course_id=course.course_id and stu_mark.stu_id=student.stu_id order by mark desc分数最低:select top 1 course_name,stu_name,mark as score from student,stu_mark,course where course_name='软件工程' and stu_mark.course_id=course.course_id and stu_mark.stu_id=student.stu_id order by mark asc3、计算出“01数本(2)班”班学生学习“操作系统”课程的平均分select class_name,course_name,avg(mark) as 平均分from class,stu_mark,course,student where class.class_id=student.class_id and student.stu_id=stu_mark.stu_id and stu_mark.course_id=course.course_id and class_name='01数本(2)班' and course_name='操作系统' group by class_name,course_name4、计算出“王语嫣”同学“第二学期”的各门课程成绩总分与平均分select stu_name,year_term,sum(mark) as 总分,avg(mark) as 平均分from student,stu_mark where stu_name='王语嫣' and year_term='第二学期' and student.stu_id=stu_mark.stu_id group by stu_name,year_term更新update:1、将“郭襄”老师的密码改为“010012”update teacher set teach_pwd='010012' where teach_name='郭襄'2、把“王重阳”同学调到“01计本(1)班”班update student set class_id='CL012401'(注:这一题中,无法直接用一条语句达到目的,而是要先在class表中查出“01计本(1)班”的班级ID号CL012401)3、把“李莫愁”同学所有不及格的课程分数改为60分update stu_mark set mark=60 where mark<60 and stu_id in (select stu_id from student where stu_name='李莫愁')添加insert:在student添加一个学号为“ST01260113”,名字为“张三”,初始密码为“260113”,班别为“CL012601”的一个学生记录insert into student(stu_id,stu_name,stu_pwd) values(' ST01260113', '张三', '260113')删除:删除“王重阳”同学的所有数据记录delete from stu_mark where stu_id in (select stu_id from student where stu_name='王重阳') delete from student where stu_name='王重阳'(注:第一句先删除该学生的成绩记录,第二句删除该学生的基本信息记录。
SQL语句练习及参考答案
SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表⽰下列查询。
(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。
(2)建⽴性别只能为“男”、“⼥”的约束。
(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学⽣学号(sno)。
(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。
(6)删除所有男同学的选课记录。
1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。
SQL语句练习题(精品文档)
S Q L语言一、选择题1.S Q L语言是()的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、D E L E T E等。
其中最重要的,也是使用最频繁的语句是()。
A.S E L E C TB.I N S E R TC.U P D A T ED.D E L E T E3.在视图上不能完成的操作是()。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。
A.数据查询B.数据操纵C.数据定义D.数据控制5.S Q L语言中,删除一个视图的命令是()。
A.D E L E T EB.D R O PC.C L E A RD.R E M O V E6.在S Q L语言中的视图V I E W是数据库的()。
A.外模式B.模式C.内模式D.存储模式7.下列的S Q L语句中,()不是数据定义语句。
A.C R E A T E T A B L EB.D R O P V I E WC.C R E A T E V I E WD.G R A N T8.若要撤销数据库中已经存在的表S,可用()。
A.D E L E T E T A B L E SB.D E L E T E SC.D R O P T A B L E SD.D R O P S9.若要在基本表S中增加一列C N(课程名),可用()。
A.A D D T A B L E S(C N C H A R(8))B.A D D T A B L E S A L T E R(C N C H A R(8))C.A L T E R T A B L E S A D D(C N C H A R(8))D.A L T E R T A B L E S(A D D C N C H A R(8))10.学生关系模式S(S#,S n a m e,S e x,A g e),S的属性分别表示学生的学号、姓名、性别、年龄。
SQL语句练习及答案
sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。
select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。
select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。
select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。
select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。
select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。
select sname from student where sdept= 'cs' and sage<20;9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
基本的SQL语句练习
基本的SQL语句练习(学生课程表)创建表[c-sharp]view plaincopyprint?1.DROP TABLE IF EXISTS student;2.CREATE TABLE student(3.sno int auto_increment primary key,4.sname varchar(8),5.ssex varchar(3),6.sage int ,7.sclass varchar(6)8.) ENGINE=InnoDB DEFAULT CHARSET=utf8;9.INSERT INTO student(sname,ssex,sage,sclass) VALUES('李勇','男',20,'y01');10.INSERT INTO student(sname,ssex,sage,sclass) VALUES('刘晨','男',21,'y02');11.INSERT INTO student(sname,ssex,sage,sclass) VALUES('王敏','女',19,'y02');12.INSERT INTO student(sname,ssex,sage,sclass) VALUES('张力','男',25,'y05');13.DROP TABLE IF EXISTS course;14.CREATE TABLE course(o int auto_increment primary key,ame varchar(20),redit int18.) ENGINE=InnoDB DEFAULT CHARSET=utf8;19.INSERT INTO course(cname,ccredit) VALUES('C语言',5);20.INSERT INTO course(cname,ccredit) VALUES('数据库',5);21.INSERT INTO course(cname,ccredit) VALUES('开发模式_VB',5);22.DROP TABLE IF EXISTS sc;23.CREATE TABLE sc(24.sno int references student(sno) on delete cascade,o int references course(cno) on delete cascade,26.grade int27.) ENGINE=InnoDB DEFAULT CHARSET=utf8;28.INSERT INTO sc VALUES(1,1,90);29.INSERT INTO sc VALUES(1,2,95);30.INSERT INTO sc VALUES(2,1,55);31.INSERT INTO sc VALUES(4,3,null);select s.sname,sc.grade from student s,sc where s.sno = sc.sno and sc.grade<60;11、查询年龄在19-20岁(包括19、20)之间的同学姓名、班级、年龄select sname,sclass,sage from student where sage in (19,20);(19、20 比较特殊选项少可以使用in)select sname,sclass,sage from student where sage between 19 and 20;select sname,sclass,sage from student where sage>=19 and sage<=20;12、查询年龄不在19-20岁之间的同学姓名、班级、年龄select sname,sclass,sage from student where sage not in (19,20);select sname,sclass,sage from student where sage not between 19 and 20;select sname,sclass,sage from student where sage<19 or sage>20;13、查询y02班级和y05班的同学的姓名、性别select sname,sclass from student where sclass in ('y02','y05');select sname,sclass from student where sclass='y02' or sclass='y05';14、查询不是y02或者y05班的同学的姓名、性别select sname,sage from student where sclass not in('y02','y05');select sname,sage from student where sclass!='y02' and sclass!='y05';select sname,sage from student where not sclass='y02' and not sclass='y05';15、查所有姓刘的同学的姓名、学号、性别( " % "表示一个或者多个," _ "表示只占一个字符)select sname,sno,ssex from student where sname like'刘%';16、查所有姓张且全名只有2个汉子的同学的所有信息select * from student where sname like'张_';17、某些学生未考试查缺成绩的同学的学号和课程号select sno,cno,grade from sc where grade is null;18、查询所有成绩的同学的学号、课程号和成绩select sno,cno,grade from sc where grade is not null;19、查y02班年龄在20岁一下的姓名和年龄select sname,sage from student where sclass='y02' and sage<20;20、查选修1号课程的同学的学号和成绩,按成绩降序排序select sno,grade from sc where cno=1 order by grade desc;21、查全体同学信息查询结果按所在班级的班级名称按降序排列,同班同学按年龄升序排列select * from student order by sclassdesc,sageasc;22、查询学员的总人数select count(sno) from student;23、查选修课程学院人数select count(*) from sc;24、统计1号课的学院平均成绩select avg(grade) 平均成绩from sc where cno=1;25、查选修1号课和同学最高成绩select max(grade) from sc where cno=1;26、求各个课程号及相应选课人数select cno,count(*) 选课人数from sc group by cno;27、查选取1门以上课程的同学学号和课程个数select sno,count(cno) from sc group by sno having count(cno)>1;28、查每个学员及其选修课程情况select sno,cno from sc;29、查每个学员及其选修课程情况对没有选课的也要输出其姓名、学号、性别、班级(注意:是作外连接student是主表)select st.sname,st.sno,st.ssex,st.sclass,o,sc.gradefrom student st left join sc onst.sno = sc.sno order by st.sname;30、查选取2号课程且成绩在90分以上的同学select * from sc where cno=2 and grade>90;31、查询每个同学学号姓名,选课程名称及其成绩select stu.sno,stu.sname,ame,sc.gradefrom student stu join sc on stu.sno = sc.snojoin course c on o = o;或者select stu.sno,stu.sname,ame,sc.gradefrom student stu,coursec,scwhere stu.sno=sc.sno and o= oorder by o desc;32、查与刘晨在一个班的同学select * from student where sclass=(select sclass from student where sname='刘晨'); 33、选取C语言的同学学号和姓名select s.sno,s.snamefrom student s join sc on s.sno=sc.snojoin course c on o=owhere ame='C语言';或者select sno,sname from student where sno in(select sno from sc where cno in(select cno from course where cname='C语言'));34、查其他班级中比y02班某一同学大的同学姓名和年龄select sname,sage from studentwhere sclass<>'y02' andsage > (select min(sage) from student where sclass='y02');或者(加入any 关键字)select sname,sage from studentwhere sclass<>'y02' andsage >any (select sage from student where sclass='y02');35、查其他班中比y02班同学全部都大的同学姓名和年龄select sname,sage from studentwhere sclass!='y02' andsage > (select max(sage) from student where sclass='y02');或者(加入all 关键字)select sname,sage from studentwhere sclass!='y02' andsage >all (select sage from student where sclass='y02');36、查选取1号课程的学员的姓名(在与查询的集合的包含关系时,最好使用in 、any、all)select s.sname from student s,scwhere s.sno = sc.sno and o=1;或者(子查询)select sname from student where sno in(select sno from sc where cno=1);37、查没有选取1号课程的学员的姓名(注意:要过滤已经选取过1号的同学,因为可能某同学多选修课程)说明:如果是过滤集合,就只能用in/all/anyselect sname from student where sno not in(select sno from sc where cno=1);38、查y02班同学及年龄不大于19岁的学员(union)select * from student where sclass='y02' unionselect * from student where sage<=19;解析:y02班级的同学与全年纪年龄不大于19岁的学生,而(sage<=19 and sclass='y02')表示为y02班级同学“且”年龄不大于19岁的同学,与题意不符。
3-SQL语句练习题参考答案
标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。
A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。
B.SQL语言是一种高度过程化的语言。
C.SQL标准规定数据库是按三级模式结构构建。
D.SQL语言是关系型数据库的标准语言。
E.SQL语言是面向集合的语言。
2、SQL语言中,修改基本表结构的语句是( B )。
A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。
A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。
A.视图是一种“虚表”,它的数据被存放在基本表中。
B.视图提供了逻辑数据独立性。
C.不能通过视图来更新数据库中的数据。
D.视图能提供对数据的安全保护。
5、下面关于SELECT语句的叙述中,不正确的是(C)。
A.SELECT产生的结果是一个集合。
B.HA VING子句必须与GROUP BY子句一起使用。
C.可以省略FROM子句。
D.可以省略WHERE子句。
二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。
2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。
3、向表中插入元组时,主键的值不能取(NULL )值。
4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。
5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。
三、判断题1、SQL语言是面向集合操作的语言。
√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。
×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。
√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。
SQL基本练习题(最新整理)
第一阶段题目:以下练习题是根据初始化到数据库中的表执行的,请务必先执行如下建表语句。
create table s1_student( sno varchar2(10) primary key, sname varchar2(30), sbirthday varchar2(30), ssex varchar2(10),sclass varchar2(10) );create table s1_teacher( tno varchar2(10) primary key, tname varchar2(30),tsex varchar2(10),tbirthday varchar2(30),prof varchar2(30),depart varchar2(30) );create table s1_course( cno varchar2(10), cname varchar2(30), tno varchar2(10) ); create table s1_score( sno varchar2(10), cno varchar2(10), degree number );create table s1_grade( low number, upp number, rank varchar2(2) );/*******初始化学生表s1_student******/insert into s1_student values ('108', '曾华', '1997/9/1', '男', '95033');insert into s1_student values ('105', '匡明', '1995/10/2', '男', '95031');insert into s1_student values ('107', '王丽', '1996/1/23', '女', '95033');insert into s1_student values ('101', '李军', '1996/2/20', '男', '95033');insert into s1_student values ('109', '王芳', '1995/2/10', '女', '95031');insert into s1_student values ('103', '陆君', '1994/6/3', '男', '95031');commit;/*******初始化教师表s1_teacher*******/insert into s1_teacher values ('804', '李诚','男','1979-12-2','副教授','计算机系'); insert into s1_teacher values ('856', '张旭','男','1985-3-12','讲师','电子工程系'); insert into s1_teacher values ('825', '王萍','女','1989-5-2','助教','计算机系');insert into s1_teacher values ('831', '刘冰','女','1988-8-2','助教','电子工程系'); commit;/*******初始化课程表s1_course********/insert into s1_course values ('3-105', '计算机导论', '825');insert into s1_course values ('3-245', '操作系统', '804');insert into s1_course values ('6-166', '数据电路', '856');insert into s1_course values ('9-888', '高等数学', '800');commit;/********初始化成绩表s1_score*********/insert into s1_score values ('103', '3-245', 86);insert into s1_score values ('105', '3-245', 75);insert into s1_score values ('109', '3-245', 68);insert into s1_score values ('103', '3-105', 92);insert into s1_score values ('105', '3-105', 88);insert into s1_score values ('109', '3-105', 76);insert into s1_score values ('101', '3-105', 64);insert into s1_score values ('107', '3-105', 91);insert into s1_score values ('108', '3-105', 78);insert into s1_score values ('101', '6-166', 85);insert into s1_score values ('107', '6-106', 79);insert into s1_score values ('108', '6-166', 81);commit;/********初始化成绩分类表s1_grade*********/insert into s1_grade values ('90', '100', 'A');insert into s1_grade values ('80', '89', 'B');insert into s1_grade values ('70', '79', 'C');insert into s1_grade values ('60', '69', 'D');insert into s1_grade values ('0', '59', 'E');commit;1.查询s1_student表中的所有记录的Sname、Ssex和Class列.select sname,ssex,sclass from s1_student;2.查询教师所有的单位即不重复的Depart列.select distinct depart from s1_teacher;3.查询s1_student表的所有记录.select * from s1_student;4.查询s1_score表中成绩在60到80之间的所有记录.select * from s1_score where degree between60and80;5.查询s1_score表中成绩为85,86或88的记录.select * from s1_score where degree in (85,86,88);6.查询s1_student表中“95031”班或性别为“女”的同学记录.select * from s1_student where sclass='95031'or ssex='女';7.以Class降序查询s1_student表的所有记录.select * from s1_student order by sclass desc;8.以Cno升序、Degree降序查询s1_score表的所有记录。
泛微培训教材:SQL语句基础
泛微软件股份—Learning Day课件
过滤查询结果
逻辑操作符 逻辑操作符允许使用逻辑条件来限制所查询的 结果 操作符 说明
x AND y
x OR y
当x和y都为true时,返回true
泛微软件股份—Learning Day课件
介绍两个函数
Case when
示例:显示员工姓名,性别
select lastname ,case when sex='0' then '男' when sex='1' then '女' end from HrmResource NVL( string1, replace_with)。 Oracle 特有
泛微软件股份—Learning Day课件
过滤查询结果 示例3 查询系统有效用户 select * from hrmresource where stauts in(0,1,2,3) 示例4 查询分部id = 5的有效用户 select * from hrmresource where stauts in(0,1,2,3) And subcompanyid1 = 5 示例5
示例2 查询2014-01这个月新建的流程 Select * from workflow_requestbase where createdate >=‘2014-01-01’ and createdate <=‘2014-01-31’ 或者 Select * from workflow_requestbase where createdate between ‘2014-01-01’ and ‘2014-01-31’
简单的SQL语句练习大全
简单的SQL语句练习大全一:本题用到下面三个关系表:CARD借书卡。
CNO 卡号,NAME姓名,CLASS 班级BOOKS图书。
BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY库存册数BORROW借书记录。
CNO 借书卡号,BNO 书号,RDA TE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求实现如下15个处理:1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。
//表名borrow2.找出借书超过5本的读者,输出借书卡号及所借图书册数。
3.查询借阅了"水浒"一书的读者,输出姓名及班级。
4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
5.查询书名包括"网络"关键词的图书,输出书号、书名、作者。
6.查询现有图书中价格最高的图书,输出书名及作者。
7.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。
8.将"C01"班同学所借图书的还期都延长一周。
9.从BOOKS表中删除当前无人借阅的图书记录。
10.如果经常按书名查询图书信息,请建立合适的索引。
11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SA VE表中(注ORROW_SA VE表结构同BORROW表)。
12.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。
13.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。
14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。
sql语句基础题
sql语句基础题SQL (Structured Query Language) 是一种用于管理和操作关系型数据库的语言。
它允许用户从数据库中检索数据、插入新数据、更新和删除现有数据以及执行其他管理任务。
在本篇文档中,我将介绍一些 SQL 基础题,并提供相应的SQL 语句来解决这些问题。
1. 创建表格首先,我们需要创建一些表格来存储数据。
下面是一个例子,创建一个名为 "users" 的表格,用于存储用户信息:```CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50),age INT,email VARCHAR(100));```这个 SQL 语句使用 `CREATE TABLE` 关键字来创建一个名为"users" 的表格。
表格包含四个列:id、name、age 和 email。
`id` 列被标识为主键,这意味着它的值必须是唯一的。
`name`、`age` 和 `email` 列分别用于存储用户的姓名、年龄和电子邮件地址。
`VARCHAR` 是一种用于存储字符串的数据类型,可以指定最大长度。
2. 插入数据接下来,我们向表格中插入一些数据。
下面是一个例子,向"users" 表格中插入一条用户记录:```INSERT INTO users (id, name, age, email)VALUES(1,'JohnDoe',25,'********************');```这个 SQL 语句使用 `INSERT INTO` 关键字将数据插入到"users" 表格中。
它指定要插入的列(id、name、age 和email),以及这些列的值。
在本例中,我们插入了一条用户记录,其中 id 为 1,name 为 'John Doe',age 为 25,email 为'********************'。
sql语句习题
sql语句习题SQL语句说明书1)显示T_BookInfo表中所有字段的值。
SELECT*FROM T_BookInfo2)查询T_Teacher表中所有记录的TeacherCode、TeacherName、EnterDate和Title字段信息。
SELECT TeacherCode,TeacherName,EnterDate,TitleFROM T_Teacher3)查询男教师的姓名(TeacherName),显示时将字段名TeacherName改为“姓名”。
SELECT TeacherName AS姓名,SexFROM T_TeacherWHERE Sex='男';4)查询2007年以后出版的教材名称(BookName)、出版日期(PublishDate)和库存量(StockNum),显示时字段标题分别为:教材名称、出版日期和库存量。
SELECT BookName AS教材名称,PublishDate AS出版日期,StockNum AS库存量FROM T_BookInfoWHERE YEAR(PublishDate)>2007;5)查询所有教材的出版社代码(PublisherCode),将重复的记录去掉。
SELECT DISTINCT PublisherCodeFROM T_BookInfo6)查询学生订书量(StuBookNum)最大的3个记录,显示教材代号(BookCode)和学生订书量(StuBookNum)。
SELECT TOP3BookCode,StuBookNumFROM T_BookOrderORDER BY StuBookNum DESC7)查询学生订书量(StuBookNum)在150到250之间的教材信息。
SELECT*FROM T_BookInfoWHERE BookCode IN(SELECT BookCodeFROM T_BookOrderWHERE StuBookNum BETWEEN150AND250)8)查询每一种教材的学生订书总量。
复杂SQL练习题
查询至少选修了1号学生所选全部课 程的学生编号
另一种解法
• (1)这些学生所选课程 = 集合A • (2) 1号学生所选课程 = 集合B B-A ≡ Select cno From SC where sno=‘1’ and (该课程不属于集合A) ≡ Select cno From SC where sno=‘1’ and (该课程没有被这些学生选择) ≡ Select cno From SC where sno=‘1’ and (NOT EXISTS (这些学生选择该课程的元组))
学院(学院代码,学院名称); 学生(学号,姓名,性别,学院代码); 教师(教师号,教师姓名,学院代码); 课程(课程号,课程名,学时); 学习(学号,课程号,成绩); 开课(教师号,课程号);
15
求选修了雷老师所授全部课程的学 生姓名和学院名称
SQL主体结构:
• Select 姓名,学院名称 From 学生, 学院 Where (学生.学院代码=学院.学院代码) And (该学生选修了雷老师所授全部课程) • 复杂条件:该学生选修了雷老师所授全部课程 数学描述 (1)该学生所选课程 = 集合A (2)雷老师所授全部课程 = 集合B B IN A = True
• B-A ≡ 从“1号学生所选课程”中去除 “属于集合A 的课程” ≡ Select cno From SC where sno=‘1’ and (该课程不属于集合A)
Select cno From SC where sno=‘1’ and ( cno NOT IN (Select cno From SC where sno=‘这些学生的sno’) )
9
查询被所有学生选修的课程编号
SQL语句练习操作
实验一 SQL语言的使用一相关知识SQL语言由4部分组成:数据定义语言DDL、数据操纵语言DML、数据控制语言DCL 和其他,其功能如下:(1)数据定义语言DDL:主要用于定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引等,扩展的DDL还包括存储过程、函数、对象、触发器等的定义。
(2)数据操纵语言DML:主要用于对数据库中的数据进行检索和更新两大类操作,其中更新操作包括插入、删除和更新数据。
(3)数据控制语言DCL:主要用于对数据库中的对象进行授权、用户维护(包括创建、修改和删除)、完整性规则定义和事务定义等。
(4)其他:主要是嵌入式SQL语言和动态SQL语言的定义,规定了SQL语言在宿主语言中使用的规则。
扩展的SQL还包括数据库数据的重新组织、备份和回复等。
二数据操纵语言练习2.1 订单管理数据库订单管理数据库由5张表组成,分别为员工表、客户表、商品表、订单主表和订单明细表。
员工表中记录当前销售公司所有的员工详细信息,客户表中记录与当前销售公司有业务往来的客户单位信息,商品表中记录当前销售公司可销售的商品,客户每次的购买活动形成一条订单记录,并指定一名销售公司员工对其进行负责,一个订单可能同时购买多种商品,所以订单主表中只记录以订单为单位的相关信息,而订单明细中再记录具体商品的销售情况。
2.2 实验内容2.2.1 查询操作2.2.1.1 单表查询(1)查询全部职工的基本信息(2)查询所有职工的部门、职工号、姓名和薪水(3)查询全体职工的姓名、年龄、所属部门,并用汉语显示表头信息(4)查询1973年出生且为职员的员工信息(5)查询业务科或财务科的职工姓名、性别和所在部门,仅显示前面5位职工(6)查询薪水为2000或4000的职工编号、姓名、所在部门和薪水(7)查询薪水在3000~4000的职工姓名和薪水(8)查询薪水不在3000~4000的职工姓名和薪水(9)查询所有姓张的职工姓名、所属部门和性别(10)查询所有姓张且全名为三个汉字的职工姓名(11)查询既不在业务科也不在财务科的职工姓名、性别和所在部门(12)查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄(13)查询6月出生的员工编码、姓名、出生日期,并按出生日期的降序输出(14)查询职工工资最高的前10%的职工编号、职工姓名和工资(15)查询每个业务员的订单数量(16)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资(17)统计每种商品的销售数量和金额,并按销售金额的升序排序输出(18)查询订单中至少包含3种(含3种)以上商品的订单编号及订购次数,且订购的商品数量在3件(含3件)以上。
01_【基本SQL语句】SQL语法练习(一)
SQL语法练习(一)使用scott/tiger用户下的emp表(数据库自带的表)完成下列练习,表的结构说明如下:3、找出佣金高于薪金的员工。
5、找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。
部门编号为:10、206、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。
10 → Manager20 → CLERKsal > 2000 → MANAGER、CLERK NOT7、找出收取佣金的员工的不同工作。
8、找出不收取佣金或收取的佣金低于100的员工。
9、找出各月倒数第3天受雇的所有员工。
思路:求出现在月的最后一天last_day10、找出早于12年前受雇的员工。
思路:先求出今年→ sysdateselect * from emp where to_char(sysdate,'yyyy')-12>to_char(hiredate,'yyyy') ;11、以首字母大写的方式显示所有员工的姓名。
12、显示正好为5个字符的员工的姓名。
长度:length14、显示所有员工姓名的前三个字符。
15、显示所有员工的姓名,用“a”替换所有“A”replace →表示替换,指定的字符替换17、显示员工的详细资料,按姓名排序。
Select * from emp where order by ename18、显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。
Select * from emp where order by hiredate19、显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序。
20、显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面。
SQL练习
SQL练习为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名Select S#,SN FROM SWhere [S#] IN(Select [S#] FROM C,SCWhere C.[C#]=SC.[C#]AND CN=N'税收基础')2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位5. 查询选修了课程的学员人数6. 查询选修课程超过5门的学员学号和所属单位题目2已知关系模式:S (SNO,SNAME) 学生关系。
SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。
CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师SC(SNO,CNO,SCGRADE) 选课关系。
SCGRADE 为成绩1. 找出没有选修过“李明”老师讲授课程的所有学生姓名实现代码:Select SNAME FROM SWhere NOT EXISTS(Select * FROM SC,CWhere/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,OAND CNAME='李明'AND SC.SNO=S.SNO)2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩--实现代码:Select S.SNO,S.SNAME,A VG(SC.SCGRADE) A VG_SCGRADE FROM S,SC where exists (Select SNOFROM SCWhere SCGRADE<60GROUP BY SNOHA VING COUNT(DISTINCT CNO)>=2) And Where S.SNO=A.SNO AND SC.SNO=A.SNOGROUP BY S.SNO,S.SNAME3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名--实现代码:Select S.SNO,S.SNAMEFROM S,(Select SC.SNOFROM SC,CWhere/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,OAND /doc/a117418342.html,AME IN('1','2')GROUP BY SNOHA VING COUNT(DISTINCT CNO)=2)SC Where S.SNO=SC.SNO4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号--实现代码:Select S.SNO,S.SNAMEFROM S,(Select SC1.SNOFROM SC SC1,C C1,SC SC2,C C2Where/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,O AND /doc/a117418342.html,='1'AND/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,O AND /doc/a117418342.html,='2'AND SC1.SCGRADE>SC2.SCGRADE)SC Where S.SNO=SC.SNO5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩--实现代码:Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]FROM S,(Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADEFROM SC SC1,C C1,SC SC2,C C2Where/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,O AND /doc/a117418342.html,='1'AND/doc/a117418342.html,O=http://www.doc /doc/a117418342.html,O AND /doc/a117418342.html,='2'AND SC1.SCGRADE>SC2.SCGRADE)SC Where S.SNO=SC.SNOoracle Certification Program (OCP认证)的题目(1) A 表中有100条记录.Select* FROM A Where A.COLUMN1 = A.COLUMN1这个语句返回几条记录? (简单吧,似乎1秒钟就有答案了:)(2) Create SEQUENCE PEAK_NOSelect PEAK_NO.NEXTVAL FROM DUAL --> 假设返回110秒中后,再次做Select PEAK_NO.NEXTVAL FROM DUAL --> 返回多少?(3) SQL> connect sys as sysdbaConnected.SQL> insert into dual values ( 'Y');1 row created.SQL> commit;Commit complete.SQL> select count(*) from dual;COUNT(*)----------2SQL> delete from dual;commit;-->DUAL里还剩几条记录?JUST TRY IT内容摘要:一些高难度的SQL面试题以下的null代表真的null,写在这里只是为了让大家看清楚根据如下表的查询结果,那么以下语句的结果是(知识点:not in/not exists+null)关键词:SqlServer 面试题数据库面试题本文地址:/doc/a117418342.html,/post/2007072807. html内容正文:一些高难度的SQL面试题以下的null代表真的null,写在这里只是为了让大家看清楚根据如下表的查询结果,那么以下语句的结果是(知识点:not in/not exists+null)SQL> select * from usertable;USERID USERNAME----------- ----------------1 user12 null3 user34 null5 user56 user6SQL> select * from usergrade;USERID USERNAME GRADE---------- ---------------- ----------1 user1 902 null 807 user7 808 user8 90执行语句:select count(*) from usergrade where username not in (select username from usertable);select count(*) from usergrade g where not exists(select null from usertable t where /doc/a117418342.html,erid=http://www.d /doc/a117418342.html,erid and /doc/a117418342.html,ername=http://ww /doc/a117418342.html,ername);结果为:语句1( 0 ) 语句2 ( 3 )A: 0 B:1 C:2 D:3 E:NULL2在以下的表的显示结果中,以下语句的执行结果是(知识点:in/exists+rownum)SQL> select * from usertable;USERID USERNAME----------- ----------------1 user12 user23 user34 user45 user5SQL> select * from usergrade;USERNAME GRADE---------------- ----------user9 90user8 80user7 80user2 90user1 100user1 80执行语句Select count(*) from usertable t1 where username in(select username from usergrade t2 where rownum <=1);Select count(*) from usertable t1 where exists(select 'x' from usergrade t2 where /doc/a117418342.html,ername=http://ww /doc/a117418342.html,ername and rownum <=1);以上语句的执行结果是:( ) ( )A: 0 B: 1 C: 2 D: 3根据以下的在不同会话与时间点的操作,判断结果是多少,其中时间T1<t2<……<tn。
Ecology9.0常用Sql场景培训资料
Sql几个概念:表、列、字段类型查询-select1.查询某表所有数据:select * from 表名例:查询人力资源表中所有信息Select * from hrmresource2.精确查询和模糊查询-where/like:select * from 表名where 字段=123 //*表示查询出此表中满足字段=12的所有数据,*改为具体字段则表示具体数据列,此条件为完全匹配(where 字段Like’%1%’ //模糊匹配,%位置表示模糊匹配位置,例如,%1则会查出test01)例:●条件查询:在workflow_base表中查询id小于50的流程路径Select * from workflow_base where id<50●多条件精确查询:在workflow_base表中查询id小于50并且id大于10的流程路径Select * from workflow_base where id<50 and id>10●条件之间是‘或’的关系:在workflow_base表中查询id 等于1或者3的流程路径Select * from workflow_base where id in (1,3)Select * from workflow_base where id =1 or id = 3●模糊查询:查询出人力资源表中所有姓'张'的人员信息select * from hrmresource where lastname like ‘张%’3.定义列名-as:select A as XX,B as XX from 表名//as 将搜出的这两列信息表头重新命名定义别名,不影响数据,as可不加,A、B表示数据库字段名例:查询workflow_base表中workflowtype的值,并设置别名叫流程类型Select workflowtype as 流程类型from workflow_base4.查询-数据排序-order byselect A,B,C from 表名order by 字段desc //desc降序、asc升序,不写默认asc 例:查询workflow_base表中的所有流程路径,按照id降序排序Select * from workflow_base order by id desc5.查询前十条-top:select top 10 * from 表名order by A desc , B asc //根据多个进行排序例:查询workflow_base表中的前5条流程路径Select top 5 * from workflow_base6.数据去重:过滤掉重复的值-distinctselect distinct X,Y from 表名例:查询workflow_base表中workflowtype 的值,并排除重复的值Select distinct workflowtype from workflow_base7.查询-计数-count:对一些重复性数据进行分类计数,不统计null值select count(*/字段)as 计数列命名from 表名where XXX group by 分组字段注意使用Group By规则:(1)不能Group By非标量基元类型的列,如不能Group By text或image类型的列;(2)不能将表中不存在的列进行排序;例:统计workflow_base表中每个流程类型下面的流程路径数量,并按照workflowtype 进行升序排序Select count(*) from workflow_base group by workflowtype order by workflowtype asc8.查询-求平均值avg、最大值Max、最小值MinSELECT AVG(字段) ,MAX(字段) ,Min(字段) FROM 表名例:查询出合同信息表中的平均金额、最大金额和最小金额select avg(htje) 平均合同额,MAX(htje) 最高合同金额,Min(htje) 最少合同金额from formtable_main_219.多表查询:例:查询出各个路径的路径类型名称select workflowname,workflowtype, (select typename from workflow_type where id=workflowtype)as 类型from workflow_base新增/插入-insertinsert into 表名(字段A,字段B)values(’插入值’,’插入值’)//文本要加单引号(不加文本进不去),数字不用加,值与字段顺序对应,否则无法插入例:往workflow_base 表中插入一条路径名为test的数据Insert into workflow_base(workflowname,workflowtype,formid,isvalid) values('test',1,1,1)更新/修改-update:update 表名set A=’123’ where 条件//更改表单中满足条件的数据的字段A的值为123,没有条件即为所有,为避免操作失误,建议先进行查询,以验证条件是否正确,尤其是数据较复杂时。