MySQL 基础笔记

-- 蠕虫复制 (压力测试)
INSERT INTO PRODUCT SELECT * FROM PRODUCT;
-- 去重查询
SELECT DISTINCT PRICE FROM PRODUCT ORDER BY PRICE DESC;
-- 字段置空
UPDATE PRODUCT SET CATEGORY_ID = 'NULL' WHERE PID = 14;
-- 改变表结构,增加 size字段
ALTER TABLE PRODUCT2 ADD SIZE CHAR(10);
-- SELECT 后面一般跟 被查询的分类,聚合函数
SELECT PRICE,COUNT(*) FROM PRODUCT GROUP BY PRICE;
-- 复制表结构
CREATE TABLE product2 LIKE product;
-- 创建数据库并指定数据库编码格式
CREATE DATABASE IF NOT EXISTS DB3 CHARACTER SET GBK;
-- 改变数据库编码格式
ALTER DATABASE DB3 DEFAULT CHARACTER SET UTF8;
-- 删除一行数据
DELETE FROM PRODUCT WHERE PID IS NULL;

1、DQL_select执行顺序
I. from
II. where
III. group by (之后是聚合函数运行)
IV. having
V. select
VI. order by
VII. limit

 

2、having与where的区别

    •   having是在分组后对数据进行过滤.

    •   where是在分组前对数据进行过滤

    •   having后面可以使用聚合函数

    •   where后面不可以使用聚合函数

    •        where先执行效率高,能where用where

    •         having一般和group by一起出现,对聚合结果进行过滤

3、delete from truncate table 的区别

  delete form 表名

    •   elete属于DML语句

    •   elete 是遍历删除

    •   delete删除的可能恢复

  truncate table 表名

    •   truncate 属于DDL语句(级别高)

    •   truncate 是复制原表结构为一张新表,然后直接删除原表(效率高)

    •   etruncate 删除的无法恢复

原文地址:https://www.cnblogs.com/axibug/p/14924407.html