mysql简单查询

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

我们使用oracle自带的测试表进行查询学习,先使用建表语句创建数据表

dept表:

CREATE TABLE DEPT
(
  deptno INT NOT NULL PRIMARY KEY,
  dname  VARCHAR(14),
  loc    VARCHAR(13)
);

emp表:

-- Create table
CREATE TABLE EMP
(
  empno    INT NOT NULL PRIMARY KEY,
  ename    VARCHAR(10),
  job      VARCHAR(9),
  mgr      INT,
  hiredate DATE,
  sal      DOUBLE,
  comm    DOUBLE,
  deptno   INT,
  CONSTRAINT FOREIGN KEY tb_emp_fk(deptno) REFERENCES DEPT(deptno)
);


插入数据:

INSERT INTO DEPT (deptno, dname, loc)
VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT (deptno, dname, loc)
VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT (deptno, dname, loc)
VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT (deptno, dname, loc)
VALUES (40, 'OPERATIONS', 'BOSTON');

INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7369, 'SMITH', 'CLERK', 7902,'1980-12-17', 899, NULL, 20);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7499, 'ALLEN', 'SALESMAN', 7698,'1981-02-20', 1633, 300, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7521, 'WARD', 'SALESMAN', 7698,'1981-02-22', 1250, 500, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7566, 'JONES', 'MANAGER', 7839,'1981-04-02', 2975, NULL, 20);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7654, 'MARTIN', 'SALESMAN', 7698,'1981-09-28', 1250, 1400, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7698, 'BLAKE', 'MANAGER', 7839,'1981-05-01', 2850, NULL, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7782, 'CLARK', 'MANAGER', 7839,'1981-06-09', 2450, NULL, 10);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7839, 'KING', 'PRESIDENT', NULL,'1981-11-17', 5000, NULL, 10);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7876, 'ADAMS', 'CLERK', 7788,'1987-05-23', 1100, NULL, 20);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7900, 'JAMES', 'CLERK', 7698,'1981-12-03', 950, NULL, 30);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7902, 'FORD', 'ANALYST', 7566,'1981-12-03', 3000, NULL, 20);
INSERT INTO EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (7934, 'MILLER', 'CLERK', 7782,'1982-01-23', 1300, NULL, 10);


下面,我们进行查询操作:


1. 简单的select查询

# 最简单的select语句 select 字段,字段 从 表中
SELECT deptno, dname,loc FROM dept;
SELECT * FROM dept;   # *表示所有的列
SELECT deptno FROM dept;     # 查询某一个字段的数据

SELECT * FROM emp;

2. 查询过程中的算数表达式

# 算数表达式
# 查询员工、月薪、年薪
SELECT ename,sal,sal*12
FROM emp;

3. 算数表达式的优先级

/**
   乘法和除法的优先级高于加减法
   同级运算从左到右
   表达式中括号最优先
*/

SELECT ename,sal,sal*(12+100)
FROM emp;


4.  空值 null

/** 
   空值是指不可使用、未分配的值
   空值不等于零或者空格
   任何类型都可以支持空值
   包括空值的任何算数表达式都等于空
   字符串和null进行连接运算,得到的也是null
*/

SELECT *
FROM emp
WHERE comm IS NULL;

5. 查询时为列设置别名

/**
  更改列的别名
*/

SELECT ename '名字',sal '月薪',sal*12 '年薪'
FROM emp;

6. 删除重复记录

/**
   缺省情况下查询显示所有行,包括重复记录
*/
SELECT deptno
FROM emp;

/**
   可以使用DISTINCT清除重复记录
*/
SELECT DISTINCT deptno
FROM emp;


7. DISTINCT的作用范围是后面所有字段的组合

/**
   DISTINCT的作用范围是后面所有字段的组合
*/
SELECT DISTINCT deptno,job
FROM emp
WHERE deptno=20;

8. where限定查询结果

/**
   使用where可以限定返回的记录
*/  
SELECT *
FROM emp
WHERE deptno=20;

9. 字符串和日期要用单引号引起来

/**
   字符串和日期要用单引号引起来
*/  
SELECT *
FROM emp
WHERE ename='SMITH';

SELECT *
FROM emp
WHERE hiredate='1980-12-17';

10. 比较运算符

SELECT ename,sal,comm,job
FROM emp
WHERE sal<=1500;


11. BETWEEN、 IN

/**
   使用BETWEEN运算符查询某一段数据(包含最小值和最大值)
*/  
SELECT ename,sal,comm,job
FROM emp
WHERE sal BETWEEN 1500 AND 3000;



/**
   使用IN运算符获得匹配列表值的记录
*/  
SELECT ename,sal,comm,job
FROM emp
WHERE mgr IN(7902,7566,7788);

SELECT ename,sal,comm,job
FROM emp
WHERE mgr NOT IN(7902,7566,7788);


12. LIKE进行模糊查询

/**
   使用LIKE运算符进行模糊查询
   查询条件可包含中文或数字
   (%) 可表示0或者多个字符
   (_)可表示一个字符
*/  

SELECT ename,sal,comm,job
FROM emp
WHERE ename LIKE '%A%';

SELECT ename,sal,comm,job
FROM emp
WHERE ename LIKE '_L%';


13. AND OR

# 两个条件都满足
SELECT ename,sal,comm,job
FROM emp
WHERE sal>1000 AND job='SALESMAN';


# 两个条件满足一个
SELECT ename,sal,comm,job
FROM emp
WHERE sal>1000 OR job='SALESMAN';


14. 对结果集进行排序

#order by
SELECT *
FROM emp
ORDER BY sal DESC;  #从高到低


SELECT *
FROM emp
ORDER BY sal ASC;  #从低到高


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL查询性能的方法有很多
提高MySQL查询性能的方法有很多
145 7
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL的查询性能
提高MySQL的查询性能
66 4
|
3天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
31 9
|
4天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
17 3
|
10天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
14天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
11天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
26 1
|
8天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
42 0
|
9天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
38 0
|
11天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
23 0