1.mysql 外键约束

建表时生成外键   foreing key ('sid') references' student'('id');

建表后添加外键  alter table' course student' add foreign key('sid') references'student'('id')

删除外键  alter table ' course student ' drop foreign key ' course_student_ibfk_1;

外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性

主键 外键索引:

定义 唯一标识一条记录,不能有重复的,不允许为null  表的外键是另一个表的主键,外键可以有重复的。可以是null 没有重复值 ,可以为null(索引无效)作用 用来保证数据的完整性 用来和其他表建立联系用的,提高查询排序的速度

个数    主键只能有一个 一个表可以有多个外键  一个表可以有多个唯一索引

2.自关联

含义   自己join自己 ,用一张表搞定多张表可以达到效果

注意   当表自关联的时候,需要使用as 起别名,防止关联的时候引发重名的问题

select * from areas as p inner  join areas as c on c.pid = p.aid where p.atitle = '河南省'

三表关联

select * from areas as p left join areas as c on c.pid = p.aid left join areas as a on a.pid = c.aid where p.atitle = '河南省'

3.子查询

子查询允许把一个查询嵌套在另一个查询当中

标量子查询

是指子查询返回的是单一的标量,如一个数字或一个字符串,也是子查询最简单的返回形式,可以使用   =>  <> =  <= <>  这些操作符对子查询的标量结果进行比较,通常子查询的位置在比较式的右侧

列子查询

指子查询返回的结果集是N 行一列 ,该结果通常来自对表的某个字段查询返回

可以使用  in ,不能直接使用  = > < >= <= <> 这些比较标量结果的操作符

行子查询

指 子查询返回的结果集是N 列一行,通常用来多列的比较

4.视图

视图就是一条select语句执行后返回的结果集,所以创建视图主要工作落在创建sql 查询语句上

特性:视图是对若干张基本表的引用,一张虚表查询语句执行的结果,不存储具体的数据(基本表发生该表,视图跟着改变);可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制)

作用 : 方便操作,特别是查询操作,减少复杂的sql语句,增强可读性,更加安全数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别

使用场合  : 权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如 salary...关键信息来源多个复杂关联表,可以创建视图提取我们需要的信息,简化操作。

建立视图

建议名称以 v_ 开头,用来和普通表区分

使用show tables 可以显示视图

create view 视图名称 as select 语句

使用视图

select * from 视图名称

删除视图

drop view  视图名称

修改视图

create or replace view 视图名称 as sql语句

mysql 外键和子查询,视图的更多相关文章

  1. MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)

    MySQL的外键 什么是外键,很简单保持数据一致性的一个约束键.如果你有两张表,第一张是学生表,第二张表是一个成绩表,我们来看看保持数据一致性,其实在Django等框架的模型中中也能做关联获取对象. ...

  2. SQL主外键和子查询

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  3. 数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  4. 2016年11月17日--SQL主、外键,子查询

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  5. SQL主、外键,子查询

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  6. MySQL 外键 表的查询

    自增补充 这是查看怎么创建的表, \G示旋转90度显示表的内容 表的自增的关键是** AUTO_INCREMENT=3**,在表中添加数据后,这个会自动改变,通过alert可以改变这个默认值 mysq ...

  7. mysql外键与表查询

    目录 自增特性 外键 外键关系 外键创建 外键的约束效果 级联更新级联删除 多对多关系 一对一关系 表查询关键字 select与from where筛选 group by分组 练习 关系练习 查询练习 ...

  8. MYSQL - 外键、约束、多表查询、子查询、视图、事务

    MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...

  9. MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...

随机推荐

  1. week7

    catalog 1.面向对象 2.类的继承(续):直接继承与间接继承 3.类方法.静态方法.属性方法 4.getitem 5.反射 6._new_\_metaclass_ 7.异常处理 1.面向对象 ...

  2. 小谈对Python的认知与期望

    18级新生,在大学之前并未接触过程序语言编程,在众多语言编程中只对C语言有个名字上认知.在上个学期初次了解到Python语言,计算机老师表示Python是现在编程语言中如雨后春笋般的发展飞速的计算机语 ...

  3. Road of computer tec 01

    回顾自己过去将近3年的学习经历 当初报考的时候,自己是真正喜欢这个专业的么? 当初报这个专业的时候,对计算机还没有什么很明显的概念,只知道这个专业以后是要每天面对电脑的,喜欢不喜欢谈不上吧,但是还蛮感 ...

  4. oracle插入数据的时候报错:ORA-00928: 缺失 SELECT 关键字

    比如:插入数据的时候是这样的insert into a value('哈哈'); 报的是这样的错误:ORA-00928: 缺失 SELECT 关键字 其实就是value少了一个s,在oracle中,插 ...

  5. Ubuntu 18.04安装中文输入法

    reference: https://blog.csdn.net/fx_yzjy101/article/details/80243710 https://pinyin.sogou.com/linux/ ...

  6. 二、Memcached缓存穿透、缓存雪崩

    二.Memcached缓存穿透.缓存雪崩 1. 缓存雪崩 可能是数据魏加载到缓存中,或者缓存同一时间大面积失效,导致大量请求去数据库查询的过程,数据库过载,崩溃. 解决方法: 1 采用加锁计数,使用合 ...

  7. js 判断变量是否为空或未定义

    判断变量是否定义: if(typeof(hao) == "undefined"){ //未定义 }else{ //定义 } 判断变量是否为空或NULL,是则返回'', 反之返回原对 ...

  8. python3读取MySQL-Front的MYSQL密码

    python3读取MySQL-Front的MYSQL密码 python3 mysql 密码 MySQL-Front 前言 同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL- ...

  9. Linux服务器管理神器-IPython

    系统管理员的首选,一个很智能的交互式解释器. 一.特性: 1)magic函数:内置了很多函数用来实现各种特性. 2)Tab补全:可以有效地补齐Python语言的模块.方法和类等. 3)源码编辑:可以直 ...

  10. 20175223 姚明宇 MyCP

    目录 MyCP 要求 代码运行编译及文本输出输入结果 目录树 代码运行编译: 文本输出输入结果: 源代码 码云链接 目录 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 X ...