MySQL
备忘单
MySQL是一个流行的开源关系数据库,以易于使用和可扩展性而
闻名。有时候,你在做一个项目的时候需要快速寻找一些帮助,
可能需要这个MySQL备忘单。
获取更多信息,请关注
CSDN@架构师昌哥
连接 MYSQL
使用 MySQL 命令行客户端连接 MySQL server
MySQL会提示输入密码:
mysql
-u [username] -p
连接 MySQL server 时指定数据库:
mysql
-u [username] -p [database]
使用 mysqldump工具导出数据:
mysqldump
-u [username] -p \
[database] > data_backup.sql
退出客户端:
quit
or
exit
打印命令完整清单
help
创建和展示数据库
创建一个数据库:
CREATE DATABASE zoo;
展示所有数据库:
SHOW DATABASES;
使用指定数据库:
USE zoo;
删除指定数据库:
DROP DATABASE zoo;
展示数据库中的所有表:
SHOW TABLES;
展示指定表的详细信息
DESCRIBE animal;
输出内容包含 column names, data types, default values等等.
创建表
创建一张表:
CREATE TABLE habitat (
id INT,
name VARCHAR(64)
);
id作为AUTO_INCREMENT自增列。自增列必须是主键或唯一键
:
CREATE TABLE habitat (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64)
);
创建一张拥有外键的表:
CREATE TABLE animal (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64),
species VARCHAR(64),
age INT,
habitat_id INT,
FOREIGN KEY (habitat_id)
REFERENCES habitat(id)
);
修改表
使用
ALTER TABLE
语句修改表结构。
修改表名:
ALTER TABLE animal RENAME pet;
表增加一列:
ALTER TABLE animal
ADD COLUMN name VARCHAR(64);
修改列名:
ALTER TABLE animal
RENAME COLUMN id TO identifier;
修改列的数据类型:
ALTER TABLE animal
MODIFY COLUMN name VARCHAR(128);
删除列:
ALTER TABLE animal
DROP COLUMN name;
删除表:
DROP TABLE animal;
查询
使用
SELECT
语句查询表的数据。
单表查询例子:
SELECT species, AVG(age) AS average_age
FROM animal
WHERE id != 3
GROUP BY species
HAVING AVG(age) > 3
ORDER BY AVG(age) DESC;
多表查询例子:
SELECT city.name, country.name
FROM city
[INNER | LEFT | RIGHT] JOIN country
ON city.country_id = country.id;
使用
+, -, *, / 进行数学计算。
例如,计算一周有多少秒:
SELECT 60 * 60 * 24 * 7; -- result: 604800
聚合与分组
AVG(expr) −
组内expr的平均值
COUNT(expr) −
组内expr值的数量
MAX(expr) −
组内expr的最大值
MIN(expr) −
组内expr的最小值
SUM(expr) −
组内expr值的累加和
计算表的行数:
SELECT COUNT(*)
FROM animal;
计算列的非NULL值数量:
SELECT COUNT(name)
FROM animal;
计算列的唯一值数量:
SELECT COUNT(DISTINCT name)
FROM animal;
分组
按 species 分组计算 animals 的数量:
SELECT species, COUNT(id)
FROM animal
GROUP BY species;
分组计算 animal 的平均、最小和最大年龄:
SELECT habitat_id,
AVG(
age
)
,
MIN(age), MAX(age)
FROM animal
GROUP BY habitat_id;
插入数据
使用INSERT语句向表中插入数据:
INSERT INTO habitat VALUES
(1, 'River '),
(2, 'Forest ');
向指定列插入数据,未指定的列使用默认值或NULL填充。
INSERT INTO habitat (name) VALUES
( 'Savanna ');
更新数据
使用UPDATE语句更新表的数据:
UPDATE animal
SET
species = 'Duck ',
name = 'Quack '
WHERE id = 2;
删除数据
使用DELETE语句删除表的数据:
DELETE FROM animal
WHERE id = 1;
这样会删除所有命中的行,使用TRUNCATE语句删除所有
行:
TRUNCATE TABLE animal;
类型强制转换
使用CAST()函数实现数据类型转换。
MySQL中,可以转换以下数据类型:
CHAR NCHAR BINARY DATE DATETIME
DECIMAL DOUBLE FLOAT REAL SIGNED
UNSIGNED TIME YEAR JSON spatial_type
将 number 转换为 signed integer:
SELECT CAST(1234.567 AS signed);
-- result: 1235
将列转换为double:
SELECT CAST(column AS double);