day57-mysql-五种约束和sql语句逻辑执行顺序
二、sql语句逻辑执行顺序
(7) SELECT
(8) DISTINCT <select_list> 去重复
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number> 三、五种约束:
1.外键约束:对两个表的关系进行一些约束。例如dept表里面有部门id,那么person表的部门id不能为空,否则无法一一对应。
如果需要外键约束,最好创建表同时创建外键约束:
create table person(dept_id int(11) DEFAULT NULL,
CONSTRAINT fk_id FOREIGN key(dept_id) REFERENCES dept(did)); 已经创建表后,追加外键约束:
添加外键:
alter table person add CONSTRAINT fk_id FOREIGN key(dept_id) REFERENCES dept(did); 删除外键
alter table person DROP FOREIGN key fk_id 注:插入数据时,先插入主表中的数据,再插入从表中的数据。 删除数据时,先删除从表中的数据,再删除主表中的数据。 2.唯一约束 -- UNIQUE,也叫唯一索引约束,id_name添加到设计表的索引那里。设置唯一约束之后,id和name无法重复,
例如id是1,name是tom,那么将无法插入id是1,name是tom的值。
create table t4(
id int(10) not null,
name varchar(255) ,
unique id_name(id,name)); ALTER table t4 add UNIQUE id_name(id,name) --表格创建之后添加唯一约束。 alter table t4 DROP index id_name --删除 3.默认值约束(default)
create table t5(
id int(10) not null primary key,
name varchar(255) default '张三'); INSERT into t5 VALUES(3,DEFAULT),(4,DEFAULT);
insert into t5(id) values(5),(6); 4.非空约束
关键字: NOT NULL ,表示 不可空. 用来约束表中的字段列
create table t1(
id int(10) not null primary key,
name varchar(100) null ); 5.主键约束
用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。
create table t2(id int(10) not null primary key);
注意: 主键这一行的数据不能重复且不能为空。 还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识
create table t3(
id int(10) not null,
name varchar(100) ,
primary key(id,name)); alter table t3 add primary key(id,name); --表格创建之后添加主键约束 6.表与表之间关系
1.一对多 ,一对一 ,多对多 7.数据库设计三范式
1.第一范式(确保每列保持原子性)
2.第二范式(确保表中的每列都和主键相关)
day57-mysql-五种约束和sql语句逻辑执行顺序的更多相关文章
- mysql之sql语句逻辑执行顺序
1. (1)from先执行,from执行后就会将所有表(多个表时和单表所有的表)数据加载到内存中了 (2)ON执行,得到连接表用的连接条件. (3)JOIN执行,根据ON的连接条件,将from加载的所 ...
- mysql 中sql语句的执行顺序
今天突然想起来,之前面试一个很牛逼的公司(soho)的时候,一个美眉面试官,面试的时候问到了很多之前都没有意识到的问题,回想起来那美眉看着年纪不大,技术那是真666啊.好了说一下人家问的这个有关mys ...
- SQL语句的执行顺序和效率
今天上午在开发的过程中,突然遇到一个问题,需要了解SQL语句的执行顺序才能继续,上网上查了一下相关的资料,现整理如下:一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各 ...
- SQL语句的执行顺序
一.sql语句的执行顺序 (8)SELECT (9) DISTINCT (11) <TOP_specification> <select_list> (1) FROM < ...
- SQL SERVER 一个SQL语句的执行顺序
一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表 如果是表表达式 依旧是如此顺序) 2.Where(条件筛选 谓词筛选 ) 3.Group by(分组) 4.Having(分组 ...
- SQL语言逻辑执行顺序
SQL语言逻辑执行顺序 2012-12-18 16:18:13 分类: 数据库开发技术 查询的逻辑执行顺序 FROM < left_table> ON < join_conditio ...
- MySQL——sql语句的执行顺序
#核心知识点: 书写顺序:where——>group by——>having——>order by——>limit 许多时候在书写一些复杂的sql语句的时候,尤其是在渐进式推导 ...
- 详细分析SQL语句逻辑执行过程和相关语法
本文目录: 1.SQL语句的逻辑处理顺序 1.2 各数据库系统的语句逻辑处理顺序 1.2.1 SQL Server和Oracle的逻辑执行顺序 1.2.2 MariaDB的逻辑执行顺序 1.2.3 M ...
- 【Oracle】三种方式查看SQL语句的执行计划
查看执行计划的方式有三种: EXPLAIN PLAN .V$SQL_PLAN .SQL*PLUS AUTOTRACE 1.EXPLAIN PLAN: 显示执行相应语句时可以使用的理论计划 读取执行计划 ...
随机推荐
- typeof()与Object.prototype.toString.call()
用typeof方法只能初步判断number string undefined boolean object function symbol这几种初步类型 使用Object.prototype.toSt ...
- [Python3] RSA的加解密和签名/验签实现 -- 使用pycrytodome
Crypto 包介绍: pycrypto,pycrytodome 和 crypto 是一个东西,crypto 在 python 上面的名字是 pycrypto 它是一个第三方库,但是已经停止更新,所以 ...
- UVALive 5913 字典树
先输入n个字符串的字典,每个字符串的前缀+后缀可以组成新的合法字符串,但肯定是有重复的,问从给定的字符串,生成的所有可能的字符串为多少个 把前缀和后缀压入字典树,达到前缀和后缀的去重,首先的总和即为前 ...
- Monthly Expense(最大值最小化问题)
POJ-3273 ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 数据类型
使用编程语言进行编程时,需要用到各种变量来存储各种信息.变量保留的是它所存储的值的内存位置.这意味着,当创建一个变量时,就会在内存中保留一些空间. 可能需要存储各种数据类型(比如字符型.宽字符型.整型 ...
- PAT Advanced 1034 Head of a Gang (30) [图的遍历,BFS,DFS,并查集]
题目 One way that the police finds the head of a gang is to check people's phone calls. If there is a ...
- tensorflow之最近邻算法实现
最近邻算法,最直接的理解就是,输入数据的特征与已有数据的特征一一进行比对,最靠近哪一个就将输入数据划分为那一个所属的类,当然,以此来统计k个最靠近特征中所属类别最多的类,那就变成了k近邻算法.本博客同 ...
- SpingBoot项目搭建(详细)
SpingBoot (原创:黑小子-余) springboot官网:->点击<- spring官网:->点击<- 一.SpringBoot简介 Spring Boot是由Piv ...
- H3C S10512虚拟化配置
软件版本:Version 7.1.070, Release 7585P05 1.配置SW1#设置SW1的成员编号为1,创建IRF端口2,并将它与物理接口Ten-G0/0/45.Ten-G0/0/46. ...
- 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 A题
A - ^&^ Bit operation is a common computing method in computer science ,Now we have two positive ...