首页 > 数据库 >MySQL

MySQL

时间:2023-07-18 23:11:28浏览次数:72  
标签:age MySQL 查询 emp 表名 where select

SQL

SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾。

  2. SQL语句可以使用空格/缩进来增强语句可读性。

  3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

  4. 注释

    1. 单行注释:--注释内容或者#注释内容(MySQL特有)

    2. 多行注释:/* 注释内容 */

 

DDL-数据库操作

查询

  1. 查询所有数据库

show databases;
  1. 查询当前数据库

select database();

创建

create database [if not exists]数据库名 [default charset 字符集] [collate 排序规则]; 

删除

drop database[if exists] 数据库名;

使用

use 数据库名;

 

DDL表操作

DDL-表操作-修改

  1. 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
  1. 修改字段名和字段类型

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

    ALTER TABLE 表名 DROP 字段名

    案例:将emp表的字段username删除

    ALTER TABLE emp DROP username;

     

DDL-表操作-删除

删除表

DROP TABLE[IF EXISTS] 表名

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

TRUNCATE TABLE 表名

DML

DML-添加数据

给指定字段添加数据

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

给全部字段添加数据2

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

批量添加数据3

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

注意: 插入数据时,指定的字段顺序需要与值的顺序是一一对应的 字符串和日期型数据应该包含在引号中 插入的数据大小,应该在字段的规定范围内。

DML-修改删除数据

修改数据

UPDATE 表名 SET 字段1= 值1,字段2=值2 [WHERE 条件];

删除数据

DELETE FROM 表[WHERE 条件];

 

DQL语法

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

案例:

查询年龄不等于 88 的员工信息

select * from emp where age != 88;
select * from emp where age> 88;

查询年龄在15岁(包含) 到 20岁(包含)之间的员工信息

select * from emp where age >= 15 && age <= 20;
select * from emp where age >= 15 and age <= 20;
select * from emp where age between 15 and 20;

查询年龄等于18 或 20 或 40 的员工信息

select * from emp where age = 18 or age = 20 or age =40;
​
seLect * from emp where age in(18,20,40);

查询姓名为两个字的员工信息

select * from emp where name Like '__'

查询身份证号最后一位是X的员工信息

select * from emp where idcard like'%X';
​
select * from emp where idcard like'_ _ _ _ _ _ _ _ _ _ _ _ _X';

DQL聚合函数

DQL-聚合函数

  1. 介绍

    将一列数据作为一个整体,进行纵向计算。

  2. 常见聚合函数

  1. 语法

    SELECT 聚合函数(字段列表) FROM 表名;

    注意: null值不参与所有聚合函数运算

    案例:

    统计该企业员工的平均年龄

    seLect avg(age) from emp;

    统计该企业员工的最大年龄

    select max(age) from emp;

    统计该企业员工的最小年龄

    select min(age) from emp;

    统计西安地区员工的年龄之和

    seLect sum(age) from emp where workaddress = 西安';

    DQL分组查询

    1. 语法

    SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];
    1. where与having区别执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。判断条件不同:where不能对聚合函数进行判断,而having可以。 注意: 执行顺序: where > 聚合函数>having 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义.

    案例:

    1. 根据性别分组 ,统计男性员工 和 女性员工的数量

    select gender, count(*) from emp group by gender ;
    1. 根据性别分组 ,统计男性员工 和 女性员工的平均年龄

    select gender, avg(age) from emp group by gender ;
    1. 查询年龄小于45的员工 , 并根据工作地址分组 ,获取员工数量大于等于3的工作地址

    select workaddress, count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;
    1. 根据年龄对公司的员工进行升序排序

    2. seLect * from emp order by age ascseLect * from emp order by age desc;
      select * from emp order by age;
    3. 根据入职时间,对员工进行降序排序

      select * from emp order by entrydate desc;
    4. 根据年龄对公司的员工进行升序排序 ,年龄相同 ,再按照入职时间进行降序排序

      select * from emp order by ageasoentrydate desc;
      select * from emp order by age asc , entrydate asc;

       

DQL-分页查询

  1. 语法

    select 字段列表 from 表名 limit 起始索引,查询记录数;
  1. 注意:

    1. 起始索引从0开始,起始索引= (查询页码-1) * 每页显示记录数

    1. 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT

    1. 如果查询的是第一页数据,起始索引可以省略,直接简写为 imit 10。

案例

  1. 查询第1页员工数据, 每页展示10条记录

    select * from emp limit 0,10;
    select * from emp limit 10;
  2. 查询第2页员工数据,每页展示10条记录 -------->(页码-1)*页展示记录数

    select * from emp limit 10,10;

 

DQL-执行顺序

 

标签:age,MySQL,查询,emp,表名,where,select
From: https://www.cnblogs.com/liandaozhanshi/p/17564380.html

相关文章

  • MySQL高级锁之意向锁
    2.1意向锁2.1.1意向锁的概念意向锁的存在是为了协调行锁和表锁的关系,用于优化InnoDB加锁的策略。意向锁的主要功能就是:避免为了判断表是否存在行锁而去全表扫描。意向锁是由InnoDB在操作数据之前自动加的,不需要用户干预;意向共享锁(IS锁):事务在请求S锁前,要先获得IS锁意向排他锁(IX锁......
  • MySQL高级锁之临键锁
    2.4临键锁2.4.1临键锁的区间测试临键锁(Next-KeyLock):临键锁是查询时InnoDB根据查询的条件而锁定的一个范围,这个范围中包含有间隙锁和记录数;临键锁=间隙锁+记录锁。其设计的目的是为了解决PhantomProblem(幻读);主要是阻塞insert,但由于临键锁中包含有记录锁,因此临键锁所锁定的范......
  • MySQL高级锁之自增锁
    2.5自增锁MySQL的自增锁是指在使用自增主键(AutoIncrement)时,为了保证==唯一性和正确性==,系统会对自增字段进行加锁。这样可以确保同时插入多条记录时,每条记录都能够获得唯一的自增值。创建测试表:droptableifexistst3;CREATETABLE`t3`(`id`int(11)NOTNULLAUTO_INC......
  • PyMySQL插入字典类型的数据
    importpymysqlMYSQL_CONFIG={'host':'localhost',#IP地址'port':3306,#端口'user':'root',#用户名'passwd':'123456',#密码'db':'layui',......
  • Ubuntu安装MySQL、nginx、nacos
    Ubuntu安装mysql1、安装mysql#此命令直接安装最新版mysql8.0sudoapt-getinstallmysql-server2、查看默认用户及密码cat/etc/mysql/debian.cnfuser =debian-sys-maintpassword =s8hjWltF0W2EBU323、登录该用户mysql-udebian-sys-maint-pusemysql;updateuse......
  • mysql text 长度定义
    MySQLText字段长度定义作为一名经验丰富的开发者,我将教你如何实现“MySQLText字段长度定义”。下面我将分步骤向你介绍整个过程,并附上相应的代码示例。步骤步骤说明1创建数据库表2设计Text字段3定义Text字段的长度步骤1:创建数据库表首先,我们需要创建一......
  • mysql 事务自动回滚
    MySQL事务自动回滚在MySQL数据库中,事务是一组原子性操作的集合,它们要么全部成功执行,要么全部失败回滚。事务可以保证在并发环境下数据的一致性和完整性。当一个事务执行出现错误或异常时,数据库会自动回滚到事务开始之前的状态,保证数据的完整性。事务的基本概念在MySQL中,事务由以......
  • mysql 事务和存储过程
    MySQL事务和存储过程1.事务的概念和流程事务是指一组数据库操作,它们作为一个逻辑单元一起执行,并且要么全部都执行成功,要么全部都回滚到事务开始前的状态。MySQL中的事务主要用于保证数据的完整性和一致性。以下是MySQL事务的基本流程:步骤描述1开启事务2执行SQL......
  • mysql 事务当中为什么出现幻读
    MySQL事务中为什么出现幻读1.介绍在MySQL数据库中,事务是一组原子性的操作,可以确保数据的一致性和完整性。然而,在一些特定情况下,即使使用了事务,仍然可能出现幻读的问题。幻读指的是在一个事务中,当对某个表进行查询时,其他事务在这个事务的锁尚未释放之前,插入了新的数据,导致前一个......
  • mysql 使用查询结果update
    MySQL使用查询结果更新的流程在MySQL中,我们可以使用查询结果来更新数据。下面是实现这个过程的步骤表格:步骤描述第一步连接到MySQL数据库第二步编写查询语句第三步执行查询语句第四步获取查询结果第五步编写更新语句第六步执行更新语句下面我......