MySQL 记录

目录

1.别名

2.显示表结构

3.比较运算符

4.NULL

5.BETWEEN AND

6.转义字符

7.正则表达式

8.分页

9.多表查询

10.JOIN

11.单行函数

12.分组

13.SELECT的执行过程

14.子查询

15.创建与管理表

(15.1)管理数据库

(15.2)修改数据库

(15.3)删除数据库

(15.4)修改数据表

(15.5)重命名数据表

(15.6)清空与删除表


基础

1.别名

As:即alias

“”:双引号

注意事项:表定义了别名,原名必须要被替换为别名;

2.显示表结构

DESCRIBE 表名;

DESC 表名;

3.比较运算符

<=>:意义同=,区别:对NULL也可用;

<>:不等于。

4.NULL

参与WHERE子句:

        关键字:IS NULL、IS NOT NULL

函数:ISNULL(字段)

比较:

        不相等:NOT 字段 <=> NULL

        相  等:字段 <=> NULL

5.BETWEEN AND

字段 BETWEEN 数字1 AND 数字2

等价于:

        字段 >=数字1 && 字段 <=数字2

取反:

        字段 NOT BETWEEN 数字1 AND 数字2

        字段 <=数字1 or 字段 >=数字2

6.转义字符

  • \
  • ESCAPE ‘任意字符’
    SELECT last_name
    FROM employee
    WHERE last_name LIKE ‘_$_a%’ ESCAPE $;

7.正则表达式

        REGEXP

        RLIKE

8.分页

LIMIT #(适用于:MySQL、PostgreSQL、MariaDB和SQLite)

(1)LIMIT 起始索引,显示记录数量

    SELECT * FROM employee

    LIMIT 0,20;

(2)LIMIT 显示记录数量 OFFSET起始索引

    SELECT * FROM employee

    LIMIT 20 OFFSET 0;

9.多表查询

所有列名前加上所属表名,优化查询速度;

10.JOIN

        

11.单行函数

字符串、数学、日期时间、流程处理(IF、IFNULL、CASE WHEN THEN [ELSE] END

  • 流程处理函数
    • 同if

                IF(value, value1, value2)                                                                                        

  • 同if ≠NULL

                IFNULL(value1, value2)

  • 同if else

                CASE  WHEN 条件1 THEN 输出1

                WHEN 条件2 THEN 输出2

                ...

                WHEN 条件n THEN 输出n

                ELSE 默认输出 END “列别名”

  • 同 switch case

                CASE  列名  WHEN 常量1 THEN 输出1

                WHEN 常量2 THEN 输出2

                ...

                WHEN 常量n THEN 输出n

                ELSE 默认输出 END “列别名”

12.分组

  • GROUP BY

       注意:(1)SELECT中出现的集合函数字段必须声明在GROUP BY中;反之,GROUP BY中声明的字段可以不出现在SELECT中。

WITH ROLLUP

        分组结果最后添加整体平均值

        当使用ROLLUP时,不能同时使用ORDER BY对结果进行排序,显然:ROLLUP 和 ORDER BY互斥;

13.SELECT的执行过程

查询语法结构

Sql92语法:

        SELECT …,…,…[存在聚合函数]

        FROM …,…,…

        WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件

        GROUP BY …,…,…

        HAVING 包含聚合函数的过滤条件

        ORDER BY …,…[ASC / DESC]

        LIMIT …,…

Sql99语法:

        SELECT …,…,…[存在聚合函数]

        FROM … [LEFT/RIGHT] JOIN … ON 多表的连接条件

        WHERE  不包含聚合函数的过滤条件

        GROUP BY …,…,…

        HAVING 包含聚合函数的过滤条件

        ORDER BY …,…[ASC / DESC]

        LIMIT …,…

SELECT 执行顺序★

FROM->WHERE->GROUP BY->HAVING->SELECT 字段s->DISTINCT->ORDER BY-> LIMIT

14.子查询

子查询不可以在GROUP By 和 LIMIT中其他地方都可以;

自连接 优于 子查询;

子查询的编写技巧(或步骤):① 从里往外写  ② 从外往里写

如何选择?

① 如果子查询相对较简单,建议从外往里写。一旦子查询结构较复杂,则建议从里往外写

② 如果是相关子查询的话,通常都是从外往里写。

15.创建与管理表

创建数据库

        格式:

                CREATE DATABASE [IF NOT EXISTS] 库名 [CHARACTER SET ‘字符集名’]

        示例:

                CREATE DATABASE IF NOT EXISTS T_Test CHARACTER SET 'utf8';

                SHOW CREATE DATABASE T_Test;

15.1)管理数据库

        #查看当前连接中的数据库都有哪些

        SHOW DATABASES;

        #切换数据库

        USE 数据库名;

        #查看当前数据库中保存的数据表

        SHOW TABLES;

        #查看当前使用的数据库

        SELECT DATABASE() FROM DUAL;

        #查看指定数据库下保存的数据表

        SHOW TABLES FROM 数据库名;

(15.2)修改数据库

        #更改数据库字符集

        ALTER DATABASE 数据库名 CHARACTER SET 'utf8';

(15.3)删除数据库

        DROP DATABASE [IF EXISTS] 数据库名;

创建数据表

        格式1

                CREATE TABLE [IF NOT EXISTS] 表名(   #需要用户具备创建表的权限。

                字段1 字段类型

                );

        格式2

                CREATE TABLE 表名

                AS

                SELECT 语句;

        #查看

                DESC 表名;

(15.4)修改数据表

添加字段、修改字段(类型、默认值)、字段重命名、删除字段

示例1:添加字段

        #ALTER TABLE 表名

        #ADD [COLUMN] 字段名 字段类型 [FIRST | AFTER 字段名];

        ALTER TABLE myemp1

        ADD phone_number VARCHAR(20) FIRST;

        ALTER TABLE myemp1

        ADD email VARCHAR(45) AFTER emp_name;

示例2:字段重命名

        #ALTER TABLE 表名

        #CHANGE 旧字段名 新字段名 字段类型;

        ALTER TABLE emp

        CHANGE salary monthly_salary DOUBLE(10.2);

(15.5)重命名数据表

格式1

        RENAME TABLE 旧表名

        TO 新表名;

格式2

        ALTER TABLE 旧表名

        RENAME TO 新表名;

(15.6)清空与删除表

清空

        TRUNCATE TABLE 表名;#全部清除,不可回滚

        DELETE FROM 表名; #全部清除,可回滚;

删除

        DROP TABLE IF EXISTS 表名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值