文章目录
Mysql
安装
-
以管理员身份运行
-
自定义安装
修改安装目录(要求目录中不能有特殊字符或中文)
-
配置
数据库的连接
- 使用 mysql 自带的命令行工具
- 使用 cmd 命令窗口来连接 MySQL
格式:mysql -P端口号 -hmysql的主机名/IP地址 -u用户名 -p密码
mysql -P3306 -hlocalhost -uroot -proot
可视化客户端工具 Navicat 的使用
配置数据库连接属性
MySQL 的存储引擎
show engines\G
当创建数据库表的时候,需要指定所需的引擎。
创建数据库(数据库名(MySQL)右击->创建数据库):
在创建表是若没有选择引擎,则为默认引擎(在MySQL的配置文件中(MySQL的安装目录下)查看):
常见引擎(Myiasm)
使用三个文件来定义表:格式文件 数据文件 索引文件
MySQL 5.0 之前的默认数据库引擎,具有较高的插入、查询速度,但不支持事务和和行级锁和外键约束。
当在insert和update时会锁定全表,所以在执行写操作对的时候效率会很慢,
和innodb不同的是,myiasm保留了行数,所以在执行select count(*) from 的时候会很快,不需要扫描全表,当我们执行的读操作多于写操作的时候,并且不需要事务的支持,我们可以使用myisam这个引擎。
Innodb(首选)
提供了对事务的ACID操作,还提供了行级锁和外键约束,他的优势就是处理大量数据,在mysql启动的时候,首先会建立一个缓存池,主要是缓存数据和索引,但是操作大规模的数据查找时很慢,所以建议当需要数据库的事务操作时,使用这个,还有就是在写的时候不会锁定全表,所以在大规模并发操作的时候会提高效率;
MEMORY
所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MYSQL重新启动是会丢失。
选择引擎
- MyISAM适合大量的数据的读,而数据的更新(增删改)操作较少,存储空间占用少。可以压缩存储
- InnoDB 操作中包含较多的更新操作,首选InnoDB。有良好的并发机制支持并发访问
- MEMORY 可以存储非永久需要的数据,如果需要永久保存,则需要将数据导出到磁盘,下次使用可以从磁盘在加载到内存 它适用于需要告诉访问的数据 。
MySQL 常见命令
- 查看所有库:show datebases
- 创建数据库:create datebase 数据库名
- 使用数据库:use 数据库名
- 切换数据库:change 数据库名
- 查看数据库中的表:show tables
- 退出:exit
MySQL 与 Oracle 的不同之处
- 数据类型
数据类型 | 类型 | 字节数 |
---|---|---|
数值型 | int、integer | 4 |
smallint | 2 | |
bigint | 8 | |
tinyint | 1 | |
浮点数 | float | 4 |
double | 8 | |
字符型 | char | 不可变长度 |
varchar | 可变长度 | |
日期型 | date | yyyy-mm-dd |
datetime | yyyy-mm-dd hh:mi:ss | |
timestamp | 时间戳,更精确的时间 | |
year | yyyy | |
大文本类型 | blob | 存放二进制文件 |
text | 文本信息 |
- sql 语句的区别
delete:
delete from 表名 where 条件
<Oracle 中的 from 可省略,但是 MySQL 中的 from 不能省略>
关于外链接:
Oracle 中可以使用 "+" 表示链接,但是 MySQL 中只能用 sql1999 语法
分页查询:
Oracle 使用的是 runnum 数据伪列
MySQL 使用的是 linit 关键字
- MySQL 的分页查询(第一个参数的计算:(page-1) * size , page表示当前第几页
;第二个参数 size ,size 表示每页显示的条数):
# 查询第一页(页数从0开始)
SELECT * FROM `emp1` limit 1,1;
# 查询第二页
SELECT * FROM `emp1` limit 1,1;
MySQL 还可使用触发器与函数。
- 全连接
mysql并不支持全连接 full JOIN 关键字
但是mysql 提供了 UNION 关键字.使用 UNION 可以间接实现 full JOIN 功能
左连接
UNION
右连接
优化
优化查询
-- 查询SQL语句资源消耗情况
show profiles;
参考:
https://blog.csdn.net/weixin_48052161/article/details/122136629
--
explain SQL语句
参考:
https://blog.csdn.net/qq_31208245/article/details/133134130