ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:584.72KB ,
资源ID:21705253      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21705253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库复杂语句Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库复杂语句Word下载.docx

1、emp表3.1、表之间的关联关系数据库中的表一般存在三种关联关系 1、一对一2、一对多、多对一3、多对多表之间的的关联关系,通过“外键”来体现,外键的作用就是建立表之间的关联关系,外键一般在多方表。一个表可以有多个“外键“用Navicat 8 for Mysql 设计外键,操作如图: 1、右键-选择设计表2、选择创建栏位3、添加如下选项4、选择外键,按如下步骤填写外键信息5、填写完外键信息选保存此刻dept表、emp表就建立的一对多的关联关系。关联关系是为了保证数据库中数据的完整性3.2、多表查询如果查询使用一个以上的表就成为多表查询在Navicat8中写SQL语句,则需使用查询窗体 如图所示

2、:1、 右键单击查询2、 查询编辑选项中即可写SQL语句3.2.1、多表查询基本语法多表查询语法如下:SELECT DISTINCT * | 表名.列名1 别名1.列明 ,表名.列名2,别名2.列明 ,FROM 表名称1 别名1,表名称2 别名2,WHERE 条件sORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC同时查询dept、emp表SELECT * FROM dept,emp;查询emp表的记录数SELECT COUNT(*) FROM emp查询dept表的记录数SELECT COUNT(*) FROM dept dept表4条记录 emp表7条记录在使用多表时

3、会产生笛卡尔乘积,4 * 7 = 28 条记录,这些记录中许多是重复信息,所以在查询多表时要使用关联字段作为条件,去掉笛卡尔乘积在dept表和emp表中关联的字段是: dept表的deptid字段与emp表的deptid,而且emp的deptid字段的值都来自dept的deptid,即dept.deptid = emp.empid去掉笛卡尔乘积的查询为:SELECT * FROM dept,emp WHERE dept.deptid = emp.deptid使用多表查询,建议使用别名查询员工编号,员工姓名,员工性别,员工年龄,员工地址,所属部门名称 |- 此查询包含了员工表中的信息,部门表中的

4、信息,故使用多表查询SELECT B.empid,B.empname,B.empsex,B.empage,B.empaddress,A.deptname FROM dept A, emp BWHERE A.deptid = B.deptid3.2.2、左、右连接查询在多表查询中还有一种查询方式,称为内连接查询,语法如下:FROM 表名称1 别名1 INNER JOIN表名称2 别名2,ON 关联条件查询部门表和员工表信息SELECT * FROM dept INNER JOIN emp ON dept.deptid = emp.deptid 内连接查询其实就是去掉笛卡尔乘积的多表关联查询,注意

5、:只查询关联字段,没有关联的不查询左连接查询SELECT * FROM dept LEFT JOIN empON dept.deptid = emp.deptid以左边的表作为标准,无论关联与否左边表都查询右连接查询FROM dept RIGHT JOIN emp以右边的表作为标准,无论关联与否右边表都查询3.3、组函数及分组统计、如需查询员工表中的性别为“男”或“女”的员工个数,则需要SQL语句中分组统计功能。1、 分组在SQL中用“GROUP BY”语法如下:SELECT DISTINCT * | 列名1 别名1 ,列名2,别名2 ,FROM 表名称1 别名1GROUP BY 分组条件注意

6、:group by 的位置以性别为标准对员工进行分组SELECT empsex FROM emp GROUP BY empsex单独使用分组条件时,以什么字段作为分组条件,那么查询字段就必须是什么字段2、 SQL中常用的统计函数COUNT() : 全部的记录数MAX() : 最大值MIN() : 最小值AVG() : 平均数SUN() : 求和查询员工总数SELECT COUNT(1) FROM empcount(1)中填写“1”有助于提高查询效率查询员工年龄的最大值SELECT MAX(empage) 年龄最大值 FROM emp查询员工年龄最小值SELECT MIN(empage) 年龄最

7、小值查询员工年龄的平均值SELECT AVG(empage) 年龄的平均值查询所有部门人数之和SELECT SUM(deptnum) 部门人数之和 FROM dept 分组函数中使用的通常都是数值类型的字段,或日期类型字段3、 分组统计的综合应用查询员工信息表中“男“、”女“员工的个数 分析: |- 以性别作为标准进行分组 |- 使用COUNT()统计函数SELECT empsex 性别, COUNT(empid) 员工人数 FROM empGROUP BY empsex查询每个部门的员工人数分析: |- 查询使用到了多表 |- 以部门编号作为分组标准SELECT A.deptid 部门编号,

8、 COUNT(B.empid) 部门人数GROUP BY A.deptid查询每个部门的员工的平均年龄 |- 使用AVG()统计函数, AVG(B.empage) 部门平均年龄在使用分组的时候,不能出现分组条件和分组函数之外的字段4、HAVING的使用HAVING是在分组的基础上进行筛选,语法如下:GROUP BY 分组条件 HAVING 分组条件查询员工平均年龄在22岁之上所属部门编号 分析 |- 以部门编号作为分组标准 |- 分组后,条件筛选使用AVG()函数SELECT deptid FROM emp WHERE trueGROUP BY deptidHAVING AVG(empage)

9、 22小结: 只在某列中出现重复,才需要分组,否则没有意义3.4、分页语句如果数据特别多,一次在页面中展示不完,我们就需要用到分页展示数据,这就需要分页的sql语句mysql分页的关键字为: LIMIT X,Y X为起始的记录数(排除前几条记录开始), Y为每次展示的记录个数(分页标准)语法如下:LIMIT X, Y查询员工表中的前两条记录SELECT * FROM emp LIMIT 0, 2查询员工表中的第3、4条记录SELECT * FROM emp LIMIT 2, 2查询员工表中的第5、6条记录SELECT * FROM emp LIMIT 4, 2查询员工表中的第7、8条记录SELECT * FROM emp LIMIT 6, 2综上mysql中的分页语句为:LIMIT (当前页-1) * 分页标准), 分页标准第一页的记录数SELECT * FROM emp LIMIT (1-1)*2), 2(1-1)*2 一般会在程序中直接算出结果,放入该位置即可第二页的记录数SELECT * FROM emp LIMIT (2-1)*2), 2(2-1)*2 一般会在程序中直接算出结果,放入该位置即可4 总结 5 预习任务6 作业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1