目录
2.2.3 浮点型 (float 和 double) ,近似值
2.3.1 创建新的数据库(create database)
2.4.1 向数据表中插入新的数据记录(insert into)
数据库:database
表:table,行:row 列:column
索引:index
视图:view
存储过程:procedure
存储函数:function
触发器:trigger
事件调度器:event scheduler,任务计划
用户:user
权限:privilege
在数据库系统中,SQL 语句不区分大小写,建议用大写
SQL语句可单行或多行书写,默认以 " ; " 结尾
关键词不能跨多行或简写
用空格和TAB 缩进来提高语句的可读性
子句通常位于独立行,便于编辑,提高可读性
数据库的组件(对象):
数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等
命名规则:
必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)
不要使用MySQL的保留字,如tabble select show databases
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语句分类:
| 语句 | 代表的意思 |
|---|---|
| DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等 |
| DML | 数据操纵语言,用于对表中的数据进行管理 |
| DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
| DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限 |
DDL: Data Defination Language 数据定义语言
CREATE,DROP,ALTER
DML: Data Manipulation Language 数据操纵语言
INSERT,DELETE,UPDATE
软件开发:CRUD
DQL:Data Query Language 数据查询语言
SELECT
DCL:Data Control Language 数据控制语言
GRANT,REVOKE
TCL:Transaction Control Language 事务控制语言
COMMIT,ROLLBACK,SAVEPOINT
show databases; #大小写不区分,分号“;”表示结束

- 方法一:在库中查看表
- use mysql; #use 数据库名
- show tables; #查看表
-
- 法二 :在库外查看表
- show tables from mysql; #show tables from 数据库名


- use 数据库名;
- describe [数据库名.]表名;
- 可缩写成:desc 表名;


| 类型 | 说明 |
| int | 整型,用于定义整数类型的数据 |
| fload | 单精度浮点4字节32位,准确表示到小数点后六位 |
| double | 双精度浮点8字节64位 |
| char | 固定长度的字符类型,用于定义字符类型数据。 |
| varchar | 可变长度的字符类型 |
| text | 文本 |
| image | 图片 |
| decimal(5,2) | 5个有效长度数字,小数点后面有2位。指定长度数组 |
char
char的长度是不可变。char如果存入数据的实际长度比指定长度要小 会补空格至指定长度 如果存入的数据的实际长度大于指定长度,低版本会被截取高版本会报错。
varchar
varchar长度是可变的,默认会加一个隐藏的结束符,因此结束符会多算一个字节。
选择正确的数据类型对于获得高性能至关重要,三大原则:
更小的通常更好,尽量使用可正确存储数据的最小数据类型
简单就好,简单数据类型的操作通常需要更少的CPU周期
尽量避免NULL,包含为NULL的列,对MySQL更难优化
tinyint(m) 1个字节 范围(-128~127)
smallint(m) 2个字节 范围(-32768~32767)
mediumint(m) 3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m) 8个字节 范围(+-9.22*10的18次方)
上述数据类型,如果加修饰符unsigned后,则最大值翻倍
如:tinyint unsigned的取值范围为(0~255)
float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位, 注意: 小数点不占用总个数
double(m,d) 双精度浮点型16位精度(8字节) m总个数,d小数位, 注意: 小数点不占用总个数
设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位
在数据库中存放的是精确值,存为十进制
格式 decimal(m,d) 表示 最多 m 位数字,其中 d 个小数,小数点不算在长度内
比如: DECIMAL(6,2) 总共能存6位数字,末尾2位是小数,字段最大值 9999.99 (小数点不算在长度内)
参数m<65 是总个数,d<30且 d MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个字节存9个数字)。 例如: decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:其中,小数点前的9个数字用4个字节,小数点后的9个数字用4个字节,小数点本身占1个字节 浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。float使用4个字节存储。double占用8个字节 因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时 char(n) 固定长度,最多255个字符,注意不是字节 varchar(n) 可变长度,最多65535个字符 tinytext 可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext 可变长度,最多2的32次方-1个字符 BINARY(M) 固定长度,可存二进制或字符,长度为0-M字节 VARBINARY(M) 可变长度,可存二进制或字符,允许长度为0-M字节 内建类型:ENUM枚举, SET集合 !!注意!! 此处添加数据为中文,注意字符集(默认为拉丁文)是否更改为utf8和utf8mb4 如果/etc/my.cnf没有更改,建立数据库时要指定字符集utf8mb4:2.2.5字符串
2.3 创建、删除数据库和表
2.3.1 创建新的数据库(create database)

2.3.2 删除指定的数据库(drop database)
drop database 数据库名;
2.3.3创建新的表 (create table)

2.3.4 删除指定的数据表(drop table)


2.4 管理表中的数据记录
2.4.1 向数据表中插入新的数据记录(insert into)

create database 数据库名 charset=utf8mb4;2.4.2 查询数据表内数据记录(select)




2.4.3 修改、更新数据表中的数据记录(update)

2.4.4 在数据表中删除指定的数据记录

2.5 修改表名和表结构(alter table)
2.5.1 修改表名(rename)

2.5.2 扩展表结构,增加字段(add)

2.5.3 修改字段(列)名,添加唯一键(change)


2.5.4 删除字段(drop)

2.6 查看、修改字符集(show)
2.6.1 查看MySQL支持的所有字符集
show charset;