MySQL基本使用 - 图1

  • 表头(header): 每一列的名称
  • 列(col): 具有相同数据类型的数据的集合
  • 行(row): 每一行用来描述某个人/物的具体信息
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同
  • 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性

登录MySQL

  1. mysql -h 127.0.0.1 -P<端口号> -u<用户名> -p<密码>
  2. # 默认用户名<root>,-p 是密码,参数后面不需要空格,-h和-P默认本地参数可以忽略
  3. mysqladmin -u<用户名> -p<原密码> password <新密码>
  4. # 在cmd窗口下直接修改(不要登录进去)
  5. mysql> exit
  6. # 退出 使用 “quit;” 或 “\q;” 一样的效果

数据库的操作

对于表的操作需要先进入库:use 库名;

  1. create database test character set utf8mb4; -- 创建一个名为 test 的数据库,数据库字符编码指定为 utf8mb4
  2. show databases; -- 显示数据库列表。
  3. show create database test; -- 指定查看库的信息
  4. use test; -- 选择创建的数据库 test
  5. select database(); -- 查看当前选择的数据库
  6. alter database test charset= 'gbk' -- 修改库的字符编码

补充:SQL语句使用分号作为结束符

数据库表的操作

CREATE TABLE 语法 语句用于从表中选取数据。

  1. show tables; -- 显示库 test 下面所有的表名字
  2. describe 表名; -- 显示数据表的结构 or: desc 表名;
  3. delete from 表名; -- 清空表中记录
  4. drop table 表名 -- 删除表
  5. drop table if exists `t1`; -- 如果数据库中存在t1表,就把它从数据库中drop
  6. create table 表名称 (
  7. 列名称1 数据类型,
  8. 列名称2 数据类型,
  9. 列名称3 数据类型,
  10. ....
  11. ); -- 注意在最后一行字段结尾不能加逗号

实例

  1. create table t1(
  2. id int,
  3. name varchar(255)
  4. ); -- 注意在最后一行字段结尾不能加逗号
  1. mysql> desc t1;
  2. +-------+--------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+--------------+------+-----+---------+-------+
  5. | id | int | YES | | NULL | |
  6. | name | varchar(255) | YES | | NULL | |
  7. +-------+--------------+------+-----+---------+-------+
  8. 2 rows in set (0.00 sec)

数据库表增删改查

SELECT(查)

SELECT 语法 语句用于从表中选取数据。

  1. SELECT 列名称1, 列名称2, ... FROM 表名称;
  2. SELECT * FROM 表名称;
  3. SELECT * FROM 库名称.表名称

实例

  1. select id, name from t1; -- 查看 t1 表指定字段数据
  2. select * from t1; -- 查看 t1 表所有的数据
  3. select * from test.t1; -- 查看 test 库中 t1 表的所有数据

INSERT(增)

INSERT 语法 用于向表格中插入新的行。

  1. INSERT INTO 表名称 (列名称1, 列名称2, 列名称3, ...) VALUES (值1, 2, 3, ...);
  2. INSERT INTO 表名称 VALUES (值1, 2, 3, ...);
  3. INSERT INTO 表名称 VALUES (值1), (值2), (值3) ...;

实例

  1. insert into t1 values(1, 'kevin'); -- 单条数据
  2. insert into t1 values(2, 'tony'), (3, 'jerry'); -- 多条数据
  3. insert into t1 (name, id) values('jason', 4); -- 打破字段顺序
  1. mysql> select * from t1;
  2. +------+-------+
  3. | id | name |
  4. +------+-------+
  5. | 1 | kevin |
  6. | 2 | tony |
  7. | 3 | jerry |
  8. | 4 | jason |
  9. +------+-------+
  10. 4 rows in set (0.00 sec)

UPDATE(改)

Update 语法 语句用于修改表中的数据。

  1. UPDATE 表名称 SET 列名称1 = 1, 列名称2 = 2, ... WHERE 条件;

实例

  1. update t1 set name = 'kevin666' where id=1;
  1. mysql> select * from t1;
  2. +------+----------+
  3. | id | name |
  4. +------+----------+
  5. | 1 | kevin666 |
  6. | 2 | tony |
  7. | 3 | jerry |
  8. | 4 | jason |
  9. +------+----------+
  10. 4 rows in set (0.00 sec)

DELETE(删)

DELETE 语法 语句用于删除表中的现有记录。

  1. DELETE FROM 表名称 WHERE 条件;

实例

  1. delete from t1 where id=4; -- 删除 t1 id 4的数据
  2. delete from t1 where id in (2,3); -- 删除表t1 id 23的两条数据
  3. delete from t1; -- 删除表中所有数据

字符编码

  1. mysql> \s # 查看MySQL默认字符编码
  1. --------------
  2. mysql Ver 8.0.27 for macos12.0 on x86_64 (Homebrew)
  3. Connection id: 11
  4. Current database: test
  5. Current user: root@localhost
  6. SSL: Not in use
  7. Current pager: less
  8. Using outfile: ''
  9. Using delimiter: ;
  10. Server version: 8.0.27 Homebrew
  11. Protocol version: 10
  12. Connection: Localhost via UNIX socket
  13. Server characterset: utf8mb4
  14. Db characterset: utf8mb4
  15. Client characterset: utf8mb4
  16. Conn. characterset: utf8mb4
  17. UNIX socket: /tmp/mysql.sock
  18. Binary data as: Hexadecimal
  19. Uptime: 5 hours 34 min 13 sec
  20. Threads: 2 Questions: 236 Slow queries: 0 Opens: 253 Flush tables: 3 Open tables: 170 Queries per second avg: 0.011
  21. --------------

如果是5.X系列 显示的编码有多种,如果是8.X系列 显示的统一是utf8mb4utf8mb4utf8优化版本 支持存储表情

统一字符编码

在配置文件加入如下配置,并保存重启服务端

  1. [mysqld]
  2. character-set-server=utf8
  3. collation-server=utf8_general_ci
  4. [client]
  5. default-character-set=utf8
  6. [mysql]
  7. default-character-set=utf8