1.数据库的基本操作
显示当前库
SHOW DATABASES;
创建数据库
CREATE TABLE 数据库名称;
判断系统是否有test库,若没有,则创建utf8mb4字符集的数据库test
CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8mb4;
使用数据库
use 数据库名;
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
2.表的操作
查看表
desc 表名;
创建表
CREATE TABLE 表名(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束...)
删除表
DROP TABLE 表名;
3.MySQL表的增删改查
新增
全列插入,value_list 数量必须和定义表的列的数量及顺序一致
INSERT INTO student VALUES (100, 10000, 'A', NULL);
指定列插入,value_list 数量必须和指定列数量及顺序一致
INSERT INTO student (id, sn, name) VALUES(103, 20002, '孙仲谋');
查询
全列查询
SELECT * FROM 表名;
指定列查询
SELECT 列明1,列明2... FROM 表名;
为查询结果中的列指定别名
为查询结果中的列指定别名
SELECT 列明 AS 别名 FROM 表名;
去重
使用DISTINCT关键字对某列数据进行去重
SELECT DISTINCT 列明 FROM 表名;
排序
默认为升序
SELECT 列明1,列明2... FROM 表名 ORDER BY 列名; -- 升序
SELECT 列明1,列明2... FROM 表名 ORDER BY 列名 DESC; -- 降序
条件查询(WHERE)
SELECT 列明1,列明2... FROM 表名 WHERE 条件;
- 不能使用别名;2. AND的优先级高于OR
分页查询(LIMIT)
从s开始,筛选n条结果
SELECT ... FROM 表名 [WHERE] [ORDER BY ...]LIMIT n OFFSET s;
模糊查询
-- % 匹配任意多个字符(包括0个)
SELECT name FROM exam_result WHERE name LIKE '孙%';
SELECT name FROM exam_result WHERE name LIKE '%孙%';
-- _ 匹配严格的1个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';
范围查询
BETWEEN…AND…
SELECT 列明1,列明2... FROM 表名 WHERE...BETWEEN...AND...;
-- 查询语文成绩在[80,90]分的同学及语文成绩
SELECT name,chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;
-- 使用AND也可以实现
SELECT name,chinese FROM exam_result WHERE chinese>=80 AND chinese<=90
IN
SELECT 列明1,列明2... FROM 表名 WHERE...IN...;
-- 查询数学成绩在是58或者59或者98或者99的同学及数学成绩
SELECT name,math FROM exam_result WHERE math IN(58,59,98,99);
-- 使用OR也可以实现
SELECT name,math FROM exam_result WHERE math=58 OR math=59 ORmath=98 ORmath=99;
修改
UPDATE 表名 SET 字段1 =值1,字段2 =值2...WHERE条件
删除
DELETE FROM 表名 WHERE条件