MySQL

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

登录MySQL

mysql -h 127.0.0.1 -P<端口号> -u<用户名> -p<密码>   
# 默认用户名<root>,-p 是密码,参数后面不需要空格,-h和-P默认本地参数可以忽略

mysqladmin -u<用户名> -p<原密码> password <新密码>  
# 在cmd窗口下直接修改(不要登录进去)

mysql> exit 
# 退出 使用 “quit;” 或 “\q;” 一样的效果

数据库的操作

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

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

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

数据库表的操作

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

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

实例

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

数据库表增删改查

SELECT(查)

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

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

实例

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

INSERT(增)

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

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

实例

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

UPDATE(改)

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

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

实例

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

DELETE(删)

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

DELETE FROM 表名称 WHERE 条件;

实例

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

字符编码

 mysql> \s  # 查看MySQL默认字符编码
--------------
mysql  Ver 8.0.27 for macos12.0 on x86_64 (Homebrew)

Connection id:        11
Current database:    test
Current user:        root@localhost
SSL:            Not in use
Current pager:        less
Using outfile:        ''
Using delimiter:    ;
Server version:        8.0.27 Homebrew
Protocol version:    10
Connection:        Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:        /tmp/mysql.sock
Binary data as:        Hexadecimal
Uptime:            5 hours 34 min 13 sec

Threads: 2  Questions: 236  Slow queries: 0  Opens: 253  Flush tables: 3  Open tables: 170  Queries per second avg: 0.011
--------------

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

统一字符编码

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

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
Last modification:May 7, 2022
如果觉得我的文章对你有用,请随意赞赏