MySQL
MySQL
泥瓦酱
这个作者很懒,什么都没留下…
展开
-
mac MySQL Server 启动无效
从系统偏好设置启动MySQL时,多次点击start无效sudo chown -RL root:mysql /usr/local/mysqlsudo chown -RL mysql:mysql /usr/local/mysql/datasudo /usr/local/mysql/support-files/mysql.server start...原创 2018-12-28 14:34:36 · 3300 阅读 · 7 评论 -
03-04-联合查询
联合查询基本概念联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词UNION或UNION ALL联合查询:将多个查询的结果合并到一起(纵向合并):字段数不变,多个查询的记录数合并应用场景将一张表中不同的结果(需要对应多条查询语句来实现),合并到一起展示数据将男生身高升序排列,女生身高降序排列。最常见:在...原创 2019-01-04 14:23:46 · 226 阅读 · 0 评论 -
03-05-连接查询
连接查询连接查询:将多张表连到一起进行查询(会导致记录数行和字段数列发生改变)连接查询的意义在关系型数据库设计过程中,实体(表)与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一、一对多、多对多,通常在实际操作的过程中需要利用这层关系来保证数据的完整性。连接查询的分类交叉连接内连接外连接左外连接(左连接)右外连接(右连接)...原创 2019-01-04 14:26:11 · 188 阅读 · 0 评论 -
04-01-子查询
子查询什么是子查询子查询概念子查询:sub query子查询是一种常用的计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询通俗来讲就是:在一条select语句中,嵌入了另外一条select语句,那么被嵌入的select语句称之为子查询语句。主查询概念主要的查询对象,第一条select语句,确定了用户所有获取的数据目标(数据源),已...原创 2019-01-04 14:29:26 · 134 阅读 · 0 评论 -
04-02-数据备份与还原
整库数据备份与还原整库数据备份也叫做SQL数据备份:备份的结果是SQL指令。在MySQL中提供了一个专门用于备份SQL的客户端:mysqldump应用场景SQL备份是一种MySQL非常常见的备份与还原方式,SQL备份不只是备份数据,还备份对应的SQL指令(表结构):即便是数据库遭到毁灭性的破坏(数据库被删除),那么利用(SQL)备份依然可以实现数据还原。SQL备份因为需要备份表结构,因...原创 2019-01-04 14:31:58 · 136 阅读 · 0 评论 -
04-03-用户权限管理
用户权限管理在不同的项目中给不同的角色(开发者)不同的操作权限,为了保证数据库数据的安全通常,一个用户的密码不会长期不变,所以需要经常性的变更数据库用户密码来确保用户本身安全用户管理MySQL需要客户端进行连接认证才能进行服务器操作:需要用户信息,MySQL中所有的用户信息都是保存在MySQL数据库下的user表中select * from mysql.user \G;默认的,在安...原创 2019-01-04 14:34:43 · 283 阅读 · 0 评论 -
04-04-外键
外键外键概念如果公共关键字在一个关系中是主关键字,那么这个关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相互联系。以另一个关系的外键做主关键字的表称为主表,具有此外键的表被称为主表的从表。外键又称为外关键字。外键:foreign key一张表(A)中有一个字段保存的是另一个表(B)的主键。A:从表B:主表外键操作增加外键MySQL中提供了两种方式增加外键。...原创 2019-01-04 14:38:18 · 426 阅读 · 0 评论 -
04-05-视图
视图基本操作创建视图视图的本质是SQL指令(select语句)基本语法:create view 视图名字 as select 指令;// 可以是单表数据,也可以是链接查询,联合查询或者子查询create view student_class_v as selects.* from my_student as s left join my_class as cons.class_...原创 2019-01-04 14:40:53 · 154 阅读 · 0 评论 -
04-06-事务
事务事务安全事务概念事务(transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元。事务通常由高级数据库操作语言或编程语言书写的用户程序的执行所引起。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。事务基本原理基本原理:MySQL允许将事务统一进行管理(存储引擎innodb),将用户所做的操作,暂...原创 2019-01-04 14:43:10 · 150 阅读 · 0 评论 -
05-01-变量
变量MySQL本质是一种编程语言,需要很多变量来保存数据。MySQL中很多的属性控制都是通过MySQL中固有的变量来实现的系统变量系统内部定义的变量,系统变量针对所有用户(MySQL客户端)有效。查看系统所有变量:show variables [like 'pattern'];MySQL允许用户使用select查询变量的数据值(系统变量)基本语法:select @@变量名;修改系统...原创 2019-01-04 14:45:02 · 150 阅读 · 0 评论 -
05-02-流程结构
流程结构流程结构:代码的执行顺序if分支基本语法if在MySQL中有两种基本语法用在select查询当中,当作一种条件来进行判断if(条件,为真结果,为假结果)用在复杂的语句块中(函数/存储过程/触发器)if 条件表达式 then 满足条件要执行的语句;end if;复合语法if 条件表达式 then 满足条件要执行的语句;else 不满足条件要执行的...原创 2019-01-04 14:46:37 · 150 阅读 · 0 评论 -
05-03-函数
函数在MySQL中函数分为两类:系统函数(内置函数)和自定义函数。使用方式都是 select 函数名(参数列表);内置函数字符串函数char_length():判断字符串的字符数length():判断字符串的字节数concat():连接字符串instr():判断字符在目标字符串中是否存在,存在返回其位置,不存在返回0lcase():全部小写left():从左侧开始截取,直到...原创 2019-01-04 14:51:24 · 186 阅读 · 0 评论 -
05-04-变量作用域
变量作用域变量作用域:变量能够使用的区域范围局部作用域使用declare关键字声明(在结构体内:函数、存储过程、触发器),而且只能在结构体内部使用。declare关键字声明的变量没有任何符号修饰,就是普通字符串,如果在外部访问该变量,系统会自动认为是字段会话作用域用户定义的使用@符号定义的变量,使用set关键字会话作用域:在当前用户当次连接有效,只要在本连接中,任何地方都可以使用...原创 2019-01-04 14:52:35 · 164 阅读 · 0 评论 -
05-05-存储过程
存储过程存储过程概念存储过程(stored procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译(效率比较高),用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象(针对SQL编程而言)与函数区别相同点存储过程和函数目的都是为了可重复地执行操作数据库的sq...原创 2019-01-04 14:53:27 · 164 阅读 · 0 评论 -
05-06-触发器
触发器触发器概念基本概念触发器是一种特殊类型的存储过程,它不同于前面所说的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。触发器:trigger是一种非常接近于js中的事件的知识。提前给某张表的所有记录绑定一段代码如果该行的操作满足条件,则会触发这段提前准备好的代码作用可在写入数据表前,强制检验或者转换数据。保证数据安全触发器发生错误时...原创 2019-01-04 14:58:17 · 309 阅读 · 0 评论 -
MySQL上手目录
MySQL笔记目录。该内容涉及mysql的增删改查,左右内连接,子查询,触发器,存储过程等。01-01数据库基本概念01-02数据库基本操作01-03-数据库表操作01-04-数据库数据操作01-05-字符集02-01-列类型(整型)02-02-列类型(小数型)02-03-列类型(日期时间类型)02-04-列类型(字符串)02-05-列类型(记录长度)02-06-列属性(...原创 2019-01-04 15:04:37 · 349 阅读 · 0 评论 -
03-03-高级操作(运算符)
查询中的运算符算术运算符+ - * / %进行基本算术运算:通常不在条件中使用,而是用于结果运算(select字段中)create table ysf1(int_1 int,int_2 int,int_3 int,int_4 int)charset=utf8;insert into ysf1 values(100,-100,0,default);-- 算术运算sele...原创 2019-01-04 14:18:01 · 225 阅读 · 0 评论 -
03-02-高级操作(查询数据)
查询数据完整的查询指令select select选项 字段列表 from 表名 where 条件 group by 分组 having条件 order by 排序 limit 限制;select 选项系统该如何对待查询得到的结果all:默认的,表示保存所有的记录distinct:去重,去除重复(所有字段都相同)的记录,只保留一条字段列表有的时候需要从多张表中获取数据,在获取...原创 2019-01-04 14:15:27 · 276 阅读 · 0 评论 -
03-01-高级数据操作(新增 更新 删除 数据)
高级数据操作新增数据多数据插入只要写一次insert指令,可以直接插入多条记录基本语法:insert into 表名 [(字段列表)] values(值列表),(值列表)...;insert into my_teacher values('张三',10),('李四',15),('王五',20);主键冲突在有的表中使用的是业务主键(字段有业务含义),但是往往在进行插入数据的时候,...原创 2019-01-04 14:04:12 · 340 阅读 · 0 评论 -
01-01数据库基本概念
数据库概念数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。数据库分类网络数据库层级数据库关系数据库建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系型数据库基本概念关系数据库是建立在关系模型基础上的数据库。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。关系数据结构:指的是以什么方式来存储,...原创 2019-01-04 10:07:34 · 250 阅读 · 0 评论 -
01-02数据库基本操作
数据库基本操作数据库是数据存储的最外层(最大单元)创建数据库基本语法:create database 数据库名字 [库选项];create database mydatabase;库选项:数据库的相关属性字符集属性:charset 代表当前数据库下所有表存储的数据默认指定的字符集(如果当前不指定采用DBMS默认的字符集)基本语法:create database 数据库名称 ...原创 2019-01-04 10:12:11 · 203 阅读 · 0 评论 -
01-03-数据库表操作
数据库表操作创建数据表创建普通表基本语法:create table 表名(字段名 字段类型 [字段属性],字段名 字段类型 [字段属性],...) [表选项];create table class(name varchar(10));形式上有两种:库名.表名create table mydatabase2.class(name varchar(10));先选择数据库,在进...原创 2019-01-04 10:14:59 · 232 阅读 · 0 评论 -
01-04-数据库数据操作
数据库基本操作插入操作基本语法:insert into 表名 [(字段列表)] values(对应字段列表);insert into my_teacher (name,age) values ('Jack',30);注意:后面(values 中)对应的值列表只需要与前面对应的字段列表对应即可(不一定与表结构完全一致)insert into my_teacher (age,name...原创 2019-01-04 10:22:34 · 169 阅读 · 0 评论 -
01-05-字符集
字符集字符编码概念字符:各种文字和符合的总称,包括各国家文字、标点符号、图形符号、数字等。在计算机中能看到的任何内容都是字符构成的。字符编码:字符在计算机中存储的二进制代号。字符集概念字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。常见的字符集:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集。...原创 2019-01-04 10:26:52 · 159 阅读 · 0 评论 -
02-01-列类型(整型)
列类型(字段类型)整数类型tinyint : 迷你整形系统采用一个字节来保存的整形。一个字节=8位,最大能表示的范围是0-255。比如年龄smallint : 小整形系统采用两个字节来保存的整形。 两个字节=16位,表示范围是0-65535。mediumint : 中整形系统采用三个字节来保存数据。 三个字节=24位,int整形(标准整形),采用四个四节来保存数据。bigint...原创 2019-01-04 13:18:29 · 257 阅读 · 0 评论 -
02-02-列类型(小数型)
小数类型专门用来存储小数的,在MySQL中又将小数分为两类:小数型和定点型。浮点型浮点型又称之为精度类型:是一种肯能丢失精度的数据类型,即数据有可能不那么准确(尤其是在超出范围的时候)浮点型之所以能存储较大的数值(不精确),原因就是利用存储数据的位来存指数。整数型:一个字节所有的位都用来存放数据,精确浮点型:比如float 一个字节有部分位是用来存放指数,其余部分用来存放数据,不精确...原创 2019-01-04 13:22:03 · 340 阅读 · 0 评论 -
02-03-列类型(日期时间类型)
时间日期类型date日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01到9999-12-12,初始值为0000-00-00。time时间类型:能够表示某个指定的时间,但是系统同样提供三个字节来存储,对应的格式为:HH:ii:ss,但是MySQL中的time类型能够表示时间范围要大的多,能表示从-838:59:59 ~ 838:59...原创 2019-01-04 13:27:42 · 236 阅读 · 0 评论 -
02-04-列类型(字符串)
字符串类型char定长字符:指定长度之后,系统一定会分配指定的空间去存储数据基本语法:char(L):L代表字符数(英文与中文一样,这里是字符数)L长度为0到255varchar变长字符:指定长度后,系统会根据实际存储的数据来计算长度,分配合适的长度(数据没有超出设置的长度的前提下)。基本语法:varcher(L):L代表字符数,L的长度理论值为0到65535因为varche...原创 2019-01-04 13:33:19 · 293 阅读 · 0 评论 -
02-05-列类型(记录长度)
MySQL记录长度在MySQL中,有一项规定:MySQL的记录长度(record即行 row)总长度不能超过65535个字节varchar能够存储的理论值为65535个字符:字符在不同的字符集下可能占用多个字节。测试案例(varchar在MySQL中能够达到的理论值)创建表create table my_varchar(name varchar(65535))charset=ut...原创 2019-01-04 13:36:29 · 225 阅读 · 0 评论 -
02-06-列属性(简单属性)
列属性列属性又称字段属性,在MySQL中一种有六个列属性:null、默认值、列描述、主键、唯一键和自动增长nullnull属性:代表字段为空,如果对应的值为YES表示该字段可以为NULL.注意:在设计表的时候,尽量不要让数据为空MySQL的记录长度为65535个字节,如果一个表中有字段允许为NULL,那么系统就会设计保留一个字节来存储NULL,此时最终有效存储长度为65534个字...原创 2019-01-04 13:38:33 · 449 阅读 · 0 评论 -
02-07-列属性(主键)
主键顾名思义:主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性。创建主键随表创建系统提供了两种增加主键的方式。方案一:直接在需要当做主键的字段之后,增加primary key属性来确定主键create table my_pri1(name varchar(10) primary key)charset=utf8;方案二:在所有字段之后增...原创 2019-01-04 13:41:47 · 236 阅读 · 0 评论 -
02-08-列属性(自动增长)
自动增长自动增长:auto_increment,当给某个字段设置该属性后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增长后,填充数据。通常自动增长用于逻辑主键原理在系统中有维护一组数据,用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,在给定一个指定的步长当用户在进行数据插入的时候,如果没有给定值,系统在原始值上再加上步长变成新的数据自动增...原创 2019-01-04 13:53:17 · 577 阅读 · 0 评论 -
02-09-列属性(唯一键)
唯一键唯一键:unique key,用来保证对应的字段中数据唯一的。主键也可以用来保证字段数据唯一性,但是一张表只有一个主键唯一键在一张表中可以有多个唯一键允许字段数据为NULL,NULL可以有多个(NULL不参与比较)创建唯一键创建唯一键与创建主键非常类似。直接在表字段后面增加唯一键标识符:unique [key]create table my_unique1(id i...原创 2019-01-04 13:58:39 · 256 阅读 · 0 评论 -
02-10-表关系
表关系表关系:表与表之间(实体)有什么样的关系,每种关系应该如何设计表结构一对一一对一:一张表中的一条记录与另一张表中最多有一条明确的关系:通常此设计方案保证两张表中使用同样的主键即可。一对多一对多,通常也叫做多对一关系。通常一对多的设计方案,在多关系表中去维护一个字段,而这个字段是一关系的主键。多对多多对多:一张表的一条记录在另外一张表中可以匹配到多条记录,反过来也一样通常此设计...原创 2019-01-04 14:01:10 · 177 阅读 · 0 评论 -
mysql的时间函数系列
STR_TO_DATEstr_to_date(str,format) 转换函数,可以把一些杂乱无章的字符串转换为日期格式。另外,它也可以转换为时间。注意format串的格式一定要正确,大小写敏感。 如果格式不正确 会提示Incorrect datetime value: '2018-04-12 16:38:30' for function str_to_dateINSERT INTO...原创 2019-02-27 14:10:48 · 184 阅读 · 0 评论