SQL: 结构化查询语句 (Structured Query Language)
DDL 数据定义语句
DDL: 数据定义语句 (Data Definition Language)
库
1 2
   |  CREATE DATABASE example;
 
  | 
 
1 2 3 4 5
   |  USE example;
 
  SELECT DATABASE();
 
  | 
 
1 2 3
   | 
  CREATE DATABASE example CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
  | 
 
表
1 2 3 4
   | CREATE TABLE example;
 
  SHOW TABLES;
 
  | 
 
实例:
要注意的是, 枚举型数据 ENUM 只允许插入字母,下划线和数字的字符组合
因此, 别想着在这里默认插入中文字符
1 2 3 4 5 6 7
   | CREATE TABLE example.users(     id INT NOT NULL AUTO_INCREMENT,     name VARCHAR(10) NOT NULL,     gender ENUM("male", "female") NOT NULL DEFAULT "male",     age INT(12) NOT NULl,     PRIMARY KEY (id)     );
 
  | 
 
DML
DML: 数据操作语句 (Data Manipulation Language)
数据添加
1 2 3 4 5
   |  INSERT INTO example.table (key1, key2, ...) VALUES (value1, value2, ...);
 
  INSERT INTO example.table VALUES ( value1, value2, ...);
 
  | 
 
数据删除
注意, 如果省略了 WHERE, 整个表的记录都会被删除
1 2
   | DELETE FROM example.table WHERE id = 0;
 
  | 
 
数据更新(修改)
一定要指定 WHERE 否则所有记录都将更新
1
   | UPDATE table_1 SET colum_1 = data_2  WHERE colum_1 = data_1;
 
  | 
 
DQL
DQL: Data Query Language
特征是以 WHERE 开头
IN 语句
这一语句是用于过滤数据
假设我们有一个名为表 test, 有 name 和 bender 两个字段
我们只想查询性别为女的行(记录)就可以用到以下语句
1
   | SELECT name,bender FROM test WHERE sex IN ("male")
 
  | 
 
多表联合查询
INNER JOIN 内连接
1 2 3
   | SELECT colum_1,cloum_2 FROM table_1 INNER JOIN table2 ON table_1.colum_1 = table_2.colum_3
 
  | 
 
分组 GROUP By
DCL
DCL: Data Control Language
1 2 3 4 5 6 7
   | CREATE TABLE students (     sid INT NOT NULL AUTO_INCREMENT,     stuname VARCHAR(20) NOT NULL,     stunum VARCHAR(20) NOT NULL,     stuage INT,     PRIMARY KEY (sid)     );
 
  | 
 
其他
修改 root 账户
进入 mysql 库, 修改 user 表
1 2 3 4 5 6
   | 
  UPDATE mysql.user SET authentication_string=password("密码") WHERE user="root"
 
  UPDATE mysql.user SET authentication_string="密码" WHERE user="root";
 
  |