数据库操作主要分成三部分,分别是DDL(数据库、表操作)DML(数据增删改)DQL(查)
【DDL】CREATE | ALTER | DROP
【数据库】
【创建数据库】
CREATE DATEBASE 数据库名称 DEFAULT CHARRACTER SET utf8 COLLATE utf8 general_ci;
【查看数据库】
SHOW DATABASES;
【修改数据库】
ALTER DATABASE 数据库名称 CHARACTER SET utf8;
【删除数据库】
DROP DATABASE 数据库名称;
【使用(切换)数据库】
USE 数据库名称
【数据表】
【数据类型】
【数值(Number)型】
- INT
- FLOAT/DOUBLE
- DECIMAL 精确值:多用于金额
【日期(DATE)型】
- DTAE (YYYY-MM-dd)
- DATETIME (YYYY-MM-dd hh:mm:ss)
- TIMESTAMP (时间戳:唯一标识)
【字符串类型】
- CHAR (num) 长度固定的字符串
- VARCHAR(num) 只限制最大长度的字符串
【约束】
*【主键约束】PRIMARY KEY - 唯一不可重复
*【主键自增约束】AUTO_INCREMENT
【创建数据表】
CREATE TABLE 数据表名称( 字段名称1 数据类型, //字段名称相当于每一列的标题 字段名称2 数据类型, ... );
[示例]
CREATE TABLE myuser ( //标识(唯一,不可重复) id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30), pwd VARCHAR(30), age INT, email VARCHAR(30), addr VARCHAR(30) );
【删除数据表】
DROP TABLE 数据表名称;
【查看数据表结构】
DESC 表名称;
【DML】增删改 - INSERT | UPDATE | DELETE
【新增数据】INSERT
[用法1]
INSERT INTO 表名 VALUES (字段值1,字段值2,...);
【注意】
- 前面有多少字段,后面就有多少字段值
- 如果哪个字段是主键自增的话,用NULL补全
[用法2]
INSERT INTO 表名(字段名1,字段名2,..) VALUES (字段值1,字段值2,...)
【注意】
- 字段名与字段值对应
- 当前数据表字段允许为空
【更新数据】UPDATE
[用法1]
UPDATE 表名 SET 字段名=字段值;
【注意】
- 修改了字段名对应的所有字段值(整列)
[用法2]
UPDATE 表名 SET 字段名=字段值 WHERE 字段名=字段值;
[用法3]
UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2 WHERE 字段名=字段值;
【删除数据】
[用法1]
DALETE FROM 表名;
【注意】
- 删除指定表中的所有数据
[用法2]
DELETE FROM 表名 WHERE 字段名=字段值;
【问题】
- 实际操作中基本不使用DELETE语句,以防用户反悔
【SQL操作】(删除)
- 物理删除:DELETE
- 逻辑删除:表面删除
为指定表添加一个(state|status)字段,表示当前记录的状态
- 值为1:表示记录正常
- 值为0:表示记录删除
【DQL】查
【基本查询】
[用法1]
SELECT * FROM 表名;
[用法2]
SELECT 字段名1,字段名2,... FROM 表名;
【条件基本查询】
[用法]
SELECT * FROM 表名 WHERE 字段名=字段值;
【复杂条件查询】
- AND 多个条件同时满足
- OR 多个条件只要满足一个
- IN(SET) 表示一个字段包含多个值
SET - 多个字段值之间用‘,‘
- = 表示字段值为指定值
- BETWEEN ... AND ...
- IS NULL 匹配NULL值
【排序查询】ORDER BY 字段名
ASC - 正序排序,默认值
DESC - 倒序排序
- SELECT * FROM 表名 WHERE 条件 ORDER BY ASC|DESC