mysql 外键和子查询,视图
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 外键和子查询,视图的更多相关文章
- MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)
MySQL的外键 什么是外键,很简单保持数据一致性的一个约束键.如果你有两张表,第一张是学生表,第二张表是一个成绩表,我们来看看保持数据一致性,其实在Django等框架的模型中中也能做关联获取对象. ...
- SQL主外键和子查询
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- 数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- 2016年11月17日--SQL主、外键,子查询
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- SQL主、外键,子查询
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- MySQL 外键 表的查询
自增补充 这是查看怎么创建的表, \G示旋转90度显示表的内容 表的自增的关键是** AUTO_INCREMENT=3**,在表中添加数据后,这个会自动改变,通过alert可以改变这个默认值 mysq ...
- mysql外键与表查询
目录 自增特性 外键 外键关系 外键创建 外键的约束效果 级联更新级联删除 多对多关系 一对一关系 表查询关键字 select与from where筛选 group by分组 练习 关系练习 查询练习 ...
- MYSQL - 外键、约束、多表查询、子查询、视图、事务
MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...
- MySQL外键约束On Delete、On Update各取值的含义
主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...
随机推荐
- 迁移 Emacs 的自定义设置
在一台电脑上设置好了 Emacs 自定义的许多包和参数,想要便捷地把各项设置迁移到另一台目标电脑,其实是很简便的. 一般情况下,各个package位于 ~/.emacs.d/ 文件夹内,我们需要做的只 ...
- 使用本机IP调试web项目
1.查看本机IP 使用命令行查看本机ip地址: cmd 进入命令行 Ipconfig 查询本机ip. 2.找到启动项目的配置文件 启动IIS查找配置文件的位置 点击显示所有应用程序 3.修改项 ...
- React 实战系列:模块化
本系列以实战为主,通过一个 TODO 应用来学习深入 React. 学习无捷径,唯一的办法就是 coding!coding!coding! 如有不足之处,欢迎大家批评指正,共同进步! 言毕,开始撸
- Lumen框架使用Redis与框架Cache压测比较
使用命令 ab -c 20000 -n 100000 'http://127.0.0.1:9050/v1/api.store.xxx'进行压测,并同时进行了交叉测试,结果如下: 高并发情况下数据目前没 ...
- web前端框架之Vue hello world
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...
- 在win系统安装Git
Git是优秀, 先进的代码版本控制管理工具, 是分布式, 比SVN进步. 比如我们可以从Github拉取代码, 或者上传到GIthub. 下面说下安装: 搜索引擎搜索Git, 找到官网, 找到安装文件 ...
- jmert中如何测试上传文件接口(测试上传excel文件)
第一次用jmeter这个工具测试上传接口,以前没做过这一块,导致走了很多弯路.特地把经验谢谢,怕自己以后忘记... 一,jmeter如何上传文件 jmeter 的 http requests post ...
- angular 的navigate 各种使用情况
navigate是Router类的一个方法,主要用来跳转路由. 函数定义: navigate(commands: any[], extras?: NavigationExtras) : Promise ...
- UGUI血条
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI; pu ...
- Holer实现手机APP应用外网访问本地WEB应用
手机APP应用公网访问内网WEB应用 本地安装了WEB服务端,手机APP应用只能在局域网内访问本地WEB,怎样使手机APP应用从公网也能访问本地WEB? 本文将介绍使用holer实现的具体步骤. 1. ...