常用SQL命令

  • INSERT INTO - 向数据库中插入新数据
  • DELETE - 从数据库中删除数据
  • UPDATE - 更新数据库中的数据
  • SELECT - 从数据库中提取数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

增删改查

增:NSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。
语法:
INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

删:DELETE 语句

DELETE 语句用于删除表中的行。
语法:

DELETE FROM table_name
WHERE some_column=some_value;

改:UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。
语法:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

查:SELECT 语句

SELECT 语句用于从数据库中选取数据。
结果被存储在一个结果表中,称为结果集。
语法:

SELECT column_name,column_name
FROM table_name;

SELECT * FROM table_name;

SQL SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
语法:

SELECT DISTINCT column_name,column_name
FROM table_name;

条件语句

WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。
语法:

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

AND & OR 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

ORDER BY 关键字

ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
语法:

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

数据库操作

CREATE DATABASE 语句

CREATE DATABASE 语句用于创建数据库。
语法:

CREATE DATABASE dbname;

CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。
表由行和列组成,每个表都必须有个表名。
语法:

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

column_name 参数规定表中列的名称。
data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
size 参数规定表中列的最大长度。

ALTER TABLE 语句

ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
语法:
如需在表中添加列,请使用下面的语法:

ALTER TABLE table_name
ADD column_name datatype

如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):

ALTER TABLE table_name
DROP COLUMN column_name

DROP 语句

通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
语法:
用于 MySQL 的 DROP INDEX 语法:

ALTER TABLE table_name DROP INDEX index_name
DROP TABLE 语句用于删除表。
DROP TABLE table_name

DROP DATABASE 语句用于删除数据库。

DROP DATABASE database_name

如果我们仅仅需要删除表内的数据,但并不删除表本身
请使用 TRUNCATE TABLE 语句:

TRUNCATE TABLE table_name

常用

更改MySQL数据库编码为utf8mb4

采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。

查看数据库编码
show variables like "%char%";
修改/etc/my.cnf

修改/etc/my.cnf,添加如下内容后重启mysql。

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
修改数据表

数据库:
查看数据库编码:

show variables like "%char%";

修改数据库编码:

alter database <数据库名> character set utf8mb4;

表:

查看表编码:

show create table <表名>;

修改表编码:

alter table <表名> character set utf8mb4;

字段:
查看字段编码

show full columns from <表名>;

修改字段编码:

ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE table_esp32_post MODIFY COLUMN name VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

例子

数据库名:db_esp32_dbmj
数据表名:table_esp32_post
字段:id name

查看数据表编码:

mysql> SHOW CREATE TABLE table_esp32_post;
+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table            | Create Table                                                                                                                                                                                                      |
+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| table_esp32_post | CREATE TABLE `table_esp32_post` (
  `id` int(11) NOT NULL DEFAULT '0',
  `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.07 sec)

更改数据表编码:

mysql> ALTER TABLE table_esp32_post CHARACTER SET utf8mb4;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE table_esp32_post;
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table            | Create Table                                                                                                                                                                                                         |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| table_esp32_post | CREATE TABLE `table_esp32_post` (
  `id` int(11) NOT NULL DEFAULT '0',
  `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.07 sec)

查看字段编码:

mysql> SHOW FULL COLUMNS FROM table_esp32_post;
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type         | Collation          | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| id    | int(11)      | NULL               | NO   | PRI | 0       |       | select,insert,update,references |         |
| name  | varchar(128) | utf8mb4_unicode_ci | YES  |     | NULL    |       | select,insert,update,references |         |
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
2 rows in set (0.06 sec)

修改字段编码:

mysql> ALTER TABLE table_esp32_post MODIFY COLUMN name VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW FULL COLUMNS FROM table_esp32_post;
+-------+------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type             | Collation          | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+
| id    | int(11) unsigned | NULL               | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| name  | varchar(128)     | utf8mb4_unicode_ci | YES  |     | NULL    |                | select,insert,update,references |         |
+-------+------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------+
2 rows in set (0.07 sec)
最后修改:2021 年 03 月 04 日
男宾一位~ 欢迎下次再来!