提交 e22d21d3 编写于 作者: 彭世瑜's avatar 彭世瑜

fix

上级 25fe2588
# 字符集 character
- 字符 character 是各种文字和符号的总称
- 字符编码 character code 是计算机针对各种符号,在计算机中的一种二进制存储代号
- 字符集 character set 是多个字符的集合
常见的字符集
- ASCII 字符集
- GB2312 字符集
- Unicode 字符集
# 设置客户端字符集
```sql
-- 设置客户端字符集编码
set names gbk;
-- 查看字符集编码设置
show variables like 'character_set_%';
+--------------------------+------------+
| Variable_name | Value |
+---------+-----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/Cellar/mysql/8.0.16/share/mysql/charsets/ |
+--------------------------+------------+
-- 插入中文字符
insert into tb_teacher (name, age) values ('张三', 23);
```
MySQL 与 MySQLd 之间有三层
- 客户端传入数据给服务端 client
- 服务端返回数据给客户端 server
- 客户端与服务端之间的连接 collection
变量
- character_set_client 客户端
- character_set_connection 连接层
- character_set_database 数据库
- character_set_results 结果集
修改变量
```sql
set 变量名 = ;
-- 修改单个变量
set character_set_client = gbk;
-- 设置字符集
set names gbk;
-- 等价于
set character_set_client = gbk; // 让服务器识别客户端传过去的数据
set character_set_connection = gbk; // 更好的帮助客户端与服务器端之间惊醒字符集转换
set character_set_results = gbk; // 告诉客户端服务器返回的数据
```
https://www.bilibili.com/video/BV1Vx411g7uJ?p=15&spm_id_from=pageDriver
\ No newline at end of file
......@@ -6,6 +6,10 @@
[MySQL简介](blog/php-mysql/mysql-basic.md)
[数据库基本操作](blog/php-mysql/sql-database.md)
[数据库database 基本操作](blog/php-mysql/sql-database.md)
[数据表基本操作](blog/php-mysql/sql-table.md)
[数据表table 基本操作](blog/php-mysql/sql-table.md)
[数据data 基本操作](blog/php-mysql/sql-data.md)
[字符集character](blog/php-mysql/character.md)
# 数据操作
## 插入操作
```sql
-- 方式一:插入指定字段数据(推荐使用)
insert into 表名 [(字段列表)] values (对应列数据);
-- 方式二:插入所有字段对应的数据
insert into 表名 values (对应列数据);
```
示例
```sql
create table tb_teacher(
name varchar(10),
age int
);
-- 插入一条数据
insert into tb_teacher (name, age) values ('Jack', 24);
-- 字段名和值需要一一对应
insert into tb_teacher (age, name) values (25, 'Tom');
-- 可以只插入部分字段数据
insert into tb_teacher (name) values ('Steve');
-- 插入全部字段对应的数据,此时值列表需要对应表结构
insert into tb_teacher values ('Jery', 23);
```
## 查询操作
```sql
-- 查询表中全部字段数据
select * from 表名;
-- 查询表中部分字段数据
select 字段列表 from 表名;
-- 简单条件查询数据
select 字段列表/* from 表名 where 字段名 = 值;
```
示例
```sql
-- 查询所有数据
select * from tb_teacher;
+-------+------+
| name | age |
+-------+------+
| Jack | 24 |
| Tom | 25 |
| Steve | NULL |
| Jery | 23 |
+-------+------+
-- 指定字段
select name from tb_teacher;
+-------+
| name |
+-------+
| Jack |
| Tom |
| Steve |
| Jery |
+-------+
-- 限制条件, 年龄==23
select name from tb_teacher where age = 23;
+------+
| name |
+------+
| Jery |
+------+
```
## 删除操作
```sql
-- 如果没有条件,会删除所有数据
delete from 表名 [where 条件];
```
```sql
-- 删除年龄为23的数据
delete from tb_teacher where age = 23;
select * from tb_teacher;
+-------+------+
| name | age |
+-------+------+
| Jack | 24 |
| Tom | 25 |
| Steve | NULL |
+-------+------+
```
## 更新操作
```sql
-- 如果没有where条件,将会更新表中所有的值
update 表名 set 字段名 = 新值 [where 条件];
```
示例
```sql
-- 更新Tom的年龄为26
update tb_teacher set age = 26 where name = 'Tom';
select * from tb_teacher;
+-------+------+
| name | age |
+-------+------+
| Jack | 24 |
| Tom | 26 |
| Steve | NULL |
+-------+------+
```
......@@ -305,6 +305,3 @@ mysql> show tables;
| t_author |
+----------------------+
```
https://www.bilibili.com/video/BV1Vx411g7uJ?p=11&spm_id_from=pageDriver
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册