SQL基础知识培训三.ppt
《SQL基础知识培训三.ppt》由会员分享,可在线阅读,更多相关《SQL基础知识培训三.ppt(25页珍藏版)》请在三一办公上搜索。
1、SQL基础知识培训三设计事业部 李红,一些习题:,1、从USER表里选出与USID=“001”同组(即GRID相等)的全部记录;2、从USER表里取出组号GRID=“01”的全部用户号USID和用户名称USNM,从用户-帐户关联信息表里取出该客户号下的所有帐号ACNO。(有用户必有帐户)。3、从USER表里取出所有客户号USID以及客户名称,从STOCK表里取出对应客户号的库存编号STID。(并不是所有的客户号都有库存编号)。4、从USER表里取出GRID=“01”的全部记录,与从USER_OLD表里取出GRID=“02”的全部记录合并后输出。(USER表与USER_OLD 表结构相同)。,今
2、日培训目录和大纲,1、子查询2、多表连接查询3、使用UNINO语句合并查询结果4、SQL语句优化的一些方法,1.子查询可以在一个SELECT语句中嵌入另一个完整的SELECT语句,则嵌入到SELECT语句中的SELECT称为子查询。子查询应该用括号加以区分。示例:查询和用户”001”同组的用户号和用户名:SELECT CUNO,CUNM FROM USERSWHERE GRID=(SELECT GRIDFROM USERS WHERE CUNO=“001”);,2.多表连接查询 内连接;外连接;左连接;右连接;等值连接;非等值连接。,2.1内连接通过比较源表间共享的列的值从多个源表检索行的操作
3、。内联接排除来自不具有与其它源表中的行匹配的行的源表的行。,示例:SELECT USER.USID,USER.USNM,STOCK.STID FROM USER,STOCK WHERE USER.USID=STOCK.USID;将取出USER表和STOCK表具有相同USID的各项的值。,2.2外连接一种联接,包括满足搜索条件的联接表的所有行,甚至包括在所联接的表中没有匹配行的表中的行。对于当一个表中的行与另一个表中的行不匹配时所返回的结果集行,将为解析到没有相应行的表中的所有结果集列提供 NULL 值。,外连接左连接在s_id列上联接 学生档案 表和 学生成绩 表。结果只显示相匹配的数据。若要
4、在结果中包括所有的学生信息,而不管 学生成绩 表中是否有关联的记录,可以使用 左向外联接 LEFT OUTER JOIN。不管第二个表中是否有匹配的数据,结果将包含第一个表中的所有行。SELECT 学生档案.学号,学生档案.姓名,学生档案.性别,学生档案.班级,学生成绩.学习科目,学生成绩.学习成绩,学生成绩.s_id FROM 学生档案 LEFT OUTER JOIN 学生成绩 ON 学生档案.s_id=学生成绩.s_id,外连接右连接在s_id列上联接 学生档案 表和 学生成绩 表。结果只显示相匹配的数据。若要在结果中包括所有的学生成绩,而不管 学生信息表中是否有关联的记录,可以使用 右向
5、外联接运算符 RIGHT OUTER JOIN。不管第一个表中是否有匹配的数据,结果将包含第二个表中的所有行。例:SELECT 学生档案.学号,学生档案.姓名,学生档案.性别,学生档案.班级,学生成绩.学习科目,学生成绩.学习成绩,学生成绩.s_id FROM 学生档案 RIGHT OUTER JOIN学生成绩 ON 学生档案.s_id=学生成绩.s_id,外连接全连接若要通过在联接结果中包括不匹配的行保留不匹配信息,请使用完整外部联接,FULL OUTER JOIN。不管另一个表是否有匹配的值,此运算符都包括两个表中的所有行。假设在 s_id 列上联接 学生档案 表和 学生成绩 表。结果只显
6、示相匹配的数据。FULL OUTER JOIN 运算符指明:不管表中是否有匹配的数据,结果将包括两个表中的所有行。例:SELECT 学生档案.学号,学生档案.姓名,学生档案.性别,学生档案.班级,学生成绩.学习科目,学生成绩.学习成绩,学生成绩.s_id FROM 学生档案 FULL OUTER JOIN 学生成绩 ON 学生档案.s_id=学生成绩.s_id。,3.使用UNINO语句合并查询结果使用UNION语句可以合并两个或者多个查询的结果。UNION语句用第二个查询结果合并第一个查询结果。它不显示两个查询中重复的行。使用UNION ALL会保留重复的行。使用UNION语句要求两个或多个查
7、询语句返回的查询结果结构全部一致,包括列的个数和类型。,示例:SELECT*FROM USER WHERE GRID=“01”UNION ALLSELECT*FROM USER_OLD WHERE GRID=“02”;SELECT USID,USNM FROM USER WHERE GRID=“01”UNIONSELECT USID,USNM FROM USER_OLD WHERE GRID=“02”;,4.SQL语句优化的一些方法侧重于讲述一些最基本的提高sql语句的执行效率的知识,希望可以抛砖引玉,对大家写出高效率的sql语句有所帮助。,4.1索引创建的规则1经常作为where条件的字段要
8、创建索引。2重复值比较多的字段,创建索引的作用不大。例如,对于记录状态jiluzt这样的字段,它只有十多个有效的值,对应几十万的记录,在索引中有没有这个字段,意义不是很大。3要把重复值少的字段放在复合索引前面。对于sql语句,如果前面的条件就可以确定一条记录的话,就不必去比较后面的字段了。比如:表akhzh创建索引的时候,如果需要创建一个khzhlx和kehuzh的索引,就需要把kehuzh放在前面。这样才可以准确、快速的定位到要查找的记录。,4索引最好不要创建太多,一般一个表不要超过8个。能合并的索引应该合并。索引其实是牺牲insert,delete的效率来提高select的效率,如果索引过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 基础知识 培训
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6520892.html