![](https://img-blog.csdnimg.cn/20190222091719523.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MYSQL基础及进阶
文章平均质量分 70
首先绝对是mysql的基础功能和用法,后边介绍一些实际的应用和底层原理
chaizepeng
每天进步一点
展开
-
1、数据库简介
数据库是什么数据库是一种用来存储数据的仓库,是一种高效存储和处理数据的介质(载体)。我们通常口中所说的数据库指的是数据库管理系统(DBMS),是一种用于方便管理数据库的软件。数据库的分类根据存储的介质(载体)不同可将数据库分成关系型数据库(SQL)和非关系型数据库(NOSQL)。关系型数据库将数据保存在磁盘中,对数据进行分类,每一类数据对应一张二维表,以二维表的格式存储数据,容易理解;...原创 2019-02-26 10:30:50 · 396 阅读 · 0 评论 -
2、安装和连接mysql
安装mysql1、官网下载mysql下载网址:https://www.mysql.com/ 2、解压并配置mysql解压下载的(前提下载的zip版本的mysql)mysql安装包,放到指定磁盘配置环境变量:将mysql下的bin目录的全路径名配置到环境变量的path属性中在mysql目录下自定my.ini文件,其中添加以下配置(如果没有m...原创 2019-02-26 10:45:39 · 190 阅读 · 0 评论 -
3、数据库中的字符集和校对集
字符集字符集指的就是存储数据到硬盘时用到的编码方式,mysql中操作字符集的基本sql如下:show character set; -- 查看服务器支持哪些字符集show variables like ‘character_set%’; -- 查看服务器对外处理的默认字符集set character_set_client = gbk; -- 设置处理客户端的数据使用的字符集s...原创 2019-02-26 15:10:50 · 1317 阅读 · 0 评论 -
4、mysql数据库的权限管理
权限管理指的是对试图连接和操作数据库服务器的用户进行访问控制关于权限管理的一些sql实例如下:-- 首先通过cmd窗口连接mysql服务器mysql -u root -p *******-- mysql数据库下有一个user表,里边存储的是user的信息select user from user;-- 添加一个用户create user 用户名@主机名 identified...原创 2019-02-27 09:27:58 · 155 阅读 · 0 评论 -
5、mysql中的库操作
对数据库的操作包括对数据库的增、删、改、查接下来介绍一下基本的sql语句-- 创建数据库create database 数据库名称 字符集(charset utf8);create database czpdb charset urf8;-- czpdb 数据库在磁盘中就是一个文件夹,它下边的db.opt文件用于存储字符集、校对集-- 查看数据库show databases...原创 2019-02-28 11:29:24 · 133 阅读 · 0 评论 -
6、mysql中字段
对数据表的操作是比较重要的,在实际开发中,日常做的主要工作就是对数据表的操作对数据表的操作分为两大部分:操作数据表的结构、操作数据表中的数据组成数据表的基本单元就是字段,所以,接下来先介绍一下mysql中的字段mysql中的字段大致分为三大类:数值型、日期时间性、字符串型,分类如下:接下来介绍一下经常用到的类型:integer 一般用于标记、基本数字的声明,占用4个字...原创 2019-03-06 10:51:24 · 313 阅读 · 0 评论 -
7、mysql中的表结构操作
之前已经介绍了字段以及修饰字段的一些属性,根据特定的对象可以将字段进行组合,这就有了表的概念,接下来介绍一下如何操作数据表结构。对数据表结构的操作有添加表、修改表、删除表、查看表结构。添加表格式:create table [if not exist] 表名( 字段名字1 数据类型 ,字段名字1 数据类型 )[表选项];介绍一下每个部分的意思:create table 固定...原创 2019-03-06 14:39:39 · 207 阅读 · 0 评论 -
8、mysql数据表中数据的增删改
已经介绍了数据表的创建、修改和删除,接下来介绍一下如何往数据表中添加数据、修改数据、删除数据添加数据# 默认给表中所有字段添加数据,要保证添加的数据列和字段列一致insert into user values(5,12,'wangwu');# 为表中指定的字段添加数据insert into user (name) values ('wuliu');# 为表中指定的字段一次性添...原创 2019-03-06 16:42:00 · 361 阅读 · 0 评论 -
9、mysql数据表中数据的查询(1)
使用数据库最终要的莫过于查询数据,所以这里将会详细的介绍mysql数据库中查询语句的使用普通查询使用基本的select关键字进行查询,其语法及使用如下# 格式select [select选项] 字段 [as 别名] from 数据表;# 查询出所有字段的值,不建议直接写*select * from user;# 查询出指定字段的值select id,name from ...原创 2019-03-06 16:42:14 · 1004 阅读 · 0 评论 -
10、mysql数据表中数据的查询(2)
介绍一下mysql中查询的重中之重,连接查询创建student和teacher表,表中数据如下:student teacher 交叉连接查询查询结果是连接的几个表中满足条件的相关联的数据的交集sql SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s ,(...原创 2018-12-05 14:29:19 · 203 阅读 · 1 评论 -
11、mysql数据表中数据的查询(3)
说一下子查询,子查询的意义就是使用一个查询语句做为另一个查询语句的条件,一般使用exists和in来引导子查询exists子查询exists 放在 where 之后使用,可以看成查询数据所满足的一个条件,只是这个条件的值比较特殊(true或false),当子查询返回数据时则结果为true,没有数据时结果为false使用exists子查询时,一般使用到了外表中的字段作为子查询的条件...原创 2018-12-06 17:07:54 · 346 阅读 · 0 评论 -
12、数据库的设计范式
设计的数据表一般都是根据实际业务实体模型进行创建,为了提高存储的效率,设计数据表时一般按着几个标准进行设计第一范式 每个字段的数据具有原子性,使用字段的数据时不用再解析,可直接使用 第二范式 表的每一个字段都必须依赖主键,不能有任何一列与主键没有关系或只依赖于部分主键(一张表之描述一个实体,如果实体存在属性可以确定一个实体则可直接作为主键,如果存在多个属性才能确定一个实体,则可...原创 2019-03-06 16:56:24 · 119 阅读 · 0 评论 -
13、mysql中视图的应用
是什么视图是一种有结构没结果的虚拟表,其结构是从基表中产生的,视图主要用于查询数据。在sql层面上来看,视图就是对select查询语句的封装,我们看到的虚拟表(也就是视图)就是select语句查询出的结果组成的视图的作用视图可以节省sql语句,将一条复杂的查询语句用视图进行保存,之后对视图进行操作即可,方便操作视图操作主要针对查询,对视图结构进行操作不会影响基表数据,相对安全...原创 2019-03-06 17:34:49 · 176 阅读 · 0 评论 -
14、mysql中事务的应用
是什么事务是一种保护连续操作同时满足(实现)的一种机制,用来保护数据的完整性,只适用于数据操作,不适用于结构操作,只有innodb引擎的表具有事务安全的机制。就是说,在一个事务中做一系列的sql操作,当且仅当一系列sql都执行成功时,才会对数据库的数据进行对应的持久化事务的特性事务有四大特性:ACIDA:atomic 原子性,事务的整个操作是一个整体,不可分割,要么全...原创 2019-03-06 18:30:53 · 153 阅读 · 0 评论 -
15、sql编程基本语法介绍
使用sql也可以像java一样进行程序编写,说到编程,就离不开变量和流程控制,接下来介绍一下变量sql中的变量可分为系统变量和自定义变量系统变量 用于控制服务器表现的变量 查看所有系统变量 showglobal variables [like '%关键字%']; -- 查看全局变量 show session variables [like '%关键字%']; -...原创 2019-03-07 15:22:33 · 198 阅读 · 0 评论 -
16、mysql中函数的创建和使用
sql语言可以进行编程,说到编程,那一定少不了使用函数对代码进行最小级别的封装,接下来介绍一下mysql中函数的写法以及应用mysql中的函数可分为两类:系统函数、用户自定义函数。简单的介绍几个常用的系统的函数:函数 功能 SUBSTRING 截取字符串 CHAR_LENGTH 获取字符串长度 DATE_FORMAT 格式化日期时间 CONCAT...原创 2019-03-16 16:32:19 · 3757 阅读 · 0 评论 -
17、mysql中的存储过程的应用
其实存储过程也可以叫做过程,而函数也可以叫做存储函数,两者都是处理数据的一种方式,但是不同在于函数是必须要有返回值的,而过程则没有返回值,过程可以理解为是一种用来处理数据的没有返回值的函数,但是他们的语法又存在区别,接下来详细的介绍一下存储过程的使用创建过程:// 创建过程create procedure 过程名字([参数列表])begin -- 过程代码end;// 示例...原创 2019-03-16 18:09:04 · 103 阅读 · 0 评论 -
18、数据的备份和还原
mysql中数据的备份有以下几种方式:1、直接在数据库文件夹中复制对应的表结构以及数据文件进行数据备份2、将每一张表中的数据进行备份3、使用mysqldump.exe 进行备份4、增量数据备份接下来就详细的介绍一下每一种备份的具体操作直接在数据库文件夹中复制对应的表结构以及数据文件进行数据备份这一种备份的方式比较适用于myISAM引擎 的数据库,只需要将对应数据库下的想...原创 2019-03-25 13:29:11 · 223 阅读 · 0 评论 -
19、mysql中定时器的创建和使用
mysql中可以使用定时器,用来进行计划的调度,在mysql中定时器通过事件的形式存在,接下来介绍一下定时器的使用创建定时器CREATE EVENT IF NOT EXISTS 计划名 -- 计划频率和开启计划时间或者是计划执行的时间 -- 前一个可以实现持续的计划调度,后一个到指定时间进行调度,执行完结束,没有持续性 ON SCHEDULE [EVERY 10 SECOND ST...原创 2019-03-26 13:16:35 · 350 阅读 · 0 评论 -
20、mysql中触发器的使用
是什么触发器不同于定时器,触发器用在表中的记录上,每当表中的记录进行增、删、改操作时,则绑定在表上的对应的触发器被触发,进行对应的操作。(有点类似于java中的swing中的监听器)怎么用可以表中每一条记录的操作前后针对增、删、改操作添加对应的触发器,一张表最多可以有6个触发器创建触发器-- 创建触发器的格式create trigger 触发器名字 触发时间 事件类型 ...原创 2019-03-26 13:41:08 · 129 阅读 · 0 评论 -
21、mysql修改密码的方法总结
修改mysql服务的连接密码其原理在于修改mysql服务自带mysql数据库下user表中的数据,下边三种修改方式和使用场景不同,不过最终的原理一致,前两种需要连接mysql服务之后修改,第三种方式无需连接服务即可修改。1.强制修改root密码适用于修改了默认的root用户密码并且忘记了root用户密码的场景,具体步骤如下:1.1 vi /etc/my.cnf找到[mysqld],...原创 2020-03-27 22:28:27 · 127 阅读 · 0 评论 -
22、mysql主键自增值和偏移量的查看和修改
1、查看mysql自增值和偏移量show variables like '%increment%';auto_increment_increment=1 -- 自增倍数是1auto_increment_offset=1 -- 偏移量是1上边这是一般的设置,每次每次主键自增的倍数是1,偏移量是1例如:插入第n条记录,那么它的 主键值 = (n-1)*auto_incremen...原创 2018-11-24 17:20:23 · 2255 阅读 · 0 评论 -
24、mysql连接线程的show和kill
1、登陆到mysql服务器 Mysql –h ip –u 用户名 –p 密码;2、检查当前连接的线程 show full processlist 或 show processlist 或 selelct * from information_schema.processlist; I...原创 2018-12-05 16:25:36 · 954 阅读 · 0 评论 -
25、sql分析命令explain和desc
explain和desc命令的效果相同,命令格式如下:mysql> explain SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s LEFT JOIN teacher t ON s.name = t.name;+----+-------------+-------+-------+---...原创 2018-12-05 17:55:19 · 946 阅读 · 0 评论 -
26、临时表的创建和重复数据的处理
UPDATE student b SET b.sname = 'dd' WHERE b.id = (SELECT a.id FROM student a WHERE a.id = '3')Mysql中根据条件(表A中的字段)操作表A中的数据时是不可以的所以借助临时表来删除/更新重复的数据,原理就是删除每组重复数据中除id值最大的其他记录select id,name from ...原创 2018-12-07 10:59:36 · 1119 阅读 · 0 评论