之前学SQL server的时候简单学过SQL的一点基础,Mysql就直接从外键约束开始继续学。

外键约束:foreign key

让表与表产生关系,从而保证数据的正确性。

1、在创建表时添加外键:

  create table  ...(

    ......

    外键列,

    constraint 外键名称 foreign key (外键列名称)references 主表名(主表列名)

  )

2、删除外键:

  alter table ...  drop foreign key 外键名。

3、添加外键:

 alter table ... add constraint 外键名称 foreign key (外键列名称)references 主表名(主表列名)

级联操作:

1、添加级联操作:

  语法:alter table 表名 add constraint 外键名称 foreign key (外键列名称)references 主表名                   (主表列名)on update cascade on delete cascade        级联更新和删除

多表关系:

1、一对多:在多的一方建立外键,指向一的主键。

2、多对多:需要借助第三张中间表,中间表至少包含两个字段作为中间表的外键,指向两张表的                  主键

3、一对一:任意一方添加【唯一外键】指向另一方的主键。

范式:

1、第一范式(1NF):每一列都是不可分割的原子数据项。

2、第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖。

  几个概念:* 函数依赖:A-->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值,                    则称B依赖于A。

          例如:学号-->姓名。 (学号,课程名称)-->分数

       * 完全函数依赖:A-->B,如果A是一个属性组,则B属性值的确定需要依赖于A属性                                         组中所有的属性值。

          例如:(学号,课程名称)-->分数

       * 部分函数依赖:A-->B,如果A是一个属性组,则B属性值的确定只需要依赖于A属               性组中某一些值即可。

          例如:(学号,课程名称)-->姓名。

       * 传递函数依赖:A-->B,B-->C ,如果通过A属性(属性组)的值,可以确定唯一B属                                             性的值,再通过B属性的值,可以确定C属性的值,则称C传递函数依赖与A。

          例如:学号-->系名,系名-->系主任

       *码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这                               个属性(属性组)为该表的码。

       * 主属性:码属性组中所有的属性   *非主属性,出去码属性的属性。

第三范式(3NF):在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上消除传递依赖。

多表查询:

多表查询产生的是笛卡儿积,会有无用数据,所以得消除无用数据

1、内链接查询。

  1、隐式内链接:Select 列名 from 表一,表二 where 主键有关的条件

  2、显式内链接:Select 列名 from 表一 join 表二 on 主键有关的条件

2、外连接查询。

  1、左外连接:Select 列名 from 表一 left join 表二 on 主键有关的条件

    查询的是左表所有数据以及其交集部分。

  2、右外连接:Select 列名 from 表一 right join 表二 on 主键有关的条件

    查询的是右表所有数据以及其交集部分。

3、子查询。

查询中嵌套查询。

子查询的不同情况:

  1、单列单行:作为条件,用运算符判断。

  2、单列多行:作为条件,:in

  3、多列多行:作为一张虚拟表,放在列里。

事务:

1、事务的基本介绍:

  * :如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时               失败。(张三转账给李四....)

  * :操作:1、开启事务: start transaction

         2、回滚:rollback

         3、提交:commit

  * :事务提交的方式:1、自动提交:mysql就是自动提交的,一条DML语句自动提交一次事务

            2、手动提交:需要先开启事务,再提交。

  * :修改事务的默认提交方式: 1、查看事务提交方式 SELECT @@autocommit; 1-自动提交

                2、修改:set @@autocommit = 0 ;

2、事务的四大特征:

  * 原子性:是不可分隔的最小单位,要么同时成功要么同时失败。

  * 持久性:当事务提交或回滚后,数据库会持久保存数据。

  * 隔离性:多个事务之间,相互独立。

  * 一致性:事务操作前后,数据总量不变。

3、事务的隔离级别。

DCL:管理用户,授权。

Mysql基础。的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. plv8 触发器使用

    触发器使用 demo CREATE FUNCTION test_trigger() RETURNS TRIGGER AS $    plv8.elog(NOTICE, "NEW = &quo ...

  2. three.js 居中-模型

    api: 代码: <!DOCTYPE html> <html lang="en"> <head> <title>three.js w ...

  3. Docker入门之安装Docker

    目录 目录 1 1. 前言 1 2. 创建网桥 2 3. 安装Docker 2 3.1. 二进制安装 3 3.1.1. 下载安装 3 3.1.2. 配置服务 3 3.1.3. 启动服务 4 3.2. ...

  4. css规范思维导图(仅限于自己)

  5. Android apps for “armeabi-v7a” and “x86” architecture: SoC vs. Processor vs. ABI

    INSTRUCTION SET: Processors are made of semiconductor dies, usually electronic-grade mono-crystallin ...

  6. 10-排序5 PAT Judge (25 分)

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  7. 7种 JVM 垃圾收集器特点、优劣势及使用场景(多图)

    7种 JVM 垃圾收集器特点.优劣势及使用场景(多图)  mp.weixin.qq.com 点击上方"IT牧场",选择"设为星标"技术干货每日送达! 一.常见垃 ...

  8. Solr7.x学习(8)-使用spring-data-solr

    1.maven配置 <dependency> <groupId>org.springframework.data</groupId> <artifactId& ...

  9. 高系统的分布性有状态的中间层Actor模型

    写在前面 https://www.cnblogs.com/gengzhe/p/ray_actor.html Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构 ...

  10. CentOS下安装php 5.6.19

    # php安装包下载wget https://www.php.net/distributions/php-5.6.19.tar.bz2# 解压bunzip2 php-5.6.19.tar.bz2tar ...