MySQL 最全基础大整理(建议收藏)1️⃣
一、SQL 介绍
1.1、SQL 概述
人和人交流需要语言,人和数据库交流也需要语言,而这个专门特定为程序员和数据库打交道的语言就是 SQL 语言。
SQL:结构化查询语言(Structured Query Language)。是关系型数据库标准语言。 特点:简单,灵活,功能强大。
1.2、SQL 包含的 6 个部分
1.2.1、数据查询语言(DQL)
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT
是 DQL(也是所有 SQL)用得最多的动词,其他 DQL 常用的保留字有WHERE
,ORDER BY
,GROUP BY
和HAVING
。这些 DQL 保留字常与其他类型的 SQL 语句一起使用。
1.2.2、数据操作语言(DML)
其语句包括动词 INSERT
,UPDATE
和DELETE
。它们分别用于添加,修改和删除表中的行。也称为动作语言。
1.2.3、数据定义语言(DDL)
其语句包括动词 CREATE 和 DROP。在数据库中创建新表或删除表(CREAT TABLE
或 DROP TABLE
);为表加入索引等。DDL 包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
1.2.4、事务处理语言(TPL)
它的语句能确保被 DML 语句影响的表的所有行及时得以更新。TPL 语句包括BEGIN TRANSACTION
,COMMIT
和ROLLBACK
。
1.2.5、数据控制语言(DCL)
它的语句通过GRANT
或REVOKE
获得许可,确定单个用户和用户组对数据库对象的访问。某些 RDBMS 可用GRANT
或REVOKE
控制对表单个列的访问。
1.2.6、指针控制语言(CCL)
它的语句,像DECLARE CURSOR
,FETCH INTO
和UPDATE WHERE CURRENT
用于对一个或多个表单独行的操作。
1.3、书写规则
数据库中,SQL 语句大小写不敏感. 如: select、SELECT.、SeleCt,为了提高可读性,一般关键字大写,其他小写。
SQL 语句可单行或多行书写,用分号来分辨是否结束。
合理利用空格和缩进使程序易读
二、表和 ORM
2.1、表
二维表是 同类实体 的各种 属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录; 表中的列表示属性,称为 Field,相当于通常记录中的一个数据项,也叫列、字段。 行: 表示一个实体,一条记录 列: 字段,数据项。
2.2、表和对象的关系(ORM)
ORM: Oject Reraltional Mapping : 对象表的映射
在开发中,我们需要将表中的数据查询出来保存到内存中,或者把内存中的数据保存到数据库中,此时就需要将数据表的数据和 Java 中的对象进行映射关联起来。这种映射关联就称为 ORM 思想。
三、MySQL 服务
3.1、MySQL 服务
打开数据库连接之前:一定要保证 MySQL 服务已经开启了。
net start
命令开启一个服务,如:net start MySQL。
net stop
命令关闭一个服务器,如:net stop MySQL
3.2、连接 MySQL
方式一
进入 MySQL 自带的客户端, 在命令行中输入密码。
方式二
在运行(win + r 进入 cmd )中输入命令。
格式:mysql -u 账户 -p 密码 -h 数据库服务器安装的主机 -P 数据库端口
若连接的数据库服务器在本机上,并且端口是 3306。 则可以简写: mysql -uroot -padmin。
四、数据库基础
4.1、数据库基本操作
查看数据库服务器存在哪些数据库.:
SHOW DATABASES
。使用指定的数据库.:
USE database_name
。查看指定的数据库中有哪些数据表:
SHOW TABLES
。创建指定名称的数据库.:
CREATE DATABASE database_name
。删除数据库:
DROP DATABASE database_name
。
4.2、存储引擎
MySQL 中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供不同的功能和能力。 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
简单来说,存储引擎是表的存储方式。
MySQL 常用存储引擎:
MyISAM:拥有较高的插入,查询速度,但不支持事务,不支持外键。
InnoDB:支持事务,支持外键,支持行级锁定,性能较低。最安全
InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但对比 MyISAM,处理效率差,且会占用更多的磁盘空间以保留数据和索引。一个系统,特别是金融系统,没有事务是很恐怖的事情,一般都要选择 InnDB。
五、MySQL 列的常用类型
5.1、最常用的类型
5.2、整数类型
整数类型有宽度指示器,作用是指定位宽。
例如:某字段类型为 INT(3),保证少于 3 个值,从数据库检索出来时能够自动地用 0 填充,需设置填充,默认不填充。
宽度指示器不影响列存值得范围。一般不指定位宽。
.png)]
5.3、小数 类型
FLOAT[(s,p)]
或DOUBLE[(s,p)]
: 小数类型,可存放实型和整型 ,精度 (p) 和范围 (s)。
DECIMAL
: 高精度类型,金额货币优先选择。
5.4、字符类型
char(size) : 定长字符,0 - 255 字节,size 指 N 个字符数,若插入字符数超过设定长度,会被截取并警告。
varchar(size): 变长字符,0 - 255 字节,从 MySQL5 开始支持 65535 个字节,若插入字符数超过设定长度,在非严格模式下会被截取并警告。
一般存储大量的字符串,比如文章的纯文本,可以选用 TEXT 系列类型,这个系列都是变长的。
注意: 在 MySQL 中,字符类型必须指定长度,值要使用 单引号引起来。 相当于 Java 中字符(String,StringBuilder/StringBuffer);
5.5、日期类型
常用日期和时间类型: DATE、DATETIME。
注意: 在 MySQL 中,日期时间值使用单引号引起来。 相当于 Java 中 Date,Calender。
5.6、二进制类型
二进制类型主要用于存放图形、声音和影像,二进制对象,0-4GB。
开发中,我们一般存储二进制文件保存路径,所以以上的类型非特殊需求不会使用。
BIT,一般存储 0 或 1,存储是 Java 中的 boolean/Boolean 类型的值(需要使用)。
评论