
--------MySQL笔记
pianpiannia
这个作者很懒,什么都没留下…
展开
-
数据库——(1)基础知识
1.什么是数据库? 数据库:database,存储数据的 数据库:高效的存储和处理数据的介质(主要是两种:内存和磁盘)2.数据库的分类? 基于存储介质不同,分为两类:关系型数据库(SQL)和非关系型数据库(NoSQL:Not Only SQL,不是关系型数据库都叫非关系型数据库)3.不同的数据库产品? 关系型数据库 大型:Oracle,DB2 中型:SQL-SE原创 2017-07-22 11:12:06 · 469 阅读 · 0 评论 -
数据库——(17)存储过程
存储过程简称过程,procedure,一种用来处理数据的方式 存储过程是一种没有返回值的函数创建过程 基本语法: create procedure 过程名字([参数列表]) begin 过程体 end查看过程 函数的查看方式完全适用于过程:关键字换成procedure 查看所有过程:show procedure status[like ‘pattern’]; 查看过程创建语句:sho原创 2017-07-26 21:48:07 · 295 阅读 · 0 评论 -
数据库——(16)函数
函数分为两类:系统函数和自定义函数系统函数 系统定义好的函数,直接调用即可。 任何函数都有返回值,因此函数的调用是通过select调用。 MySQL中,字符串的基本操作单位(最常见的是字符) 一些:substring,char_length,length,instr:判断某个字符是否存在,存在返回位置,失败返回0。lpad:左填充,将字符串按照某个指定的填充方式填充到指定长度。inse原创 2017-07-26 15:39:42 · 343 阅读 · 0 评论 -
数据库——(15)触发器
触发器:trigger,事先为某张表绑定好一段代码,当表中的某些内容发生改变的时候(增和改)系统会自动触发代码、执行。 触发器要素:事件类型,触发时间,触发对象事件类型:增删改:insert,delete,update触发时间:前后:before,after触发对象:表中的每一条纪录(行)一张表中只能拥有一种触发时间的一种类型的触发器,最多一张表能有6个触发器。创建触发器 在MySQL高级原创 2017-07-26 13:58:58 · 267 阅读 · 0 评论 -
数据库——(14)变量
变量分为两种:系统变量和自定义变量系统变量 系统定义好的变量:大部分的时候用户根本不需要使用系统变量,系统变量用来控制服务器的表现,如autocommit,auto_increment等。查看系统变量:show variables; 查看变量值:select @@变量名; 修改系统变量:两种方式:会话级别和全局级别会话级别:临时修改,当前客户端当次连接有效set 变量名 = 值;set @@原创 2017-07-26 13:20:48 · 362 阅读 · 0 评论 -
数据库——(13)事务
事务:transaction,一系列要发生的连续的操作。事务安全:一种保护连续操作同时实现的一种机制。 事务安全的意义:保证数据操作的完整性。事务原理 事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,事务日志只有在得到commit命令才会同步到数据表,其他任何情况都会清空(rollback,断电,断开连接)。 事务操作 事务操作分为两种:自动事务(默认的)、手动事务手动事务:1原创 2017-07-26 11:25:44 · 252 阅读 · 0 评论 -
数据库——(12)数据备份与还原
备份:将当前已有的数据或者纪录保留 还原:将已经保留的数据恢复到对应的表中为什么要做备份还原?1.防止数据丢失:被盗、误操作。2.保护数据纪录数据备份还原的方式有很多种:数据表备份、单表数据备份、SQL备份、增量备份。数据表备份 不需要通过SQL来备份:直接进入到数据库文件夹复制对应的表结构以及数据文件,以后还原的时候,直接将备份的内容放进去就行。前提条件:根据不同的存储引擎有不同的区别。原创 2017-07-25 21:13:14 · 429 阅读 · 0 评论 -
数据库——(11)视图
视图:view,是一种结构(有行有列)但是没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。创建视图 基本语法:create view 视图名字 as select 语句;创建单表视图:基表只有一个create view my_v1 as select * from my_class;创建多表视图:基本至少两个create view原创 2017-07-25 15:17:44 · 317 阅读 · 0 评论 -
数据库——(10)联合查询和子查询
联合查询 将多次查询(多条select语句),在纪录上进行拼接(字段不会增加)。 基本语法:多条select语句构成,每一条select语句获取的字段数必须严格一致(但是字段类型无关)。 select 语句1 union[union 选项] select 语句2…….; union选项:与select选项一样有两个,但默认的有区别all:保留所有distinct:去除重复(默认的)sel原创 2017-07-25 13:02:38 · 533 阅读 · 0 评论 -
数据库——(9)外键
外键:foreign key,外面的键(键不在自己表中):如果A表中有一个字段(非主键)指向B表中的主键,那么称该字段为外键。增加外键 外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的问题)。 1.创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段)references 外部表(主键字段)。create table my_foreign1(id原创 2017-07-25 09:52:40 · 931 阅读 · 0 评论 -
数据库——(8)连接查询
连接查询:将多张表进行纪录的连接(按照某个指定的条件进行数据拼接)。 最终结果是:纪录数有可能变化,字段数一定会增加(至少两张表的合并)。连接查询的意义:在用户查看数据的时候,需要显示的数据来自多张表。 连接查询:join,使用方式:左表 join 右表 左表:join左边的表;右表:join右边的表。 SQL中将连接查询分为四类:内连接,外连接,自然连接和交叉连接。交叉连接:cro原创 2017-07-24 19:47:07 · 232 阅读 · 0 评论 -
数据库——(6)关系和范式
关系:将实体与实体的关系,反应到最终数据库表的设计上来。将关系分为三种:一对一、一对多、多对多。 所有的关系都指的是表与表之间的关系范式:Nomal Format,是一种离散数学中的知识,是为了解决一种数据的存储与优化的问题:保存数据的存储之后,凡是能通过关系寻找出来的数据,坚持2重复存储:终极目标是为了减少数据的冗余。 范式是一种分层结构的规范,分为6层:每一层都比上一层更加严格:若要满足下一原创 2017-07-24 10:46:50 · 647 阅读 · 0 评论 -
数据库——(5)列属性
列属性 列属性:真正约束字段的是数据类型,但是数据类型的约束很单一需要一些额外的约束来更加保证数据的合法性。有以下属性:1.空属性:NULL(默认)和NOT NULL(不为空)。 虽然默认的数据库基本都是字段为空,都是在实际开发的时候,尽可能保证所有的数据都不应该为空,因为空数据没有意义,空数据没有办法参与计算。create table my_teacher(name varchar(20)原创 2017-07-23 20:50:50 · 597 阅读 · 0 评论 -
数据库——(4)数据类型
所谓数据类型:对数据进行统一分类,从系统的角度出发是为了能够统一的方式进行管理,更好的利用有限的空间。 SQL中将数据类型分成三大类:数值类型,字符串类型和时间日期类型。一、数值类型 都是数值,分为整数型和小数型: 整数型:考虑节省磁盘空间,系统将整数型细分为5类 1.Tinyint(常用):迷你整形,使用1个字节存储,表示的状态最多为256种(原创 2017-07-23 11:06:19 · 604 阅读 · 0 评论 -
数据库——(3)数据操作
*数据操作*新增数据 方案1:给全表字段插入数据,不需要指定字段列表:要求数据的值出现的顺序必须与表设计的字段出现的顺序一致:凡是非数值数据,都需要使用引号包裹。 insert into 表名 values(值列表); –可以一次性插入多条数据。 方案2:给部分字段插入数据 insert into 表名(字段列表) values(值列表);查看数据 select */字段列表 from 表原创 2017-07-22 13:30:28 · 266 阅读 · 0 评论 -
数据库——(2)库操作和表操作
*库操作* 对数据库的CRUD 基本语法 Create database 数据库名字[库选项]; 库选项:用来约束数据库,分为两个选项 字符集设定:charset/character set 具体字符集(数据存储的编码格式):常用GBK和UTF8(注意没有不是UTF-8) 校对集设定:collate 具体校对集(数据比较的规则) 其中:数据库名字不能用关键字或者保留字,原创 2017-07-22 13:02:57 · 355 阅读 · 0 评论 -
数据库——(7)数据高级操作
新增数据 基本语法:insert into 表名[(字段列表)] values(值列表); 当主键存在冲突的时候,可以选择性的进行处理:更新和替换。 主键冲突:更新操作 insert into 表名[(字段列表:包含主键字段)] values(值列表) on duplicate key update 字段=新值; 主键冲突:替换 Replace into 表名[(字段列表:包含主键)]原创 2017-07-24 13:08:03 · 294 阅读 · 0 评论