SQL语句之简单查询
- 格式:doc
- 大小:42.50 KB
- 文档页数:3
数据库联表查询sql语句实例
以下是一个简单的数据库联表查询的SQL语句示例:
假设我们有两个表,一个是学生表(Students),另一个是班级表(Classes),它们之间存在一对多的关系,即一个班级可以有多个学生,但一个学生只属于一个班级。
我们想要查询学生的姓名以及对应的班级名称。
```sql
SELECT ,Classes.class_name
FROM Students
JOIN Classes ON Students.class_id=Classes.class_id;
```
在这个SQL语句中:
-`SELECT`关键字用于选择我们要查询的列,这里选择了学生表中的姓名
()和班级表中的班级名称(Classes.class_name)。
-`FROM`关键字指定了我们要从哪些表中查询数据,这里是学生表(Students)。
-`JOIN`关键字用于将两个表连接起来,这里我们使用了内连接(INNER JOIN),并且指定了连接条件,即学生表中的班级ID(Students.class_id)等于班级表中的班级ID (Classes.class_id)。
-最后,我们使用了`ON`关键字来指定连接条件。
这样,我们就可以通过这个SQL语句查询出学生的姓名以及对应的班级名称了。
sql语句面试题及答案一、基本查询1. 简单查询请问如何查询一个表中的所有记录?答:可以使用SELECT * FROM table_name; 命令来查询表中的所有记录。
2. 条件查询如果我只想查询特定条件下的记录,例如查询年龄大于30的员工信息,应该怎么做?答:可以使用WHERE子句来进行条件查询,语句如下:SELECT * FROM employees WHERE age > 30;3. 限制查询结果在查询时,如果只想获取前5条记录,应该如何操作?答:可以使用LIMIT关键字来限制查询结果的数量,语句如下:SELECT * FROM table_name LIMIT 5;二、聚合查询1. 计数如何计算某个表中的记录数?答:可以使用COUNT()函数来计算表中的记录数,语句如下:SELECT COUNT(*) FROM table_name;2. 求和如果需要计算某列的总和,例如计算销售总额,应该怎么做?答:可以使用SUM()函数来计算某列的总和,语句如下:SELECT SUM(sales_amount) FROM sales_table;3. 平均值如何求某列的平均值,比如平均工资?答:可以使用AVG()函数来计算某列的平均值,语句如下:SELECT AVG(salary) FROM employees;三、分组查询1. 分组统计请问如何按照某个字段进行分组,并计算每个分组的记录数?答:可以使用GROUP BY子句来进行分组统计,语句如下:SELECT department, COUNT(*) FROM employees GROUP BY department;2. 多列分组如果需要按照多个字段进行分组,应该如何操作?答:可以在GROUP BY子句中列出所有需要分组的字段,语句如下:SELECT department, job_title, COUNT(*) FROM employees GROUP BY department, job_title;3. 分组聚合运算在分组查询中,如何对每个分组执行聚合运算,例如计算每个部门的最高工资?答:可以使用GROUP BY子句结合聚合函数来进行分组聚合运算,语句如下:SELECT department, MAX(salary) AS max_salary FROM employees GROUP BY department;四、连接查询1. 内连接如何查询两个表中有关联的记录?答:可以使用INNER JOIN来查询两个表中有关联的记录,语句如下:SELECT * FROM table1 INNER JOIN table2 ON mon_field = mon_field;2. 左连接如果需要查询左表的所有记录,以及右表中与之关联的记录,没有关联的则显示NULL,应该怎么做?答:可以使用LEFT JOIN来实现,语句如下:SELECT * FROM table1 LEFT JOIN table2 ON mon_field = mon_field;3. 右连接请问如何查询右表的所有记录,以及左表中与之关联的记录?答:可以使用RIGHT JOIN来实现,语句如下:SELECT * FROM table1 RIGHT JOIN table2 ON mon_field = mon_field;五、子查询1. 非相关子查询在查询时,如果需要在WHERE子句中使用一个SELECT语句作为条件,应该怎么做?答:可以使用非相关子查询来实现,语句如下:SELECT * FROM table1 WHERE column_name IN (SELECT column_name FROM table2);2. 相关子查询如果子查询需要引用外部查询的列,应该怎么做?答:可以使用相关子查询,在子查询中使用外部查询的列,语句如下:SELECT * FROM table1 WHERE column_name = (SELECT column_name FROM table2 WHERE related_column = table1.related_column);六、更新和删除操作1. 更新数据请问如何使用SQL语句来更新表中的记录?答:可以使用UPDATE语句来更新表中的记录,语句如下:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;2. 删除数据如果需要删除表中的某些记录,应该如何操作?答:可以使用DELETE语句来删除记录,语句如下:DELETE FROM table_name WHERE condition;七、排序和索引1. 排序查询结果如何对查询结果进行排序?答:可以使用ORDER BY子句对查询结果进行排序,语句如下:SELECT * FROM table_name ORDER BY column_name ASC/DESC;2. 创建索引为了提高查询效率,如何为表中的列创建索引?答:可以使用CREATE INDEX语句来创建索引,语句如下:CREATE INDEX index_name ON table_name (column_name);通过以上问题的探讨,我们了解了SQL语句在面试中常见的问题及答案。
SQL语法一、SQL简单查询㈠SELECT语句的语法格式SELECT语句是用户对数据库提出问题的基础。
当创建并执行一个SELECT语句时,其实就是在“查询”数据库。
一个SELECT语句由几个独立的关键字组成,这些关键字被称为子句,可以使用子句的多种形式来定义SELECT语句,从而获得想要的信息。
这些子句中有些是必需的,而另外一些是可选择的。
另外,每个子句都有一个或多个关键字,这些关键字由必须值和可选值来描述。
虽然SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:SELECT select_list[ INTO new_table ]FROM table_source[ WHERE search_condition ][ GROUP BY group_by_expression ][ HA VING search_condition ][ ORDER BY order_expression [ ASC | DESC ] ]SELECT语句中的各子句的功能如下:●SELECT子句:这是SELECT语句中必须包含的最主要的子句,用户可以使用该子句指定查询的结果集中想要显示的字段。
这些字段可以是从用户所指定的一个表或视图中提取出来的,也可以是同时从多个表中取出的。
同时在SELECT子句中也可以使用一些函数和公式。
●INTO子句:该子句用于创建新表并将结果行从查询插入到新表中。
用户若要执行带 INTO 子句的 SELECT 语句,必须在目的数据库内具有 CREATE TABLE 权限。
●FROM子句:这是SELECT语句中仅次于SELECT的子句,也是对数据库查询中的必选项。
FROM用来指定SELECT子句中的字段是从哪个表或者视图中取出的。
●WHERE子句:该子句是一个可选项。
其功能是用来过滤显示结果。
只有符合其<search_condition >所指定条件的记录才会在结果中显示出来。
实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
三、完成情况:成功完成各项查询任务查询的sql语句如下:SELECT*FROM SWHERE CITY='天津';SELECT*FROM PWHERE COLOR='红'AND WEIGHT>=14;SELECT*FROM JWHERE JNAME like'%厂';SELECT*FROM S,JWHERE S.CITY=J.CITY;select SPJ.SNO,S.SNAME,SPJ.PNO,P.PNAME,SPJ.JNO,J.JNAME,SPJ.QTYfrom S,P,J,SPJwhere S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND J.JNO=SPJ.JNOORDER BY QTY;select*from S,PSELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM J LEFT JOIN SPJ on(J.JNO=SPJ.JNO);SELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM J right JOIN SPJ on(J.JNO=SPJ.JNO);SELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM SPJ right JOIN J on(J.JNO=SPJ.JNO);四、实验结果:①查询所有“天津”的供应商明细;SNO SNAME STATUS CITYS1 精益 20 天津S4 丰盛泰 20 天津②查询所有“红色”的14公斤以上的零件。
一、简单查询:基本语法:SELECT*FROMtb_name;查询全部SELECTfield1,field2FROMtb_name;投影SELECT[DISTINCT]*FROMtb_nameWHEREqualification;选择说明:FROM子句:要查询的关系表、多个表、其它SELECT语句WHERE子句:布尔关系表达式,主要包含如下这几类表达式:比较:=、>、>=、<=、<逻辑关系:ANDORNOTBETWEEN...AND...:在两个值之间LIKE‘’%:任意长度任意字符_:任意单个字符REGEXP,RLIKE:正则表达式,此时索引无效INISNULLISNOTNULL如下查询本博客的wp-links和wp_posts表:mysql>select*fromwp_links;查询全部mysql>selectlink_name,link_urlfromwp_links;投影+-------------------+--------------------------------------+|link_name|link_url|+-------------------+--------------------------------------+|腾讯微博|/toxingwang||新浪微博|/gz100ww||51CTO技术博客|/|+-------------------+--------------------------------------+10rowsinset(0.00sec)mysql>selectID,post_title,post_datefromwp_posts where ID>1290andpost_status='publish';选择+------+----------------------------------------------------------------+----------------------+|ID|post_title|post_date|+------+----------------------------------------------------------------+----------------------+|1291|【转】HP3PAR存储概念之三|2013-08-2917:21:27||1298|【转】HP3PAR存储概念之四|2013-08-2917:22:33||1351|【转】XenDesktop5.5+vSphere5创建虚拟机报错|2013-09-0417:41:26||1357|linux下强大的网络工具Netcat|2013-09-0922:26:45||1360|MySQL常用命令、技巧和注意事项|2013-09-2011:04:15||1369|【转】数据库设计原理知识--B树、B-树、B+树、B*树都是什么|2013-09-2112:30:18||1379|MySQL基本SQL语句之常用管理SQL|2013-09-2112:39:23|+------+----------------------------------------------------------------+---------------------+7rowsinset(0.01sec)对查询结果排序:ORDERBYfield_name{ASC|DESC}如下:mysql>selectID,post_title,post_datefromwp_postswhereID>1290andpost_status='publish'ORDERby ID;##升序,ID是排序的字段mysql>selectID,post_title,post_datefromwp_postswhereID>1290andpost_status='publish'ORDERby ID DES C;##降序字段别名:ASselectcol_name AS COL_Aliases…:对字段使用别名selectcol_name,…fromtb_nameAStb_Aliases…:对表使用别名如下:mysql>selectpost_title AS文章标题fromwp_postswhereID>1290andpost_status='publish';+----------------------------------------------------------------+|文章标题|+----------------------------------------------------------------+|【转】HP3PAR存储概念之三||【转】HP3PAR存储概念之四||【转】XenDesktop5.5+vSphere5创建虚拟机报错||linux下强大的网络工具Netcat||MySQL常用命令、技巧和注意事项||【转】数据库设计原理知识--B树、B-树、B+树、B*树都是什么||MySQL基本SQL语句之常用管理SQL|+----------------------------------------------------------------+7rowsinset(0.02sec)##还可以这样:mysql>select3+2ASSUM;+-----+|SUM|+-----+|5|+-----+1rowinset(0.00sec)LIMIT子句:LIMIT[offset,]Count如下:mysql>selectID,post_title,post_datefromwp_postswhereID>1290andpost_status='publish'limit5;+------+--------------------------------------------------+---------------------+|ID|post_title|post_date|+------+--------------------------------------------------+---------------------+|1291|【转】HP3PAR存储概念之三|2013-08-2917:21:27||1298|【转】HP3PAR存储概念之四|2013-08-2917:22:33||1351|【转】XenDesktop5.5+vSphere5创建虚拟机报错|2013-09-0417:41:26||1357|linux下强大的网络工具Netcat|2013-09-0922:26:45||1360|MySQL常用命令、技巧和注意事项|2013-09-2011:04:15|+------+--------------------------------------------------+---------------------+5rowsinset(0.01sec)mysql>selectID,post_title,post_datefromwp_postswhereID>1290andpost_status='publish'limit2,3;##红色部分(逗号前的数字)表示偏移量+------+--------------------------------------------------+---------------------+|ID|post_title|post_date|+------+--------------------------------------------------+---------------------+|1351|【转】XenDesktop5.5+vSphere5创建虚拟机报错|2013-09-0417:41:26||1357|linux下强大的网络工具Netcat|2013-09-0922:26:45||1360|MySQL常用命令、技巧和注意事项|2013-09-2011:04:15|+------+--------------------------------------------------+---------------------+3rowsinset(0.00sec)聚合:SUM(),MIN(),MAX(),AVG(),COUNT(),括号中为字段名mysql>select sum(ID)fromwp_posts;计算和mysql>select min(ID)fromwp_posts;查早最小的mysql>select max(ID)fromwp_posts;查找最大的mysql>select avg(ID)fromwp_posts;平均值mysql>select count(ID)fromwp_posts;计数分组:GROUPBY,一般配合聚合运算使用如下:mysql>select count(post_status)AS各状态数量,post_statusAS状态名称fromwp_posts groupby post_status;+-----------------+--------------+|各状态数量|状态名称|+-----------------+--------------+|1|auto-draft||9|draft||251|inherit||238|publish||2|trash|+-----------------+--------------+5rowsinset(0.01sec)注意:可以使用HAVING qualification将GROUPBY的结果再次过滤,用法同where二、多表查询连接:交叉连接:笛卡尔乘积自然连接:将两张表某字段中相等连接起来,如下mysql>,students.Age,ame,students.GenderFROMstudents,coursesWHER Estudents.CID1=courses.CID;+--------------+------+------------------+--------+|Name|Age|Cname|Gender|+--------------+------+------------------+--------+|GuoJing|19|TaiJiquan|M||YangGuo|17|TaiJiquan|M||DingDian|25|Qishangquan|M||HuFei|31|Wanliduxing|M||HuangRong|16|Qianzhuwandushou|F||YueLingshang|18|Wanliduxing|F||ZhangWuji|20|Hamagong|M||Xuzhu|26|TaiJiquan|M|+--------------+------+------------------+--------+8rowsinset(0.00sec)外连接:左外连接:left_tbLEFTJOINright_tbON...:以左表为标准mysql>,ameFROMstudentsASs LEFTJOIN coursesASc ON s.CID1=c.CID; +--------------+--------------------+|Name|Cname|+--------------+--------------------+|GuoJing|TaiJiquan||YangGuo|TaiJiquan||DingDian|Qishangquan||HuFei|Wanliduxing||HuangRong|Qianzhuwandushou||YueLingshang|Wanliduxing||ZhangWuji|Hamagong||Xuzhu|TaiJiquan||LingHuchong|NULL||YiLin|NULL|+--------------+--------------------+10rowsinset(0.00sec)右外连接:left_tbRIGHTJOINright_tbON...:以右表为标准mysql>,ameFROMstudentsASs RIGHTJOIN coursesASc ON s.CID1=c.CID; +--------------+--------------------+|Name|Cname|+--------------+--------------------+|GuoJing|TaiJiquan||YangGuo|TaiJiquan||DingDian|Qishangquan||HuFei|Wanliduxing||HuangRong|Qianzhuwandushou||YueLingshang|Wanliduxing||ZhangWuji|Hamagong||Xuzhu|TaiJiquan||NULL|Yiyangzhi||NULL|Jinshejianfa||NULL|Qiankundanuoyi||NULL|Pixiejianfa||NULL|Jiuyinbaiguzhua|+--------------+--------------------+13rowsinset(0.01sec)自连接:本表中不同字段间进行连接mysql>ASstudent,ASteacherFROMstudentsASc,studentsASsWHEREc.TID=s.SID; +-----------+-------------+|student|teacher|+-----------+-------------+|GuoJing|DingDian||YangGuo|GuoJing||DingDian|ZhangWuji||HuFei|HuangRong||HuangRong|LingHuchong|+-----------+-------------+5rowsinset(0.02sec)注意:使用了别名三、子查询:一个查询中嵌套另外一个查询如下:在students表中查询年龄大于平均年龄的学生mysql>SELECTName,AgeFROMstudentsWHEREAge>(SELECTAVG(Age)FROMstudents);+-------------+------+|Name|Age|+-------------+------+|DingDian|25||HuFei|31||Xuzhu|26||LingHuchong|22|+-------------+------+4rowsinset(0.08sec)子查询注意事项:•比较操作中使用子查询:子查询只能返回单个值;•IN():使用子查询;•在FROM中使用子查询;联合查询:UNION,将两个查询的结果合并mysql>(SELECTName,AgeFROMstudents)UNION(SELECTTname,AgeFROMtutors); +--------------+------+|Name|Age|+--------------+------+|GuoJing|19||YangGuo|17||DingDian|25||HuFei|31||HuangRong|16||YueLingshang|18||ZhangWuji|20||HuYidao|42||NingZhongze|49|+--------------+------+19rowsinset(0.00sec)。
SQL查询--简单了解SQL(结构化查询语⾔)以下内容是当初学习时从其他地⽅看到的,原⽂地址忘记了……SQL分类:数据查询语⾔(DQL)数据定义语⾔(DDL)数据操纵语⾔(DML)数据控制语⾔(DCL)1.数据查询语⾔(DQL)数据查询语⾔(Data Query Language, DQL)是SQL语⾔中,负责进⾏数据查询⽽不会对数据本⾝进⾏修改的语句,这是最基本的SQL语句。
语法结构:SELECT[要提取的欄位,或是⽤"*"代表全部的欄位]FROM[要提取的資料來源物件,包含資料表,檢視表與表格型使⽤者函數等]-- 可搭配JOIN做關聯式連結。
WHERE[提取的過濾條件]-- WHERE可有可無。
GROUP BY[要做彙總的群組欄位]-- GROUP BY在使⽤彙總指令時必須要有。
HAVING[要做為條件的彙總欄位]-- 要使⽤彙總函數作為條件時使⽤ORDER BY[要排序的欄位與⽅向]-- ORDER BY可有可無,若沒有則是按照查詢引擎的輸出序為主。
2.数据定义语⾔(DDL)数据定义语⾔ (Data Definition Language, DDL) 是SQL语⾔集中,负责数据结构定义与数据库对象定义的语⾔,由CREATE、ALTER与DROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳⼊ SQL 指令中作为其中⼀个⼦集。
语法结构:CREATE可以⽤来创建⽤户、数据库,数据表,视图,存储过程,存储函数,触发器,索引等。
ALTER是负责数据库对象修改的指令。
DROP是删除数据库对象的指令,只需要指定要删除的数据库对象名即可。
3.数据操纵语⾔(DML)数据操纵语⾔(Data Manipulation Language, DML)是SQL语⾔中,负责对数据库对象运⾏数据访问⼯作的指令集,以INSERT、UPDATE、DELETE三种指令为核⼼,分别代表插⼊、更新与删除。
实验2 SQL语句之简单查询
一、实验目的
1.掌握SELECT语句的基本方法。
2.掌握从表中查询特定行的方法。
3.掌握从表中选择表中若干列和全部列的方法。
4.掌握从表中查询经过计算的值以及为列指定别名的方法。
5.掌握取消重复行和查找满足条件元组的方法。
6.掌握(NOT) BETWEEN AND,LIKE,IN,NULL,通配符的使用方法。
7.掌握ODER BY、GROUP BY的使用方法。
8.掌握聚集函数的使用方法。
二、实验要求
1.应用SELECT语句对数据库中数据进行指定条件的简单查询。
2.撰写实验报告,并附实验结果界面及相应实验语句。
三、实验步骤
1.查询StudentInfo表中所有的学生的详细信息,SQL代码如下所示:
SELECT *
FROM StudentInfo
2.查询StudentInfo表中所有学生的学号、姓名、系别、专业等信息,SQL代码如下所示:
SELECT sno,sname,depart,major
FROM StudentInfo
3.查询全体学生的学号、姓名及年龄信息,SQL代码如下所示:
SELECT Sno,Sname,Year(GETDATE())-Year(Birthday)
FROM StudentInfo
注:YEAR(日期)函数的作用是返回日期的年份,GETDATE()函数的作用是返回系统日期和时间。
4.查询全体学生的学号、姓名及年龄信息,并且为年龄列定义别名为“Age”。
SQL 代码如下所示:
SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) Age
FROM StudentInfo
5.查询有学生选修的教学计划的教学计划号。
SQL代码如下所示:
SELECT TeachTaskID FROM SC
6.查询有学生选修的教学计划的教学计划号,并去掉重复行。
SQL代码如下所示:SELECT DISTINCT TeachTaskID FROM SC
注意观察以上两条语句执行结果的差别。
7.查询StudentInfo表中学号为201001903029的学生的详细信息,SQL代码如下所示:SELECT *
FROM StudentInfo
WHERE Sno='201001903029'
8.查询出生年月在1991-03-15日以后的学生的详细信息,SQL代码如下所示:SELECT *
FROM StudentInfo
where Birthday>'1991-03-15'
9.查询成绩在70-80之间的学生的学号及教务任务号等信息,SQL代码如下所示:SELECT TeachTaskID,Sno,Grade
FROM SC
WHERE Grade BETWEEN 70 and 80
注意:BETWEEN 70 and 80包含70和80。
10.查询不是计算机系和服装系学生的姓名、性别和专业,SQL代码如下所示:SELECT Sname,Sex,Depart,Major
FROM StudentInfo
WHERE Depart not in('计算机系','服装系')
11.查询2009-2010学年第1学期学生选课的学生号、课程号及成绩,SQL代码如下所示:
SELECT Sno,SUBSTRING(TeachTaskID ,15,6) as Cno,Grade
FROM SC
WHERE TeachTaskID like '%2009-2010-1%'
注意:SQL Server 2008中SUBSTRING函数的函数原型为:
SUBSTRING ( value_expression ,start_expression , length_expression )
其作用是返回字符串value_expression中从start_expression位置开始的length_expression 个字符。
如果start_expression小于零,会返回错误;如果start_expression大于value_expression 的长度,则返回零长度的表达式。
12.查询名字最后一个字为“娟”,且名字为三个字的学生详细信息,SQL代码如下所示:
SELECT *
FROM StudentInfo
WHERE Sname like '__娟'
注意:'__娟'中,娟前为两个下划线,中间没有空格。
在SQL Server 2008中,数据类型nvarchar是按字符存储的,即nvarchar(20)能存储20个中文字符。
而数据类型varchar是按字节存储的,即varchar(20)能存储20个字节长度的字符,而存储中文时1个字符占用两个字节,因此只能存储10个中文字符。
在SQL Server 2008中,通配符“_”表示任意单个字符,不管单个字符是按字符存储还是按字节存储。
因此表StudentInfo中Sname的数据类型为不管是nvarchar还是varchar,名字最后一个字为“娟”且名字为三个字的表示方法都是“__娟”,即娟前有两个下划线。
13.查询CourseInfo表中没有先行课的课程号与课程名称,SQL代码如下所示:SELECT cno,cname
FROM CourseInfo
WHERE cpno is null
14.查询在计算机系的女学生的详细信息。
SQL代码如下所示:
SELECT * FROM StudentInfo
WHERE Depart='计算机系' and Sex='女'
15.查询是教授或者是博士的教师详细信息。
SQL代码如下所示:
SELECT * FROM TeacherInfo
WHERE ProfTitle ='教授' or Degree ='博士'
16.查询在2009-2010年第2学期,选修140176课程的学生学号及成绩,查询结果按成绩降序排列。
SQL代码如下所示:
SELECT Sno,Grade FROM SC
WHERE TeachTaskID like '(2009-2010-2)-140176%'
ORDER BY Grade DESC
注意观察ORDER BY的作用。
17.查询计算机系学生的总人数,SQL代码如下所示:
SELECT COUNT(*) as 人数FROM StudentInfo
WHERE Depart ='计算机系'
18.查询在2009-2010年第2学期,选修140176课程中的最高分,SQL代码如下所示:SELECT MAX(Grade) FROM SC
WHERE TeachTaskID like '(2009-2010-2)-140176%'
19.查询各教学计划号及相应的选课人数,SQL代码如下所示
SELECT TeachTaskID ,COUNT(Sno) as 人数FROM SC
GROUP BY TeachTaskID
20.查询在2009-2010年第2学期选修了2门以上课程的学生学号,SQL代码如下所示:SELECT Sno FROM SC
WHERE TeachTaskID like '(2009-2010-2)%'
GROUP BY Sno
HAVING COUNT(*)>=2
四、拓展练习
1.用LIKE或者NOT LIKE查询StudentInfo表中学号为201011002032的学生的所有详细信息,编写SQL代码。
2.用IS NULL或者IS NOT NULL查询CourseInfo表中存在先行课的课程号与课程名称,编写SQL代码。
3.用AND或者OR查询StudentInfo表中服装系中女生学生的所有详细信息,编写SQL 代码。
4.用BETWEEN.....AND和NOT BETWEEN.....AND.....查询StudentInfo表中学号在201001903033——201001903051之间的学生的所有详细信息,编写SQL代码。
5.用IN 和NOT IN查询StudentInfo表中经济管理系和计算机系的学生的所有详细信息,编写SQL代码。
6.查询StudentInfo表中全体的学生的详细信息,查询结果按照所在系升序排列,对同一系的学生按照学号降序排列。