zoukankan      html  css  js  c++  java
  • 主外键 子查询

    主键、外键和子查询

     

    1 主键和外键的区别

    1.1定义
    主键--唯一标识一条记录,不能有重复的,不允许为空

    外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空

    1.2作用

    主键--用来保证数据完整性

    外键--用来和其他表建立联系用的

    1.3个数:

    主键--主键只能有一个

    外键--一个表可以有多个外键


    2 主键语句
    code int PRIMARY KEY IDENTITY(1,1), 
    --PRIMARY KEY 标识主键
    --IDENTITY(1,1) 从一开始,每增加一行加一;
    插入数据不用再写。


    3 外键
    3.1 外键取值规则:空值或参照的主键值。

    (1)插入非空值时,如果主键表中没有这个值,则不能插入。

    (2)更新时,不能改为主键表中没有的值。

    (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

    (4)更新主键记录时,同样有级联更新和拒绝执行的选择。
    3.2设置
    选中表->右键:设计->选中需要设置外键的字段->选择“关系”->选择"添加"
    ->在表和列规范处选择右边省略号->再选择相应关系


    3 子查询
    在SQL语言中,当一个查询语句嵌套在另一个查询的查询条件之中时,称为子查询
    3.1(1)子查询要用括号括起来; 
    (2)将子查询放在比较运算符的右边; 
    (3)不要在子查询中使用order by子句,
    select语句中只能有一个order by子句,并且它只能是主select语句的最后一个子句。
    但是如果有top n 的话, 可以有order by.
    3.2分页查询中:select top 5 * from emp where empno in 
    (select TOP 5 empno from emp order by empno desc) order by empno )


    3.3单行子查询 :单行子查询是指子查询的返回结果只有一行数据。
    (1)select code,name,sex,age,(select bname from bumen where bumen.bcode=renyuan.bc),
    (select bceo from bumen where bumen.bcode=renyuan.bc)from renyuan
    (2)select code from renyuan where age=(select max(age) from renyuan where sex='男')
    3.4多行子查询:多行子查询即是子查询的返回结果是多行数据。当
    主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。
    select top 5 *from renyuan where code not in(select top 5 code from renyuan)

  • 相关阅读:
    Ruby(1):入门
    html 制作静态页面新知识
    mysql 可视化界面操作指令
    html 基础
    Eclipse导入Java工程导入错误
    shell 25个常用命令
    java JDBC
    java 8新特性 instant
    git
    spring mvc 注解详解
  • 原文地址:https://www.cnblogs.com/power8023/p/5842474.html
Copyright © 2011-2022 走看看