当前位置: 首页 > news >正文

南京医疗网站建设深圳建筑室内设计网站

南京医疗网站建设,深圳建筑室内设计网站,怎么用网站的二级目录做排名,戴南网站建设1、多表关系 一对多#xff08;多对一#xff09; 案例: 部门 与 员工的关系 关系: 一个部门对应多个员工#xff0c;一个员工对应一个部门 实现: 在从表的一方建立外键#xff0c;指向主表一方的主键 多对多 案例: 学生 与 课程的关系 关系: 一个学生可以选修多门课程多对一 案例: 部门 与 员工的关系 关系: 一个部门对应多个员工一个员工对应一个部门 实现: 在从表的一方建立外键指向主表一方的主键 多对多 案例: 学生 与 课程的关系 关系: 一个学生可以选修多门课程一门课程也可以供多个学生选择 实现: 建立第三张中间表中间表至少包含两个外键分别关联两方主键 一对一 案例: 用户 与 用户详情的关系 关系: 一对一关系多用于单表拆分将一张表的基础字段放在一张表中其他详情字段放在另一张表中以提升操作效率 实现: 在任意一方加入外键关联另外一方的主键并且设置外键为唯一的(UNIQUE) 2、多表查询简介、笛卡尔积 多表查询就是指从多张表中查询数据。原来查询单表数据执行的SQL形式为select * from 表名;那么我们要执行多表查询就只需要使用逗号分隔多张表即可如 select * from 表1 , 表2; 在查询时我们看到查询结果中包含了表1所有的记录 与 表2所有记录的所有组合情况这种现象称之为笛卡尔积。 笛卡尔积: 笛卡尔乘积是指在数学中两个集合A集合 和 B集合的所有组合情况。 而在多表查询中我们是需要消除无效的笛卡尔积的只保留两张表关联部分的数据。 在SQL语句中如何来去除无效的笛卡尔积呢 我们可以给多表查询加上连接查询的条件即可。 3、内连接 相当于查询A、B交集部分数据。内连接查询的是两张表交集部分的数据。(也就是绿色部分的数据 隐式内连接 SELECT 字段列表 FROM 表1 , 表2 WHERE 条件 ... ;显示内连接 SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 ... ;案例 A. 查询每一个员工的姓名 , 及关联的部门的名称 (隐式内连接实现)  表结构: emp , dept  连接条件: emp.dept_id dept.id select emp.name , dept.name from emp , dept where emp.dept_id dept.id ; -- 为每一张表起别名,简化SQL编写 select e.name,d.name from emp e , dept d where e.dept_id d.id;B. 查询每一个员工的姓名 , 及关联的部门的名称 (显式内连接实现) — INNER JOIN …ON …  表结构: emp , dept  连接条件: emp.dept_id dept.id select e.name, d.name from emp e inner join dept d on e.dept_id d.id; -- 为每一张表起别名,简化SQL编写 select e.name, d.name from emp e join dept d on e.dept_id d.id;4、外连接 左外连接查询左表所有数据以及两张表交集部分数据右外连接查询右表所有数据以及两张表交集部分数据 左外连接 -- 左外连接相当于查询表1(左表)的所有数据当然也包含表1和表2交集部分的数据。 SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ... ;右外连接 -- 右外连接相当于查询表2(右表)的所有数据当然也包含表1和表2交集部分的数据。 SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ... ;案例 A. 查询emp表的所有数据, 和对应的部门信息。 由于需求中提到要查询emp的所有数据所以是不能内连接查询的需要考虑使用外连接查询。表结构: emp, dept、连接条件: emp.dept_id dept.id。 select e.*, d.name from emp e left outer join dept d on e.dept_id d.id; select e.*, d.name from emp e left join dept d on e.dept_id d.id;B. 查询dept表的所有数据, 和对应的员工信息(右外连接) 由于需求中提到要查询dept表的所有数据所以是不能内连接查询的需要考虑使用外连接查询。表结构: emp, dept、连接条件: emp.dept_id dept.id。 select d.*, e.* from emp e right outer join dept d on e.dept_id d.id; select d.*, e.* from dept d left outer join emp e on e.dept_id d.id;注意事项 左外连接和右外连接是可以相互替换的只需要调整在连接查询时SQL中表结构的先后顺序就可以了。而我们在日常开发使用时更偏向于左外连接。 5、自连接 自连接查询顾名思义就是自己连接自己也就是把一张表连接查询多次。我们先来学习一下自连接的查询语法 SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;案例 A. 查询员工 及其 所属领导的名字 select a.name , b.name from emp a , emp b where a.managerid b.id;B. 查询所有员工 emp 及其领导的名字 emp , 如果员工没有领导, 也需要查询出来 select a.name 员工, b.name 领导 from emp a left join emp b on a.managerid b.id;注意事项: 在自连接查询中必须要为表起别名要不然我们不清楚所指定的条件、返回的字段到底是哪一张表的字段。 6、子查询 SQL语句中嵌套SELECT语句称为嵌套查询又称子查询。 SELECT * FROM t1 WHERE column1 ( SELECT column1 FROM t2 ); -- 子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个。分类 根据子查询结果不同分为 A. 标量子查询子查询结果为单个值B. 列子查询(子查询结果为一列)C. 行子查询(子查询结果为一行)D. 表子查询(子查询结果为多行多列) 根据子查询位置分为 A. WHERE之后B. FROM之后C. SELECT之后 标量子查询 子查询返回的结果是单个值数字、字符串、日期等最简单的形式这种子查询称为标量子查询。 常用的操作符 案例: A. 查询 “销售部” 的所有员工信息 ①. 查询 “销售部” 部门ID select id from dept where name 销售部;②. 根据 “销售部” 部门ID, 查询员工信息 select * from emp where dept_id (select id from dept where name 销售部);B. 查询在 “方东白” 入职之后的员工信息 ①. 查询 方东白 的入职日期 select entrydate from emp where name 方东白;②. 查询指定入职日期之后入职的员工信息 select * from emp where entrydate (select entrydate from emp where name 方东白);列子查询 子查询返回的结果是一列可以是多行这种子查询称为列子查询。 常用的操作符IN 、NOT IN 、 ANY 、SOME 、 ALL 案例: A. 查询 “销售部” 和 “市场部” 的所有员工信息 ①. 查询 “销售部” 和 “市场部” 的部门ID select id from dept where name 销售部 or name 市场部;②. 根据部门ID, 查询员工信息 select * from emp where dept_id in (select id from dept where name 销售部 or name 市场部);B. 查询比 财务部 所有人工资都高的员工信息 ①. 查询所有 财务部 人员工资 select id from dept where name 财务部; select salary from emp where dept_id (select id from dept where name 财务部);②. 比 财务部 所有人工资都高的员工信息 select * from emp where salary all ( select salary from emp where dept_id (select id from dept where name 财务部) );C. 查询比研发部其中任意一人工资高的员工信息 ①. 查询研发部所有人工资 select salary from emp where dept_id (select id from dept where name 研发部);②. 比研发部其中任意一人工资高的员工信息 select * from emp where salary any ( select salary from emp where dept_id (select id from dept where name 研发部) );行子查询 子查询返回的结果是一行可以是多列这种子查询称为行子查询。 常用的操作符 、 、IN 、NOT IN 案例: A. 查询与 “张无忌” 的薪资及直属领导相同的员工信息 ; ①. 查询 “张无忌” 的薪资及直属领导 select salary, managerid from emp where name 张无忌;②. 查询与 “张无忌” 的薪资及直属领导相同的员工信息 ; select * from emp where (salary,managerid) (select salary, managerid from emp where name 张无忌);表子查询 子查询返回的结果是多行多列这种子查询称为表子查询。 常用的操作符IN 案例: A. 查询与 “鹿杖客” , “宋远桥” 的职位和薪资相同的员工信息 ①. 查询 “鹿杖客” , “宋远桥” 的职位和薪资 select job, salary from emp where name 鹿杖客 or name 宋远桥;②. 查询与 “鹿杖客” , “宋远桥” 的职位和薪资相同的员工信息 select * from emp where (job,salary) in ( select job, salary from emp where name 鹿杖客 or name 宋远桥 );B. 查询入职日期是 “2006-01-01” 之后的员工信息 , 及其部门信息 ①. 入职日期是 “2006-01-01” 之后的员工信息 select * from emp where entrydate 2006-01-01;②. 查询这部分员工, 对应的部门信息; select e.*, d.* from (select * from emp where entrydate 2006-01-01) e left join dept d on e.dept_id d.id ;案例数据 -- 创建dept表并插入数据 create table dept (id int auto_increment comment ID primary key,name varchar(50) not null comment 部门名称 ) comment 部门表; INSERT INTO dept (id, name) VALUES (1, 研发部),(2, 市场部),(3, 财务部),(4, 销售部),(5, 总经办),(6, 人事部);-- 创建emp表并插入数据 create table emp (id int auto_increment comment ID primary key,name varchar(50) not null comment 姓名,age int comment 年龄,job varchar(20) comment 职位,salary int comment 薪资,entrydate date comment 入职时间,managerid int comment 直属领导ID,dept_id int comment 部门ID ) comment 员工表; -- 添加外键 alter table empadd constraint fk_emp_dept_id foreign key (dept_id) referencesdept (id);INSERT INTO emp (id, name, age, job, salary, entrydate, managerid, dept_id) VALUES (1, 金庸, 66, 总裁, 20000, 2000-01-01, null, 5),(2, 张无忌, 20, 项目经理, 12500, 2005-12-05, 1, 1),(3, 杨逍, 33, 开发, 8400, 2000-11-03, 2, 1),(4, 韦一笑, 48, 开发, 11000, 2002-02-05, 2, 1),(5, 常遇春, 43, 开发, 10500, 2004-09-07, 3, 1),(6, 小昭, 19, 程序员鼓励师, 6600, 2004-10-12, 2, 1),(7, 灭绝, 60, 财务总监, 8500, 2002-09-12, 1, 3),(8, 周芷若, 19, 会计, 48000, 2006-06-02, 7, 3),(9, 丁敏君, 23, 出纳, 5250, 2009-05-13, 7, 3),(10, 赵敏, 20, 市场部总监, 12500, 2004-10-12, 1, 2),(11, 鹿杖客, 56, 职员, 3750, 2006-10-03, 10, 2),(12, 鹤笔翁, 19, 职员, 3750, 2007-05-09, 10, 2),(13, 方东白, 19, 职员, 5500, 2009-02-12, 10, 2),(14, 张三丰, 88, 销售总监, 14000, 2004-10-12, 1, 4),(15, 俞莲舟, 38, 销售, 4600, 2004-10-12, 14, 4),(16, 宋远桥, 40, 销售, 4600, 2004-10-12, 14, 4),(17, 陈友谅, 42, null, 2000, 2011-10-12, 1, null);
http://www.eeditor.cn/news/121588/

相关文章:

  • wordpress网站登录被篡改网站域名如何修改
  • 淄博学校网站建设定制wordpress 去优酷广告
  • 网站制作基本步骤网站建设 有限公司
  • 途牛网站建设方案wordpress定义
  • 广州市网站集约化建设大学专业建设的内容
  • 制作一个网站大概要多少钱建筑智能化工程技术
  • 网站侧面菜单展开怎么做房地产网站做编辑刚刚入行
  • 现在网站做多宽的百度推广登录首页
  • 网站空间要多大国内做网站需要做icp备案吗
  • 哪些网站可以做招生信息网站 注册模块怎么做
  • 镇江网站设计建设软件开发工具自考
  • 网站的规划 建设与分析论文网站建设品牌
  • 电子商务网站建设心得河南搜索引擎推广多少钱
  • 泰安网络推广联系昔年下拉昆明优化公司
  • 网站前端制作费用北京网站托管
  • 郑州网站优化软件推广赚钱网
  • html5网站建设源码单页面销售信网站赚钱系统
  • 网站备案得多长时间河北建设工程网站
  • 网站做直播需要资质吗高端品牌网站建设有哪些注意事项
  • 专用主机方式建设网站如何创立自己的网址
  • 酒泉市城乡建设局网站网站欢迎页设计
  • 布吉医院网站建设做网站书
  • 商城网站建设的注意事项网页首页设计模板免费
  • 网站建设 培训离石市网站建设公司
  • 网站上的销售怎么做网站开发说明
  • 平台和自建网站服务提供者网上购物哪个商城好
  • qq官方网站搜索引擎优化工具
  • 网站技术说明书模板摄影设计师招聘
  • 昆明建设银行纪念币预约网站有关于网站建设的参考文献
  • 嘉兴中元建设网站怎样制作免费网页