SQL语句
- sql语句可以单行或多行书写
- 支持空格/缩进
- 不区分大小写
- 注释:
--或# 单行/*多行*/
sql操作
DDL数据库整体操作
SHOW DATABASES; - 查询所有数据库
SELECT DATABASES(); - 查询当前数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET字符集(UTF8mb4)] [COLLATE 排序规则]; - 创建
DROP DATABASE [IF EXISTS] 数据库名; - 删除
使用USE 数据库名;
title:Example
collapse:open
~~~SQL
CREATE DATABASE ikun DEFAULT CHARSET utf8mb4;
use ikun;
select database();
+------------+
| database() |
+------------+
| ikun |
+------------+
~~~SHOW TABLES; - 查表
DESC 表名; - 查表结构
SHOW CREATE TABLE 表名; - 查询指定表的建表语句
DROP TABLE [IF EXISTS] 表名称; - 删除表
创建表
title:Important
collapse:open
~~~SQL
CREATE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
...
字段3 字段3类型[COMMENT 字段3注释],
)[COMMENT 表注释];
~~~常见数据类型
| 类型 | 大小 | 描述 |
|---|---|---|
| INT | 整数 | |
| SMALLINT | 浮点数 | |
| VARCHAR | 文本 | |
| date | 日期类型 | |
| timetamp | 时间戳类型 |
SQL注释
- 单行注释:
-- 注释内容 - 单行注释:
# 注释内容 - 多行注释:
/*注释内容*/
DML数据操作
DML:数据增删改操作
插入数据
INSERT INTO 表[(列1, 列2, ......, 列N)] VALUES(值1, 值2, ......, 值N)[, (值1, 值2, ......, 值N), ......, (值1, 值2, ......, 值N)];
CREATE TABLE student(
id INT,
name VARCHAR(30),
age INT
)
-- 插入id数据
INSERT INTO student(id) VALUES(1), (2), (3);
-- 插入全部数据
INSERT INTO students(id, name, age) VALUES(10001, '张三', 31), (10002, '李四 ', 33), (10003, '王五', 26);
-- 快捷写法
INSERT INTO student VALUES(10004, '老六', 31), (10005, '小七', 33), (10006, '老八', 26);删除数据
DELETE FROM 表名称 [WHERE 条件判断];
判断操作符
= < > <= >= !=更新数据
UPDATE 表名 SET 列=值 [WHERE 条件判断];
-- from Important1
UPDATE student SET name = '张学友' WHERE id = 10001;
-- 张三被改成张学友DQL数据查询操作
DQL:查询
基础语法
SELECT 字段列表 | * FROM 表 [WHERE 条件判断]
-- 查询id name 两个列
SELECT id, name FROM student;
-- 查询全部列
SELECT id, name, age FROM student;
-- 查询全部列,快捷
SELECT * FROM student;DCL分组聚合控制计算
DCL:分组聚合控制计算
将数据分成组通过聚合函数计算输出
SELECT 字段 | [聚合函数, ...] FROM 表 [WHERE 条件] GROUP BY 列 [ORDER BY ... [ASC | DESC]]
聚合函数有:
SUM(列) -- 求和
AVG(列) -- 求平均值
MIN(列) -- 求最小值
MAX(列) -- 求最大值
COUNT(列 | *) -- 求数量通过 列 分组
GROUP BY 列
通过 列 排序(默认升序)
ORDER BY 列 [ASC | DESC]
- ASC 升序
- DESC 逆序
通过 n, m 限制输出数据数量(必须写在最后)
LIMIT n[, m]
常用数据库SQL语句
插入获取代数据
insert or replace into [表名]
(变量1, ...)
value
(数据1, ...);