MySQL-基础篇 ( 相关了解 + SQL-DDL )
MySQL-基础篇 ( 相关了解 + SQL-DDL )
认知了解
-
数据库,DataBase 简称 DB,是有组织的存储数据的仓库
-
数据库管理系统,DBMS,是操纵和管理数据库的大型软件
-
SQL,全名 Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
-
主流的关系型数据库管理系统
- Oracle
- MySQL
- SQL Server
- PostgreSQL
MySQL 数据库
-
数据库的下载过程见另一文章:
-
MySQL 数据库的启动
-
手动打开任务管理器 ( 可 ctrl + alt + 数字键的"." ),找到服务中的 MySQL 即可右键启动
![image-20230720161031058]()
-
windows + R,输入
services.msc直接打开服务![image-20230720161211194]()
-
管理员身份进入命令行输入
net start mysql启动,输入net stop mysql停止- 其中
mysql与上述方法中的服务里显示的一致
![image-20230720161725801]()
- 其中
-
-
关系型数据库 ( RDBMS )
- 建立在关系模型基础上,由多张相互连接的二维表组成的数据库
- 使用表存储数据,格式统一便于维护
- 使用 SQL 语言操作,标准统一使用方便
- 一个 DBMS 可建多个库,一个库可建多个表
SQL
通用语法
- SQL 语句可以单行或多行书写,以分号结尾
- SQL 语句可以使用空格 / 缩进来增强语句的可读性
- MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写
- 注解
- 单行注释:-- 注解内容或者 # 注解内容
- 多行注释:/* 注释内容 */
分类
| 分类 | 全称 | 说明 |
|---|---|---|
| DDL | Data Definition Language | 数据定义语言,用来定义数据库对象 ( 库、表、字段 ) |
| DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
| DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
| DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
- 打开命令行输入
mysql -uroot -p,然后输入密码,成功后显示mysql>就表示可以对 MySQL 进行操作了
数据类型
-
数据类型
- 主要分为三类:数值类型、字符串类型、日期时间类型
数值类型
| 类型 | 大小 | 相当于 java 里的 | 描述 |
|---|---|---|---|
| TINTINT | 1 byte | byte | 小整数值 |
| SMALLINT | 2 byte | short | 大整数值 |
| MEDIUMINT | 3 byte | 无 | 大整数值 |
| INT / INTEGER | 4 byte | int | 大整数值 |
| BIGINT | 8 byte | long | 极大整数值 |
| FLOAT | 4 byte | float | 单精度浮点数值 |
| DOUBLE | 8 byte | double | 双精度浮点数值 |
| DECIMAL | 依赖于精度M与标度D | 小数值 ( 精确定点数 ) |
-
decimal 使用时需要指定:如 123.45,则 M 为 5,D 为 2
-
上述类型后面加上 UNSIGNED 表示无符号位,如:age TINYINT UNSIGNED,就表示 age 字段的范围为 ( 0, 255 )
-
double ( 全部整体长度, 小数点后位数 ):score double(4, 1),
字符串类型
| 类型 | 大小 | 描述 |
|---|---|---|
| CHAR | 0 ~ 255 bytes | 定长字符串 |
| VARCHAR | 0 ~ 65535 bytes | 变长字符串 |
| TEXT | 0 ~ 65535 bytes | 长文本数据 |
| ... | ... | ... |
- char(10) / varchar(10):括号内指定参数,表示当前字符串能存储的最大长度是 10,超出就会报错
- char(2):存储 2 个字符,还是占用 10 个字符的空间,未用到的就用空格补位
- varchar(3):存储 3 个字符,就占用 3 个字符的空间
- 但是 char 性能更高,因为 varchar 使用时会根据内容计算所占用的空间
- 如在要求游戏用户名长度时,长短不一,最好用 varchar,而在要求性别时就用 char
日期时间类型
| 类型 | 格式 | 描述 |
|---|---|---|
| DATE | YYYY-MM-DD | 日期值 |
| TIME | HH:MM:SS | 时间值或持续时间 |
| YEAR | YYYY | 年份值 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
| TIMESTAMP | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
- TIMESTAMP:时间戳,范围为 1970-01-01 00:00:01 至 2038-01-19 03:14:07
DDL
数据定义语言,用来定义数据库对象
数据库操作
查询
- 查询所有数据库
SHOW DATABASES; - 查询当前数据库
SELECT DATABASE();- 若不知道此时是哪个数据库时使用此语句查询
创建
CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];- 方括号内的都是可选语句
- 上述语句中插入 IF NOT EXISTS:只有数据库名不存在时才创建
删除
DROP DATABASE[IF EXISTS]数据库名;- 上述语句插入 IF EXISTS:不存在就不删,不加此语句的话,若库名不存在就会报错
使用
-
USE 数据库名; -
示例
![image-20230720203511859]()
表操作
查询
-
查询当前数据库所有表
SHOW TABLES;
-
查询表结构
DESC 表名;
-
查询指定表的建表语句
SHOW CREATE TABLE 表名;
创建
-
创建
-
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
......
字段n 字段n类型[COMMENT 字段n注释])[COMMENT 表注释]; -
注意最后一个字段没有逗号分隔
-
-
示例
![image-20230720203624462]()
![image-20230720204830845]()
修改删除
- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];
- 修改字段数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
- 修改字段名和字段数据类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
- 删除字段
ALTER TABLE 表名 DROP 字段名;
- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
- 删除表
DROP TABLE[IF EXISTS] 表名;
- 删除指定表,并重新创建该表
TRUNCATE TABLE 表名;- 相当于表名不变所有数据清空
数据库图形化界面工具
-
可以用 IDEA 自带数据库 ( 似 DataGrip 使用 )
![image-20230721111747366]()
-
输入用户名和密码就可以测试使用
![image-20230721112409277]()
-
点击连接后面的选择 All 就可以显示所有的库
![image-20230721112441663]()
-
右键连接选择 Schema 为新建库
![image-20230721112628385]()
-
输入库名即可完成创建,注意:红线画出的 schema 与 database 同义,作用相同
![image-20230721112808860]()
-
右键库,创建表
![image-20230721112956578]()
-
点击加号或者直接右键都可以选择 Column 创建字段
![image-20230721113118009]()
-
完成表格创建,下方为创建表的生成语言
![image-20230721113226506]()
-
可以右键对表进行修改
![image-20230721113350469]()
![image-20230721113636799]()
-
也可以选择右键表选择不通过图形化页面工具,而是自行编写 SQL 语句
![image-20230721113747347]()
-
显示在 test 库下,可以输入语句,点击运行,显示结果
![image-20230721114128445]()



















浙公网安备 33010602011771号