zoukankan      html  css  js  c++  java
  • 11-04 SQLserver基础--连接查询、联合查询、索引

    一、子查询补充:

    Exists的用法:

    select*from haha where exists(select*from bumen where bumen.code=haha.bumen,and bumen.name='销售部')and age>35--相当于循环嵌套语句

    一般用法:=

    select*from haha where bumen=(select code from bumen where name='销售部')and age>35--括号里面查询出来的当作参数使用

    二、连接查询

    子查询不仅能放在where后当作条件使用

    原句:句式一:Select name,sex,age,bumen from haha

    替换句,将haha里的bumen替换成bumen里的code:句式二:Select name,sex,age,(select name from bumen where bumen.code=haha.bumen)as 部门,(select ceo from bumen where bumen.code=haha.bumen) from haha

    以上就是连接查询的格式。

    简化连接查询语句格式:Select.haha.name,sex,age,bumen.name,ceo from haha,bumen where haha.bumen=bumen.code

    还能放在select.和from 中间使用。相当于一个转换函数,查询出来的必须是一行一列。

    表与表哪个表在前面就先执行哪个表的查询,必须在表与表之间存在连接关系时才能使用。

    1、横向联合

    拼接查询--join...on...(将两个表拼在一起显示,最多三个表)

    Select haha.name,sex,age,bumen.name,ceo from haha

    Join bumen on haha.bumen=bumen.code--将join之后的语句加入到上面的表中。

    【注意事项】查询到的结果必须是在select..from之间写出来才能显示。

    Join前面可以加三种修饰符:

    1)Full join...on

    加full:全部列出数据,把两个表中的数据全部显示出来,即使其中一个表中的数据与另一表没有任何关系。

    2)Left join..on

    加Left:(通过关系显示)显示左边表中的全部数据,按照左边表的顺序排列,而右边表的数据则通过关系排列,右边没有关系的不显示。

    3)Right join..on

    加right:(通过关系显示)显示右边表的全部数据,按照右表的顺序排序,而左边表的数据通过关系排列,左边没有关系的不显示。

    2、纵向联合union:

    一个表存放现有数据,另一个表存放已删除的数据.

    列必须要对应一致。

    1)、将haha表中年龄>40岁或者年龄

    Select * from haha where age>40

    Union

    Select * from haha where age<30

    2)、将haha表中name,bumen和bumen表中的ceo,code查询,同时出现在同一个表中

      select name,bumen from haha

      Union

      Select ceo,code,from bumen

    【注意事项】1.具备自动去重的功能。

                     2.数据类型必须对应一致

    【案例1】--创建学生信息表:学号、姓名、班级、性别、语文教师编号、数学教师编号、英语教师编号


     --创建教师表:教师编号、姓名、课程、性别、出生日期


     --创建分数表:语文分数、数学分数、英语分数、学生学号


     --分别插入虚拟数据,之后进行查询操作:

    约束 除了主键/外键约束,还有其他的约束

    1、设置唯一性约束(作为候选索引)提前设置好,防止录入出错;

    只要是设置了唯一性的列都可以作为外键使用。

    方法二:需要设置唯一键的列名直接加unique.

     例:cid varchar(50) unique

     

    2、查看查询代码

    3、check约束

     表达式可以用and连接(可以加多个表达式),等同于where 条件

     

     

     

     

  • 相关阅读:
    python 类继承演示范例的代码
    C#监控指定目录的文件变化的代码
    如何开启红米手机4X的ROOT超级权限
    C# 发送电子邮件源码片段
    android中使用afinal一行源码显示网络图片
    (详细)华为畅享7 SLA-AL00的usb调试模式在哪里打开的流程
    C#自定义FTP访问类的代码
    C#的String.Split 分割字符串用法详解的代码
    红米Note 5A完美卡刷开发版获得ROOT超级权限的方法
    C# 类如何声明索引器以提供对类的类似数组的访问的代码
  • 原文地址:https://www.cnblogs.com/xiaoqingshe/p/4077327.html
Copyright © 2011-2022 走看看