MySQL数据库

目录

一,初始:MySQL数据库的环境配置

第一步:下载安装包

第二步:将my.ini素材拷贝到下载MySQL数据库那个文件里面,并对其进行更改路径

第三步:在window系统注册mysql服务

第四步:登录服务器进行维护和管理

二.初识MySQL

使用cmd窗口添加数据库

使用cmd窗口添加数据库

三,MySQL管理结构(一)

如何创建一个数据表?

列的类型

列类型——数值类型

列类型——字符串类型

列类型——时间类型

字段的属性

字段注释

查看表是否存在

查看支持的数据存储类型

查看表结构

表数据的删除,添加和修改(ALTER TABLE)

修改表名

添加字段(就是表列)

删除字段(将一个列删除)

修改字段(不换名字,只改参数类型)

修改字段(更换名字,修改参数)

四,MySQL管理结构(二)

主键约束和唯一约束

        主键约束:

        唯一约束:

数据的增删改和备份

增加——INSERT

修改——UPDATE(修改一定要添加条件,不然就凉凉)

删除——DELETE

备份——CREATE TABLE

五,MySQL查询(简单查询)

简单查询

条件查询

模糊查询

聚合函数

常用的日期函数

六,MySQL查询(二,排序和子查询)

排序(order by )

分页查询(LIMIT)

分组查询(GROUP BY)

子查询

七,MySQL查询(三,多表查询)

内连接(INNER JOIN)     

三表查询

左外连接查询(LEFT JOIN)

八,MySQL事务和视图

事务

视图

九,MySQL索引

索引的几种类型:

普通索引

复合索引

什么情况下会索引失效

十,MySQL常用命令

常用数据类型

字符数据类型

时间类型的字符串

字段属性

逻辑词

聚合函数

函数字符串

异常错误总结


一,初始:MySQL数据库的环境配置

第一步:下载安装包

        从地址MySQL :: Download MySQL Community Server中选择windows的版本下载

每个MySQL数据库的简介:

        1,MySQL Community Server 社区版本,开源免费,但不提供官方技术支持

        2,MySQL Enterprise Edition 企业版本,需付费,可以试用30天。

        3,MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。

        4,MySQL Cluster CGE 高级集群版,需付费。

        5,MySQLWorkbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

        6,MySQL Community Server开源免费,这是我们通常用的MySQL的版本。

第二步:将my.ini素材拷贝到下载MySQL数据库那个文件里面,并对其进行更改路径

        将路径换为MySQL安装的路径,例:D:\YANG\软件\Baidu\BaiduNetdisk\mysql-5.6.28-winx64

第三步:在window系统注册mysql服务

        以管理员的身份进入cmd窗口,更改根目录,进入MySQL版本文件里面的bin文件路径,然后执行mysql -install命令,查看是否提示服务安装成功,运行services.msc启动服务,找到MySQL服务,直接进行启动,然后退出cmd窗口即可

第四步:登录服务器进行维护和管理

        再次进入到bin文件路径打开cmd窗口,MySQL默认账户是root,密码为空,输入mysql -u root -p命名回车,初始密码为空,继续回车即可登录

        修改密码:

        进入bin文件路径cmd窗口,输入mysqladmin -u root -p password 147258(新密码),回车然后输入旧密码,回车输入mysql -u root -p,输入新密码即可

        输入show variables like '%version%';可以显示版本信息,后面要使用;结束

        输入net start mysql可以停止MySQL服务,也可以输入services.msc打开服务窗口找到MySQL服务进行关闭

二.初识MySQL

DDL——定义

DBL——操作

DQL——查询

DCL——控制

使用cmd窗口添加数据库

注意事项:

        1,写SQL语句时,按照规范要求来说,命令需要全大写

        2,命令不区分大小写,但是值区分大小写

        3,命令、关键词、表名、库名、字段名都不区分大小写

使用cmd窗口添加数据库

        CREATE DATABASE 数据库名称 (创建数据库)创建的虽然是大写,但是因为不区分大小写所有查看目录时会出现小写情况

SHOW DATABASES;(查看数据库目录)

USE 数据名;(调用数据库)会弹出database changes翻译:(数据库化)

DROP DATABASE 数据库名;(删除数据库)

quit (退出数据库)

三,MySQL管理结构(一)

关系型数据库,其以行和列的形式存储数据,关系型数据库这一系列的行和列被称为表,一个表组成一个数据库。

如何创建一个数据表?

注意点:

1,CREATE TABLE 创建数据表

2,IF NOT EXLSTS 用来判断这个表名是否存在,结合上一条一起使用8

3,表中的字段名和列类型是必须要有的,不然会报错

4,被[ ]包裹的属性可以忽略不写,如果要写按照下图规范进行书写

5,表名按照需求自行命名

列的类型

        列类型分为三种:

        1,数值类型

        2,字符串类型

        3,时间类型

        列类型后面添加(),用来控制输入长度例:INT(5) 接收5个int类型的字符

列类型——数值类型

        常用的类型:

        1,INT类型

        2,DOUBLE类型

        3,如果涉及到金额或需要高精度的浮点数使用DECIMAL类型

列类型——字符串类型

        常用类型:

        1,VARCHAR类型,可以控制最大字符输入数量65535个

        2,CHAR类型,可以控制最大字符输入数量255个

列类型——时间类型

        常用类型:

        1,DATE类型,获取年月日

        2,TIME类型,获取时分秒

        3,DATETIME类,获取年月日时分秒

字段的属性

        1,UNSIGNED 不允许出现负数,适用于数据类型

        2,ZEROFILL 当数据类型位数不足时,在前面用0填充,例:INT(3)如果输入5,会出现005。

        3,AUTO_INCREMENT 自动增长,每增加一条数据,会自动加1,通常适用于设置主键,只适用于整数类型,可以自定义初始值和步长,注意点:如果增长中的某条数据删除,那个下一条数据的增长不会自动填充,而是跳过进行下一个数值

        4,NOT NULL 如果用NULL,就是没有插入数值,如果是NOT NULL,必须要有数值

        5,DEFAULT 用于设置默认值,性别之类

字段注释

        字段注释用COMMENT '注释内容',使用单引号

查看表是否存在

        SHOW TABLES;

查看支持的数据存储类型

        SHOW WNGINES;

查看表结构

        DESC 表名;

表数据的删除,添加和修改(ALTER TABLE)

删除,添加和修改的操作通用ALTER TABLE进行操作

修改表名

        ALTER TABL`旧表名` RENAME AS`新表名`;

添加字段(就是表列)

        ALTER TABLE`表名` ADD `插入字段名` 类型 属性 注释;

删除字段(将一个列删除)

        ALTER TABLE `表名` DROP `删除的字段名`

修改字段(不换名字,只改参数类型)

        ALTER TABLE `表名` MODTFY `字段名` 数据类型 属性 注释;

修改字段(更换名字,修改参数)

        ALTER TABLE`表名` CHANGE`旧字段名` `新字段名` 数据类型 属性 注释;

使用方法截图参考:

四,MySQL管理结构(二)

数据库要以数据完整性为重点要求

        数据完整性 = 数据的精确性 + 数据的可靠性

数据的完整性主要分为三类:

        1,实体类完整性

        2,域完整性

        3,引用完整性

三者之间的关系

主键约束和唯一约束

数据库会采用多种方法保障数据的完整性,包括约束,规则和触发器,现在做约束

主键约束和唯一约束

只对一个表里的一个字段名进行约束,一个表里只能有一个主键约束,但是可以有多个唯一约束

        主键约束:

        1,保证数据的完整性

        2,加快数据库的操作速度

        3,添加新的主键值时,不允许有相同的主键值出现,避免出现实体不完整性的出现

        注意点:一个表只能有一个主键,主键列不允许出现空值。虽然表中允许没有主键,但是强烈建议给表加上主键。

        

        唯一约束:

        1,唯一约束不一样唯一值列有相同的数值出现,入身份证号,电话号,学生学号都具有唯一性,使用唯一约束可以包装数据的完整性

        注意点:一个表可以有多个唯一约束

        使用方法有两种:

        1,写在字段内,直接进行约束

                主键例:id INT(5) PRIMARY KEY COMMENT'学号'

                唯一例:id INT(5) UNIQUE KEY COMMENT'学号'

        2,写在字段外面进行约束

        删除方法主键和唯一有点区别:例图

数据的增删改和备份

增加——INSERT

修改——UPDATE

删除——DELETE

增加——INSERT

INSERT增加数据有两种增加情况:

        1,对表的每一个列值都进行添加,这个方法添加时要严格按照表的顺序要求来进行添加,例:

                INSERT `表名` VALUES(添加内容严格按照顺序进行添加);

        2,选择性对需要的内容进行添加,例:

                INSERT `表名` (选择需要添加的列类型) VALUES(按照前面列类型顺序,进行有序添加);

修改——UPDATE(修改一定要添加条件,不然就凉凉)

UPDATE修改时要添加条件,如果不添加条件,就会变为全表修改!!

        添加条件修改示例:

                UPDATE `表名` SET sex='女'{修改的内容} WHERE address='管城区';{修改的条件}

                可以理解为把管城区的人性别修改为

删除——DELETE

DELETE删除可以删除一行,也可以删除整个表

        注意:删除后自增序列不会被重置,新建表自增初始会从上一个表位置延续下来

        使用TRUNCATE `表名`;也可以做到删除,而且会重置自增序列

        删除列表中的某一行或者多行,示例:

                DELETE FROM `表名` WHERE id = 001;

                判断删除的位置,使用主键位置作为删除的标,因为不会重复的原因,可以确保删除的正确性,也可以使用唯一约束

备份——CREATE TABLE

CREATE TABLE备份需要重建一个表,可以选择整表备份,也可以选择部分列进行备份,也可以对需要的行进行备份

        整表备份:

                CREATE TABLE`备份表名` SELECT * FROM 表名;

        选择部分字段名备份:

                CREATE TABLE`备份表名` SELECT `字段名1`,`字段名2`,`字段名3`,.... FROM 表名;

        选择部分字段的行数备份:

                CREATE TABLE`备份表名`SELECT `字段名1`,`字段名2`,`字段名3`,.... FROM 表名 WHERE 使用主键列判断备份位置;

五,MySQL查询(简单查询)

什么是查询?关键字(SELECT)

        SELECT查询可以查询全表,也可以查询单个,多个字段,有查询的条件可以获取所需要的数据内容,

        1,查询是产生一个虚拟表

        2,看到的只是表显示的结果,并不是真正的储存

        3,每次执行查询只是从数据表中提取数据,并按照表的形式展示出来

        注意: * 号代表所有,可以用来所有表的查询,但是不建议使用,因为会影响运行效率

简单查询

        简单查询的几中情况:

        1,整表查询,* 代表所有,可以用来整表查询

        2,字段和部分字段查询

        3,可以对一行里面的几个数据进行求和,求平均数,求大小值查询

        4,可以使用CONCAT对查询的数据前面加字符,汉字等,也可以把两个或多个数据放到一起查询

        5,使用DISTINCT可以对查找的数据去重

条件查询

        条件查询四种逻辑情况:

        1,and,两边都存在的情况下才可以查找成功

        2,or ,两边的值都要,左边有打印,右边有也打印,不建议使用or条件查找,可以使用in解决,如果in无法解决,使用UNION,可以嵌套多层,在最后一个数据后面加上;分号,中间不用加,否则会出查找条件错误的情况

        3,in,选择性的查找

        4,not,排除not null的纪录,只查找不为null的

        5,范围查找,<>大于号和小于号,根据需求自行使用

模糊查询

        模糊查找关键字LIKE,使用情况:

        1,%号代表所有字符,在下标前就是查找下标前面所有字符,在后面就是查找下标后所有字符

        2,_下滑线代表一个字符,两下划线代表两个字符,可以在下标前面也可以在后面

        3,可以 %下标%,_下标_,%下标_,_下标%,都可以进行查找

聚合函数

        聚合函数只统计竖列的数据,五种方法统计:

        1,sun()求和

        2,avg()求平均数

        3,max()求最大值

        4,min()求最小值

        5,count()计算这个表单有多少行,可以使用*号和1,但是建议使用1效果一样,运行效率更快,也可以使用字段名,这样不会统计为null的纪录,但是会统计为空字符的纪录

        注意点:只统计竖着的列字段!!!

常用的日期函数

六,MySQL查询(二,排序和子查询)

排序(order by )

order by 做排序通常用于数字或者日期类型字段

        按照出生年月的降序排列————————等价于按照年龄升序排列

        order by使用事项:

        1,使用DESC是降序,不使用默认升序

        2,一个order by后面可以跟几个字段名,但是有优先级,先执行前面的字段

        3,通常使用于数据类型,字符类型也可以,但没有必要!

分页查询(LIMIT

分页的作用:节约资源,提高响应速度,优化用户体验

        LIMIT使用事项:

        1,重点:分页查询,关键字  limit   分页语句要写在最后

        2,LIMIT 起始位置,每页几个数据,第二页根据第一页递增,第三页根据第二页递增,以此类推...

分组查询(GROUP BY

        分组查询通常是结合聚合函数一起使用,并且通常在返回结果中将聚合函数的结果和分组的字段一起展示

        分组的使用:

        1,对这个字段列相同的列值做统计

        2,做函数条件查询时,不能使用WHERE,要用HAVING进行函数范围查询

子查询

        子查询本质就查询里面套查询!!!

        注意点:

        1,每个查询条件后面只能返回一行参数,如果where条件返回多行参数,则会报错!

        2,多重查询时,需要理清每个表之间的主键和外键,从哪个表先开始,需要提前梳理清除

七,MySQL查询(三,多表查询)

多表查询分五种:红色为常用连接查询

        1,内连接(INNER JOIN)

        2,左外连接(LEFT JOIN)

        3,右外连接(RIGHT JOIN)

        4,自动连接

        5,交叉连接

内连接(INNER JOIN

        关键字:INNER JOIN

        内连接查询结果是两个表或多个表同时拥有的数据,如果一个表有条件,另一个表没有条件,则不会产生查询结果,会造成数据丢失

        可以使用关键字,也可以使用WHERE

        

三表查询

        三表查询则是在FROM后面加上更多表,每添加一个表都需要对初始定下的主键做对比,新增的判断条件可以写在WHERE后面。注意判断条件,建议使用INNER JOIN查询。

左外连接查询(LEFT JOIN

        关键字:LEFT JOIN

        左外连接查询,会将左表查询的条件结果都打印出来,右表或右边多表如果符合条件就会有结果,如果右边查询不到,会以NULL来显示,这样不会丢失数据

八,MySQL事务和视图

事务

        事务必须具备一下四个属性,简称ACDI属性

        1,原子性(Atomicity)

        事务的各步操作是不可分的,要么都执行,要么都不执行

        2,一致性(Consistency)

        当事务完成时,数据必须保持一致

        3,隔离性(Isolation)

        并发事务之间的彼此隔离,独立,它不能以任何方式,依赖或影响其他事务

        4,持久性(Durability)

        事务完成后,它对数据库的修改被永久保持

        当一个操作结束后,会默认自动提交,事务就是将许多操作整合到一起,一个操作出现异常,可以进行回滚,重置刚才的操作

        默认提交是1,自动提交是0

        修改默认提交:SET AUTOCOMMIT = 0;

        提交:COMMIT;

        回滚:ROLLBACK;

视图

关键字:IVEW

创建一个视图表,把查到结果单独创建一个视图,方便后期查找,可以直接打开视图

九,MySQL索引

索引的关键字:INDEX

索引的几种类型:

        1,普通索引

        2,主键索引

        3,唯一索引

        4,复合索引

        5,全文索引

        6,空间索引

        注意:主要学习普通索引和复合索引,主键索引和唯一索引在创建主键约束和唯一约束的时候,就会自带主键索引和唯一索引

索引的作用:

        1,提高数据库的检索速度

        2,改善数据库性能

索引储存类型分类:

        B-树索引:LnnoDB,MyISAM均支持;

        哈希索引:

索引的创建原则:

        1,频繁搜索的列

        2,经常用作查询的列

        3,经常排序,分组的列

        4,经常用作链接的列

索引的删除:

        DROP INDEX 索引名字 ON 索引所在的表名

普通索引

普通索引的命名:使用INDEX_列名

        CREATE INDEX 索引名 ON 表名(列名,对那个创建索引)

复合索引

复合索引的命名:使用INDEX_列名1_列名2_列名3...

        CREATE INDEX 索引名 ON 表名(列名1,列名2,列名3

        注意点:查询条件时,一定要带上左边第一个列名1,可以顺序颠倒,如果没有列名1则会出现索引失效的情况

什么情况下会索引失效

1,模糊查询like使用“name%”索引可用,“%name”索引失效

2,组合索引包含从左到右的字段使用索引,不包含左边的字段索引失效

3,组合索引范围搜索,范围搜索后的字段不使用索引

4,条件字段数据类型不匹配,导致索引失效

5,联合查询时,字符集不匹配导致索引失效

6,不等于导致索引失效,不等于的情况包括(!= 、、not in)

7,字段内容为null,导致索引失效

8,or前后条件都包含索引则走索引,or前后有一个不包含索引索引失效

9,添加索引的字段上使用函数或者计算,导致索引失效,函数包,ABS,UPPER,DATE,DAY,YEAR等

,MySQL常用命令

CREATE——创建

TABLE——表格

IF——如果

NOT——没有

EXISTS——文件

例:CREATE TABLE IF NOT EXISTS `表名`

常用数据类型

TINYINT——非常小的数据

INT——标准整数

DOUBLE——双精度浮点数

DECIMAL——字符串形式的浮点,作用于银行,金额,精细度极高的数据类型

字符数据类型

CHAR——固定字符串,0~255个字符

VARCHAR——可变字符串,0~65535个字符串

TEXT——文本串,0~65535个字符串

时间类型的字符串

DATE——年月日

TIME——时分秒

DATETIME——年月日时分秒

TIMESTAMP——时间戳

字段属性

UNSIGNED——不允许出现负数

ZEROFILL——位数不足,前默认用零填充,同时不允许出现负数

AUTO_INCREMENT——自增

NULL——该列允许有空值

NOT NULL——改列不允许有空值

DEFAULT——设置默认字段值

COMMENT——字段注释

********************************************************************

SHOW TABLE——查找表是否存在

SOHW ENGINES——查看系统所支持的搜索引擎

——————————————————————

ALTER——改变

RENAME AS——修改表名

ADD——添加新字段

MODIFY——不修改字段名,只修改属性

CHANGE——及修改字段名,还修改属性

————————————————————————————

UNIQUE KEY——唯一约束

PRIMARY KEY——主键约束

——————————————————

UPDATE ——(改的时候一定要带上条件否则就是整表修改)

SET——新修改的数据,

——————————————————————

INSERT——插入()

VALUES——价值

例:INSERT `表名`VALUES(字段值1,字段值2,字段值3...),(字段值1,字段值2,字段值3...)...

DROP——删除,速度最快,不支持回滚,属于DDL,删除表中所有数据,包括索引和权限

DELETE——删除,速度慢,支持回滚,属于DML,表结构存在删除部分或全部数据,逐行删除,速度最慢

TRUNCATE——删除,速度快,不支持回滚,属于DDL,表结构存在,删除全部数据

——————————————————————

SELECT——选择(

FROM——从....开始

WHERE——判断在哪里

逻辑词

AND——两边都对是对

OR——左边对要,右边对也要

IN——选择性抽取一部分数据

聚合函数

SUM——相加一个字段的和

AVG——求一个字段列的平均值

MAX——求一个字段的最大值

MIN——求一个字段的最小值

COUMT——计算一共有多少行数据

————————————————————

函数字符串

CONCAT——一行里面字段值进行链接

INSERT——字符串替换

LOWER——转为小写

UPPER——转为大写

SUBSTRING——字符串截取

—————————————————————

ORDER BY——排序,使用在数据类型和时间类型,默认升序排列

DESC——作用于排序后面,进行降序排列

—————————————————————

LIMIT——分页查询

—————————————————————

GROUP BY——分组查询

—————————————————————

INDEX——索引

EXPLAIN——返回结果路劲

异常错误总结

1,多表查询时,子查询返回多行数据时,会报子查询返回多行的错误,只需将判断方式改为in即可

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值