首页 > 数据库 >MySQL

MySQL

时间:2022-11-06 12:45:03浏览次数:43  
标签:MySQL .... 查询 字段 表名 TABLE SELECT

MySQL

MySQL启动

    net start mysql80
    net stop mysql80

MySQL客户端连接

    MySQL自带的客户端命令行
    mysql [-h 172.0.0.1] [-P 3306] -u root -p

SQL

  • DDL: 数据定义语言, 用来定义数据库对象(数据库/表/字段)
  • DML: 数据操作语言, 用来对数据库表中的数据进行增删改
  • DQL: 数据查询语言, 用来查询数据库中表的记录
  • DCL: 数据控制语言, 用来创建数据库用户/控制数据库的控制权限

数据定义语言(DDL)

数据库操作

  • 查询

查询所有数据库

   SHOW DATABASES;

查询当前数据库

    SELECT DATABASE();
  • 创建
    CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]; 
  • 删除
    DROP DATABASE [IF EXISTS] 数据库名;
  • 使用
    USE 数据库名;

表操作

  • 查询

查询当前数据库所有表

    SHOW TABLE;

查询表结构

    DESC 表名;

查询指定表的建表语句

    SHOW CREATE TABLE 表名;
  • 创建
    CREATE TABLE 表名(
        字段1 字段1类型[COMMENT 字段1注释],

        字段n 字段n类型[COMMENT 字段n注释]
    )[COMMENT 表注释];
  • 修改

添加字段

    ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

修改数据类型

    ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

删除字段

    ALTER TABLE 表名 DEOP 字段名;

修改表名

    ALTER TABLE 表名 RENAME TO 新表名;

删除表

    DROP TABLE [IF EXISTS] 表名;

删除指定表, 并重新创建该表

    TRUNCATE TABLE 表名;

数据操作语言(DML)

  • 添加数据

给指定字段添加数据

    INSERT INTO 表名(字段1, 字段2,....) VALUES(值1, 值2,....);

给全部字段添加数据

    INSERT INTO 表名 VALUES(值1, 值2,....);

批量添加数据

    INSERT INTO 表名(字段名1, 字段名2,....) VALUES(值1, 值2,....), (值1, 值2,....), (值1, 值2,....);
    INSERT INTO 表名 VALUES(值1, 值2,....), (值1, 值2,....), (值1, 值2,....);
  • 修改数据
    UPDATA 表名 SET 字段1=值1, 字段2=值2,....[WHERE 条件];
  • 删除数据
    DELETE FROM 表名 [WGERE 条件];

数据查询语言(DQL)

  • 基本查询
  • 条件查询(WHERE)
  • 聚合函数(count, max, min, avg, sum)
  • 分组查询(GROUP BY)
  • 排序查询(ORDER BY)
  • 分页查询(LIMIT)

DQL语法

    SELECT
        字段列表
    FROM
        表名列表
    WHERE
        条件列表
    GROUP BY
        分组字段列表
    HAVING
        分组后条件列表
    ORDER BY
        排序字段列表
    LIMIT
        分页参数

基本查询

查询多个字段

    SELECT 字段1, 字段2, 字段3.... FROM 表名;
    SELECT * FROM 表名;

设置别名

    SELECT 字段1 [AS 别名1], 字段2 [AS 别名2] .... FROM 表名;

去除重复记录

    SELECT DISTINCT 字段列表 FROM 表名;

条件查询

    SELECT 字段列表 FROM 表名 WHERE 条件列表;
条件
比较运算符 功能
BETWEEN....AND... 在某个范围之内(含最小、最大值)
IN(...) 在in之后的列表中的值, 多选一
LIKE 占位符 模糊匹配(_匹配单个字符, %匹配任意个字符)
IS NULL 是NULL

聚合函数

    SELECT count(条件) FROM 表名;
    SELECT avg(条件) FROM 表名;
    SELECT min(条件) FROM 表名;
    SELECT max(条件) FROM 表名;
    SELECT sum(条件) FROM 表名;

分组查询

    SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

排序查询

    SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
排序方式

ASC:升序(默认值)
DESC:降序

分页查询

    SELECT 字段列表 FROM LIMIT 起始索引, 查询记录数;

注意:
起始索引=(页码-1)*页展示记录数

代码练习

    -- 1. 查询年龄为20, 21, 22, 23岁的女性员工信息.
    select * from user where age between 20 and 23 and gender='女';
    -- 2. 查询性别男, 并且年龄在20-40岁(含)以内的姓名为三个字的员工.
    select name from user where gender='男' and age between 20 and 40 and name like '___';
    -- 3. 统计员工表中, 年龄小于60岁的, 男性员工和女性员工的人数
    select count(age) from user where age<60;
    -- 4. 查询所有年龄小于等于35岁员工的姓名和年龄, 并对查询结果按年龄升序排序, 如果年龄相同按入职时间降序排序.
    select * from user where age<=35 order by name asc , entry_time desc ;
    -- 5. 查询性别为男, 且年龄在20-40岁(含)以内的前5个员工信息, 对查询的结果按年龄升序排序, 年龄相同按入职时间升序排序.
    select * from user where age between 20 and 40 and gender='男' order by name asc, entry_time desc limit 0, 5;

QDL执行顺序

  • FROM
  • WHERE
  • GROUP BY
  • SELECT
  • ORDER BY
  • LIMIT

数据控制语言(DCL)

函数

字符串函数

数值函数

日期函数

流程函数

约束

常用约束

外键约束

多表查询

事务

标签:MySQL,....,查询,字段,表名,TABLE,SELECT
From: https://www.cnblogs.com/Ahtelek/p/MySQL.html

相关文章