MySQL 数据库基础
- 一. 数据库的操作
- 1. 显示当前的数据库
- 2. 创建数据库
- 3. 使用数据库
- 4. 删除数据库
- 二. 常用数据类型
- 1. 数据类型
- 2. 字符串类型
- 3. 日期类型
- 三. 表的操作
- 1. 查看表结构
- 2. 创建表
- 4. 删除表
一. 数据库的操作
1. 显示当前的数据库
SHOW DATABASES;
MySQL 不区分大小写, 但是符号得是英文
2. 创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name
说明:
- 大写的表示关键字
- [] 是可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
示例:
- 创建名为 db_test1 的数据库
CREATE DATABASE db_test1;
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci
- 如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建。
CREATE DATABASE IF NOT EXISTS db_test2;
- 如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建。
CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;
说明:
- MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的utf8是使用utf8mb4。
- 数据库名称可以随便取,但不能是关键字, 如 `table`、`from`, 如果非得是关键字, 得用 ` 引起来,` 是键盘左上角的与 ~ 在一个键上的那个符号, 不是单引号, 也不是 顿号
3. 使用数据库
use 数据库名;
4. 删除数据库
语法:
DROP DATABASE [IF EXISTS] db_name;
说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
drop database if exists db_test1;
drop database if exists db_test2;
注意:
删除数据库是非常危险的行为 !!!
“删库跑路” 中的 “删库” 指的就是 删除数据库, 一旦删除, 难以恢复,可能造成毁灭性打击,弄不好要赔偿坐牢。(可能把你的工作删没了, 也可能你老板的工作也顺带删没了)
二. 常用数据类型
1. 数据类型
分为整型和浮点型:
表示钱:
- 使用 Decimal / BigDecimal, 使用的是类似于 字符串存储, 更精确, 但是存储空间更大, 速度更慢
- 使用 int (单位为 分)是常用手段, 效率更高
2. 字符串类型
blob:
存储的是 二进制 串
比如存储一个小的图片, 存一个小的音频文件
如果要存储大的图片的话,一般把文件存储到硬盘上, 然后在数据库中存储对应的路径
3. 日期类型
三. 表的操作
需要操作数据库中的表时,需要先使用该数据库:
use db_test;
1. 查看表结构
desc 表名;
示例:
2. 创建表
语法:
CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
);
可以使用comment增加字段说明。
示例:
create table stu_test (id int,name varchar(20) comment '姓名',password varchar(50) comment '密码',age int,sex varchar(1),birthday timestamp,amout decimal(13,2),resume text
);
==注意: ==
- 字段名称在前, 数据类型在后。
- 列名支持下划线_, 但不支持 中划线 -
- 数据库名字不能重复
4. 删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例:
-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;
注意: 删表和删库一样是非常危险的操作 !!!