logo资料库

六天带你玩转MySQL-学习笔记.docx

第1页 / 共137页
第2页 / 共137页
第3页 / 共137页
第4页 / 共137页
第5页 / 共137页
第6页 / 共137页
第7页 / 共137页
第8页 / 共137页
资料共137页,剩余部分请下载后查看
数据库mysql学习笔记
基础阶段
关键字说明
SQL
Mysql数据库
Mysql服务器对象
SQL基本操作
库操作
查看数据库
更新数据库
删除数据库
表操作
新增数据表
查看数据表
修改数据表
数据操作
中文数据问题
校对集问题
Web乱码问题
数据类型(列类型)
时间日期类型
字符串类型
字段属性
关系
范式
数据高级操作
连接查询
外键
联合查询
子查询
视图
视图数据操作
数据的备份与还原
SQL备份
增量备份
事务安全
事务原理
变量
自定义变量
触发器
创建触发器
查看触发器
使用触发器
修改触发器&删除触发器
触发器记录
代码执行结构
循环结构
函数
存储过程
数据库 mysql 学习笔记 基础阶段:数据库的基本操作(增删改查),以及一些高级操作(视图、触发器、函数、存 储过程等) 优化阶段:如何提高数据库效率、如索引,分表等 部署阶段:如何搭建真实的环境系统,如服务器集群,负载均衡 基础阶段 1. 什么是数据库? 数据库:database,存储数据的仓库。 数据库:高效的存储和处理数据的介质(介质主要是两种:磁盘和内存 RAM) 2. 数据库的分类? 数据库基于存储介质的不同:进行了分类,分为两类:关系型数据库(SQL)和非关系型数 据库(NoSQL:Not Only SQL,不是关系型的数据库都叫做非关系型数据库) 3. 不同的数据库阵营中的产品有哪些? 关系型数据库 大型:Oracle,DB2 中型:SQL_SERVER,Mysql 小型:access 非关系型数据库:memcahed,MongoDB,redis(同步到磁盘) 4. 两种数据库阵营的区别? 关系型数据库:安全(保存到磁盘基本不可能丢失)容易理解,比较浪费空间(二维表) 非关系型数据库:效率高,不安全(断电丢失) 关系型数据库 1. 什么是关系型数据库? 关系型数据库:是一种建立在关系模型(数学模型)上的数据库。 关系模型:一种所谓建立在关系上的模型,关系模型包含三个方面: 数据结构:数据存储的问题,二维表(有行和列) 操作指令集合:所有的 SQL 语句 完整性约束:表内数据的约束(字段与字段),表与表之间的约束(外键) 2. 关系型数据库的设计? 关系型数据库:从需要存储的数据需求中分析,如果是一类数据(实体)应该设计成一张二 1
维表:表是由表头(字段名:用来规定数据的名字)和数据部分组成(实际存储的数据单元) 二维表:行和列 表头 数据单元 字段名 1 数据 1 字段名 2 数据 2 以实际案例来进行处理:分析一个教学系统,教师负责教学,教学生,在教室教学生。 找出系统中所存在的实体:讲师表,学生表,班级表 找出实体中应该存在的数据信息 讲师:姓名,性别,年龄,工资 学生:姓名,性别,学号,学科 班级:班级名字,教室编号 关系型数据库:维护实体内部,实体与实体中间的联系 实体内部联系:每个学生都有姓名,性别,学号,学科信息 姓名 陈明 陈晶晶 王威 性别 男 女 男 学号 Itcast0001 Itcast0002 Itcast0003 学科 PHP JAVA UI 年龄 20 18 19 第二行的所有字段,都是在描述陈明这个学生(内部联系);第二列只能放性别(内部约束) 关系型数据库的特点之一:如果表中对应的某个字段没有值(数据),但是系统依然要分配 空间:关系型数据库 比较浪费空间 实体与实体之间的联系:每个学生肯定属于某个班级,每个班级一定有多个学生(一对多) 学生表 姓名 陈明 陈晶晶 王威 班级表 班级名称 PHP001 JAVA001 性别 男 女 男 学号 Itcast0001 Itcast0002 Itcast0003 学科 PHP JAVA UI 年龄 20 18 19 教师编号 B205 A203 解决方案:在学生表中增加一个班级字段来指向班级(必须能够唯一的找到一个班级信息) 性别 男 女 男 学号 Itcast0001 Itcast0002 Itcast0003 学科 PHP JAVA UI 年龄 20 18 19 班级名称 PHP001 PHP001 JAVA001 姓名 陈明 陈晶晶 王威 2
学生实体与班级实体的关联关系:实体与实体之间的关系 关键字说明 数据库:database 数据库系统:DBS(database system):是一种虚拟系统,将多种内容关联起来的称呼 DBS=DBMS+DB DBMS:database management system ,数据管理系统,专门管理数据库 DBA::database administrator,数据库管理员 行/记录:row/record :本质是一个东西:都是指表中的一行(一条记录):行是从结构角 度出发,记录是从数据角度出发 列/字段:column/field,本质是一个东西 SQL SQL :structured query language :结构化查询语言(数据以查询为主:99%是在进行查询操 作) SQL 分为三个部分 DDL:data definition language :数据定义语言,用来维护数据的结构(数据库,表), 代表指令:create drop alter 等 DML:data manipulation language :数据操作语言,用来数据进行操作(数据表中的内 容),代表指令:insert ,delete,update 等;其中 DML 内部又单独进行了一个分类:DDL (data query language:数据查询语言,如 select) DCL:data control language ,数据控制语言,主要是负责权限管理(用户),代表指令: grant,revoke 等 SQL 是关系型数据的操作指令,SQL 是一种约束,但不强制(类似 W3C)不同的数据库 产品(如 ORacle,mysql)可能内部会有细微的区别 Mysql 数据库 Mysql:数据库是一种 c/s 结构的软件:客户端/服务器。若想访问服务器必须通过客户端(服 务器一直运行,客户端在需要使用的时候运行)。 交互方式 3
1. 客户端连接认证:连接服务器,认证身份 2. 发送 SQL 指令 3. 服务器接受 SQL 指令:处理 SQL 指令:返回操作结果 4. 客户端接受结果:显示结果 5. 断开连接(释放资源:服务器并发限制):exit /quit/ \q Mysql 服务器对象 没有办法完全了解服务器内部的内容;只能粗略的去分析数据库服务器的内部的结构。 将 mysql 服务器内部对象分成了四层:系统(DBMS)->数据库(DB)->数据表*(table)-> 字段(filed) 4
SQL 基本操作 基本操作:CRUD 将 SQL 的基本操作根据操作对象进行分类:分为三类:库操作、表操作(字段)、数据操作 库操作 对数据库的增删改查 1. 新增数据库 基本语法 Create database 数据库名字 [库选项] 5
库选项:用来约束数据库,分为两个选项 字符集设定 : charset/character set 具体字符集(数据存储的编码格式):常用 字符集:GBK 和 UTF8 校对集设定:collate 具体校对集(数据比较的规则) --双中划线:注释(单行注释),也可以使用#号 --创建数据库 Create database mydatabase charset utf8; 其中数据库名字不能用关键字(已经被使用的字符)或者保留字(将来可能会用到 的) --创建关键字数据库 Create database database charset utf8; 如果非要使用关键字或者保留字,那么必须使用反引号(esc 键下面的键在英文状 态下的输出``) --创建关键字数据库 Create database `database` charset utf8; 中文数据库是可以的,但是有前提条件,保证服务器能够识别(建议不用) --创建中文数据库 Create database `中国` charset utf8; 6
如果有乱码,解决方案:告诉服务器当前中文的字符集什么 Set names gbk; 当创建数据库 SQL 语句执行之后,发生了什么? 1. 在数据库系统中,增加了对应的数据库信息 2. 会在保存数据的文件夹下:data 目录,创建一个对应数据库名字的文件夹 3. 每个数据库下都有一个 opt 文件:保存了库选项 7
查看数据库 1. 查看所有数据库 -- 查看所有数据库 Show databases; 2. 查看指定部分的数据库:模糊查询 Show databases like ‘pattern’; %:表示匹配多个字符 _: 表示匹配单 个字符 --pattern 是匹配模式 -- 创建数据库 8
分享到:
收藏