SQL分类
1.DDL (操作数据库,数据表的SQL)
2.DML (操作数据表数据的SQL,增删改)
3.DQL (查询数据表的数据的SQL)
4.DCL (设置数据库访问权限的SQL)
DDL (操作数据库,数据表的SQL)
数据库
查看有多少个数据库
SHOW DATABASES;
创建数据库
CREATE DATABASE IF NOT EXISTS LXDB(数据库名称) CHARATER SET UTF8;
查看数据库的建库语句,查看数据库使用的字符集
SHOW CREATE DATABASE LXDB(数据库名称);
查看当前正在使用的数据库
SELECT DATABASE();
选中or切换数据库 USE
USE LXDB(数据库名称);
修改数据库的字符集
ALERT DATABASE LXDB CHARACTER SET UTF8;
删除数据库
DROP DATABASE IF EXISTS LXDB;
数据表
查看当前数据库中有多少张表
SHOW TABLES;
创建表 CREATE
新增一张表
CREATE TABLE IF NOT EXISTS TB_STUDENT(
ID INT,
NAME VARCHAR(32),
AGE INT,
SCORE DOUBLE(4,1), -- 最多4位,保留小数点后一位
BIRTHDAY DATA,
INSERT_TIME TIMESTAMP
);
复制表 LIKE
CREATE TABLE IF NOT EXISTS TB_STU LIKE TB_STUDENT;
查看表结构
DESC TB_STUDENT;
删除表 DROP
DROP TABLE IF EXISTS TB_STUDENT;
修改表的结构 ALTER
修改表名 RENAME
ALTER TABLE TB_STUDENT RENAME TO TB_STU;
修改表的字符集
ALTER TABLE TB_STU CHARACTER SET UTF8;
新增一列 ADD
ALTER TABLE TB_STU ADD 列名 数据类型;
修改列名和数据类型 CHANGE
ALTER TABLE TB_STU CHANGE 列名 新列名 新数据类型;
修改指定列的数据类型 MODIFY
ALTER TABLE TB_STU MODIFY 列名 新数据类型
DML (操作数据表数据的SQL,增删改)
增 INSERT
新增一条数据
INSERT INTO 表名 (列名,列名) VALUES(值1,值2);
INSERT INTO 表名 VALUES(值1,值2);
删 DELETE
删除指定的数据 DELETE
DELETE FROM 表名 [WHERE 条件];
删除整张表的数据 TRUNCATE
DELETE FROM 表名; -- 不推荐,表中有多少条SQL就会执行多少次删除操作
TRUNCATE TABLE 表名; -- 推荐, 先删除表,然后再创建一张一样的表。无论表中有多少条数据,都执行两条语句,删除表,创建表。
TRUNCATE TABLE 内部应该是先复制了表再删除表
两种删除表的数据 耗时对比(同一电脑,相同数据量):
改 UPDATE
修改表中的数据
UPDATE 表名 SET 列名1 = 值1,列名2 = 值2 [WHERE 条件];
DQL (查询数据表中数据的SQL)
排序查询 ORDER BY
SELECT * FROM 表名 ORDER BY 列名 ASC; -- 默认升序排序 从小到大
SELECT * FORM 表名 ORDER BY 列名 DESC; -- 降序排序 从大到小
聚合函数
聚合函数是指:把表中的某一列当成一个整体,然后进行统计运算等操作
COUNT 统计个数
SELECT COUNT(AGE) FROM 表名;
SELECT COUNT(IFNULL(AGE,0)) FROM 表名;
AVG 平均值
SUM 求和
MAX 最大值
MIN 最小值
分组查询 GROUP BY
按照表中的某一列的值来进行分组
SELECT SEX COUNT(ID) FROM 表名 WHERE 条件(SCORE>80) GROUP BY SEX(列名) HAVING 聚合函数(COUNT(ID)>3)
分页查询 Limit
Limit 开始的索引,页码
开始的索引 = (当前页-1)*页码
SELECT * FROM 表名 LIMIT 开始的索引,页码