一、库的操作
1.查看数据库
1.1语法:
sql
show databases;
查看当前服务器的所有数据库
databases是复数形式
⼤⼩写不敏感
2.创建数据库
2.1语法:
sql
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {'Y' | 'N'}
}
注#
(1)大写的表示关键字
(2)db_name:表⽰⾃定义的数据库名
(3){}⼤插号表⽰必须选
(4)| 表⽰任选其中⼀个
(5)[]中括号表⽰是可选项
(6)CHARACTER SET:指定数据库采⽤的字符集编码
(7)COLLATE:指定数据库字符集的校验规则
(8)ENCRYPTION:数据库是否加密,MySQL 8.0.16中引⼊的新选项
2.2⽰例:创建⼀个名为java113的数据库

再次执行上次的创建库:得到


在真下在的工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行 ,为了不让某一条语句的错误影响整个执行流程,都会加上一些类似于ifnotexists的校验,防止因为某条SQL出错导致整个SQL中断执行
3.字符集编码和校验(排序)规则
3.1查看数据库⽀持的字符集编码
MySQL8.0默认的字符集编码是utf8mb4 ,MySQL5.7默认的字符集是 latin1
3.2查看数据库⽀持的排序规则

MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci , MySQL5.7默认排序规则是utf8mb4_general_ci
建议:创建数据库的时候手动确认认定字符集

4.修改数据库
4.1语法
sql
ALTER {DATABASE | SCHEMA} [db_name]
alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1}
}
对数据库的修改主要是修改数据库的字符集,校验规则
4.2示例:
将test+班级名的数据库字符集改成gbk
sql
mysql> alter database test001 character set gbk;
Query OK, 1 row affected (0.01 sec)
mysql> show create database test001;
+----------+-------------------------------------------------------------------
-------------
| Database | Create Database
+----------+-------------------------------------------------------------------
-------------
| java01 | CREATE DATABASE `test001` /*!40100 DEFAULT CHARACTER SET gbk */
/*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------
-------------
1 row in set (0.00 sec)
选择要操作的数据库
use数据库名[:]


5.删除数据库
5.1语法:
sql
DROP {DATABASEISCHEMA} [IFEXISTS] db_name

特别注意:!!!
(1)删除数据库是⼀个非常危险操作,不要随意删除数据库
(2)删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除
(3)删除数据库之后,使⽤show databases; 语句查看不到对应的数据库
二、数据类型
1.常⽤数据类型分类
在⾯向对象软件开发的过程中,通常会先进⾏需求分析从⽽得到类和属性,类是⾯向对象中的概
念,对应到数据库中的概念就是实体 ,类中的属性对应实体中的属性。实体通常以表的形式存在 ,每个实体对应⼀张表,表中的每条记录(数据⾏)就是实体的⼀个实例,每条记录⼜包含若⼲字段(或称为 列),每个字段代表实体的⼀个属性。
如果要定义实体的属性,就要为属性命名并指定合适的数据类型。与其他编程语⾔类似,SQL中
规定了⽤于描述属性的数据类型。常⽤的数据类型有以下⼏类:
(1)数据值类型
(2)字符串类型
(3)⼆进制类型
(4)⽇期类型
2.数据值类型


3.字符串类型

4. 日期 / 时间类型

5. JSON 类型

6. 空间类型(拓展)

关键补充说明
1.无符号属性(UNSIGNED):数值类型可加UNSIGNED关键字,取消负数范围,扩大正数范围(如INTUNSIGNED取值0~4294967295)。
2.CHARvsVARCHAR:CHAR定长,查询速度快但浪费空间;VARCHAR变长,节省空间但查询略慢。
3.TIMESTAMP与时区:TIMESTAMP会根据数据库时区自动转换,而DATETIME仅存储字面量,不转换时区。
- DECIMAL精度:存储金额时优先用DECIMAL,避免FLOAT/DOUBLE的精度丢失问题(如.1+0.2
日.3)
总结
- MySQL数据类型按功能分为数值、字符串、日期时间、JSON、空间五大类,选择时需结合数据用途和范围。
2.数值类型优先选匹配范围的最小类型(如状态值用TINYINT),字符串优先用VARCHAR(固定长度用CHAR),高精度小数用DECIMAL。
3.日期时间类型中,跨时区场景用TIMESTAMP,常规场景用DATETIME,仅存年份用YEAR。