iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql基础编写sql案例(一)
  • 767
分享到

Mysql基础编写sql案例(一)

Mysql基础编写sql案例(一) 2021-04-12 22:04:30 767人浏览 猪猪侠
摘要

数据库里面的数据库sql文件:https://blog.csdn.net/GongmissYan/article/details/102937816 #基础查询 # 查询单个字段 select last_name f

Mysql基础编写sql案例(一)

数据库里面的数据库sql文件:https://blog.csdn.net/GongmissYan/article/details/102937816

#基础查询


# 查询单个字段
select last_name from employees

# 查询多个字段
select last_name ,salary,email from employees

#查询表中的所有字段(尽量不要使用*如果字段明确使用字段)使用*号的顺序是和原始表的顺序是一样的
select * from employees

#查询常量值
SELECT 100 as 这个是100

#查询函数
select VERSION()

#起别名(在查询的时候如果有重名的情况,可以通过别名来区分)
select 100 as 这里是别名
select 100 这里是别名
> 如果别名里面包含了关键字最好通过引号引用起来

#去重:通过DISTINCT来去重
SELECT DISTINCT department_id from employees

# +号的作用
#sql中的+号的作用只是做为运算符

SELECT  FROM employees

#字符串拼接(在字符串拼接的时候使用的是CONCAT)
select CONCAT(last_name,first_name) from employees

# 条件查询


# 按条件表达式筛选
select * from employees where salary > 12000

#查询员工部门编号不是90的员工我姓名和部门的ID
select CONCAT(last_name,first_name) as 员工名,e.department_id from employees e WHERE department_id <> 90

#查询工资在10000到20000之间的员工名,工资以及奖金
SELECT
    CONCAT( last_name, first_name ) AS 员工名,
    salary AS 工资,
    commission_pct * salary AS 奖金 
FROM
    employees 
WHERE
    salary > 10000 
    AND salary < 20000
    
# 查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT
    * 
FROM
    employees 
WHERE
    department_id < 90 AND department_id > 110 
    OR salary > 15000

# 模糊查询

# LIKE

SELECT
    * 
FROM
    employees 
WHERE
    last_name LIKE ( "%a%" )
#查询员工名字第三个字符为e每5个字符为a的
SELECT * from employees WHERE last_name LIKE "__e_a%"
#查询第二个字符是_的
SELECT last_name FROM employees WHERE last_name LIKE "_\_%";
SELECT last_name FROM employees WHERE last_name LIKE "_$_%" ESCAPE "$";

#between and
# 包含两个临界值的
# 两个临界值不可以互换的
#查询员工编号在100    到120之间的员工信息
SELECT * FROM employees WHERE department_id BETWEEN 100 and 120

# in
# 查询员工的工种编号
SELECT
    last_name,
    job_id 
FROM
    employees 
WHERE
    job_id IN ( "AD_PRES", "AD_VP", "IT_PROT" )

# is null
# 案例:查询没有奖金的员工名和奖金率
SELECT
    last_name,
    commission_pct 
FROM
    employees 
WHERE
    commission_pct IS NULL
#案例:查询有奖金的员工名和奖金率
SELECT
    last_name,
    commission_pct 
FROM
    employees 
WHERE
    commission_pct IS NOT NULL
    
# 案例:查询员工号为176的员工的姓名和部门号和年薪
SELECT
    last_name,
    salary * 12 *(1+IFNULL(commission_pct,0))
    FROM employees
    WHERE employee_id = "176"
    
# 查询没有奖金,且工资小于18000的salay,last_name
SELECT
    salary,
    last_name 
FROM
    employees 
WHERE
    commission_pct IS NULL 
    AND salary < 18000
    
# 查询employees表中,job_id不为"IT"或者工资为12000的员工信息
SELECT
    * 
FROM
    employees 
WHERE
    job_id <> "IT" 
    OR salary = 12000
    
# 查看Departments结构
DESC departments
    
# 查询departments表中涉及到了哪些位置的编号
SELECT DISTINCT
    location_id 
FROM
    departments 
WHERE
    location_id IS NOT NULL
    
# 排序查询

# 案例:查询员工的信息,要求工资从高到低排序
SELECT
    * 
FROM
    employees 
ORDER BY
    salary DESC
    
# 案例:查询部门编号 >= 90 的员工信息,按入职时间
SELECT * FROM employees WHERE department_id >= 90 
ORDER BY
    hiredate DESC
    
# 案例:按年薪的高低显示员工的信息和年薪【按表达式】
SELECT
    *,
    salary * 12 + ( 1+ IFNULL( commission_pct, 0 ) ) a 
FROM
    employees 
ORDER BY
    a DESC
    
# 查询姓名的长度来显示员工的姓名和工资【按函数排序】
SELECT LENGTH(last_name) a,salary FROM employees ORDER BY a DESC

# 查询员工信息,要求先按员工资排序,再按员工编号排序
SELECT
    * 
FROM
    employees 
ORDER BY
    salary ASC,
    employee_id DESC
    
# 查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序
SELECT
    last_name,
    department_id,
    12 * salary + ( 1+ IFNULL( commission_pct, 0 ) ) 年薪
FROM
    employees
ORDER BY 年薪 DESC,last_name ASC

# 选择工资不在8000到17000的员工的姓名和工资,按工资降序
SELECT
    last_name,
    salary 
FROM
    employees 
WHERE
    !(salary BETWEEN 8000 
    AND 17000)
ORDER BY
    salary DESC
    
# 查询邮箱中包含e的员工信息,并按邮箱的字节数降序,再按部门号升序
SELECT
    * 
FROM
    employees 
WHERE
    email LIKE "%e%" 
ORDER BY
    LENGTH( email ) DESC,
    department_id ASC
    
# 常见函数

# 案例:将姓变大写,名就能小写,然后拼接
SELECT CONCAT(UPPER(first_name),"_",LOWER(last_name)) FROM employees;
    
# 姓名中首字母大写,其它的字符小写,然后通过_拼接,显示出来
SELECT
    CONCAT(
    UPPER( SUBSTR( last_name, 1, 1 ) ),
    "_",
    LOWER( SUBSTR( last_name, 1 ) ) 
    ) 
FROM
    employees;
    
# instr用于返回子串在父串里面的起始索引(第一次出现的索引)
    
# trim 去掉前后面的空格
# 案例去掉字符串里面的前后的a
SELECT TRIM("a" FROM "aaaaaaaBaaaa")
    
# lpad 如果字符串的长度不为二参值,就会通过&来填满左侧
SELECT lpad("兔兔",10,"&")
# rpad 如果字符串的长度不为二参值,就会通过&来填满左侧
SELECT rpad("兔兔",10,"&")
#把下面字符串中的cc替换成zz
SELECT replace("bbccaa","cc","zz")

#四舍五入
SELECT ROUND(-1.5)
#小数点后面保留两位
SELECT ROUND(-1.5456,2)

#向上取整
SELECT ceil(1.10)
#向下取整
SELECT FLOOR(1.1)
# truncate 截断
SELECT TRUNCATE(1.8999,1)
# mod取余
SELECT MOD(10,3)
# now返回当前系统日期+时间
SELECT now();
# curdate返回当彰系统的日期 不包含时间
SELECT CURDATE()
#curtime 返回当前的时间,不包含日期
SELECT CURTIME()
#可以获取指定的部分
SELECT year(NOW())
SELECT MONTH(NOW()
SELECT DAY(now())
SELECT MONTHNAME(NOW())

# 将字符串的日期转换成date格式
SELECT STR_TO_DATE("2020-07-9","%Y-%c-%d")
#将日期转换成字符
SELECT DATE_FORMAT(NOW(),"%y年%c月%d日")
#查询有奖金的员工名和入职日期(xx月/xx日 xx年)
    SELECT
        last_name,
        DATE_FORMAT( hiredate, "%m月/%d日 %Y年" ) 
    FROM
        employees 
    WHERE
        commission_pct IS NOT NULL

    # 查询员工是否有奖金有就显示有没有就显示没有
    SELECT
        last_name,
        commission_pct,
    IF
        ( commission_pct, "有", "没有" ) 
    FROM
    employees
    
# 查询员工名,姓名,工资,以及工资提高百分之20%后的结果
SELECT last_name,salary,salary * 1.2 FROM employees 
# 将员工的姓名按首字符排序,并写出姓名的长度(length)
    SELECT
        last_name
    FROM
        employees ORDER BY SUBSTR( last_name, 1, 1 ) ASC
#分组函数

# 查询员工表中的最大入职时间和最小入职时间,并计算出它们的相差的天数
SELECT
	DATEDIFF( MAX( hiredate ), MIN( hiredate ) ) 
FROM
	employees;
# 查询员工编号为90的员工个数
SELECT
	COUNT( * ) 
FROM
	employees 
WHERE
	department_id = 90;
	
# 分组查询
#查询每个部门的平均工资
SELECT
	AVG( salary ) 平均工资,
	department_id 部门编号 
FROM
	employees 
GROUP BY
	department_id;
# 查询每个工种的最高工资
SELECT
	MAX( salary ) 最高工资,
	job_id 
FROM
	employees 
GROUP BY
	job_id
#查询邮箱中包含a字符的,每个部门的平均工资
SELECT
	AVG( salary ),
	department_id
FROM
	employees 
WHERE
	email LIKE "%a%"
GROUP BY department_id
#查询有奖金的每个领导手下员工的最高工资
SELECT
	MAX( salary ),
	manager_id
FROM
	employees 
WHERE
	commission_pct IS NOT NULL
GROUP BY manager_id
	
# 查询那个部门的员工个数大于2
SELECT
	count( * ) a,
	department_id 
FROM
	employees 
GROUP BY
	department_id 
HAVING
	a > 2
# 查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资
# 1. 查询每个工种有奖金的员工的最高工资
SELECT
	MAX( salary ),
	job_id 
FROM
	employees 
	WHERE
commission_pct is not NULL
GROUP BY
	job_id
# 在1的基础上结果上筛选 最高工资大于12000的
SELECT
	MAX( salary ) a,
	job_id 
FROM
	employees 
WHERE
	commission_pct IS NOT NULL 
GROUP BY
	job_id 
HAVING
	a > 12000
# 查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,
#以及其最低工资
SELECT
	MIN( salary ) a,
	manager_id 
FROM
	employees 
WHERE
	manager_id > 102 
GROUP BY
	manager_id 
HAVING
	a > 5000
	
# 案例:按员工姓名的长度分组,查询每一组的员工个数,
# 筛选员工个数大于5的有那些
SELECT
	count(*) c,LENGTH(last_name)
FROM
	employees 
GROUP BY
	LENGTH( last_name )
HAVING c > 5
	
# 查询每个部门每个工种的员工的平均工资
SELECT AVG(salary) a,department_id,job_id
FROM employees
GROUP BY department_id,job_id
# 查询每个部门每个工种的员工的平均工资 根据平均工资的高低来排序
SELECT AVG(salary) a,department_id,job_id
FROM employees
GROUP BY department_id,job_id
ORDER BY a DESC
#查询各job_id的员工工资的最大值,最小值,平均值,总和,并按job_id升序
SELECT
	MAX( salary ),
	MIN( salary ),
	AVG( salary ),
	SUM( salary ),
	job_id
FROM
	employees 
GROUP BY
	job_id
ORDER BY job_id
	
# 查询员工最高工资和最低工资的差距
SELECT MAX(salary) - MIN(salary) FROM employees;
#查询各管理者手下员工的最低工资,其中最低工资不能低于6000
# 没有管理者的员工不能计算在内
SELECT
	MIN( salary ) m,
	manager_id 
FROM
	employees 
WHERE
	manager_id IS NOT NULL 
GROUP BY
	manager_id 
HAVING
	m > 6000
	
# 查询所有部门的编号,员工数量和工资平均值,并按平均工资降序
SELECT
	department_id,
	COUNT( * ) , AVG( salary ) a
FROM
	employees 
GROUP BY
	department_id 
ORDER BY
	a DESC
# 选择具有各个job_id 的员工人数
SELECT
	COUNT(*) 
FROM
	employees 
GROUP BY
	job_id
	
您可能感兴趣的文档:

--结束END--

本文标题: Mysql基础编写sql案例(一)

本文链接: https://www.lsjlt.com/news/7124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java基础编程案例
    java编程案例 案例一:飞机票查看优惠系统案例二:获取素数案例三:验证码模块案例四:数组元素的复制案例五:评委打分案例六:数字加密程序案例七:模拟双色球系统 案例一:飞机票查看优惠系统...
    99+
    2023-10-11
    java 算法 开发语言
  • 汇编基础程序编写教程示例
    目录源程序1.1 构成寄存器与段的关联假设标号定义一个段程序结束标记程序返回程序运行1.2 源程序中的“程序”1.3 段结束、程序结束、程序返回1.4 语法错误和逻辑错误2 程序执行...
    99+
    2024-04-02
  • Java SQL注入案例教程及html基础入门
    目录一,SQL注入–1,需求–2,测试–3,总结二,练习PreparedStatement–1,需求–2,测试–3,制作工具类三,HTML–1,概述–2,入门案例–3,使用工具–4,...
    99+
    2024-04-02
  • Python基础案例分享
    本篇内容介绍了“Python基础案例分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、超市买薯片# 用户输入薯片的单价danj...
    99+
    2023-06-02
  • MySQL基础之多表查询案例分享
    目录多表查询案例数据环境准备查询员工的姓名、年龄、职位、部门信息 (隐式内连接)查询年龄小于30岁的员工的姓名、年龄、职位、部门信息(显式内连接)查询拥有员工的部门ID、部门名称查询所有年龄大于40岁的员工, 及其归属的...
    99+
    2024-04-02
  • MySQL的基础(一)
    MySQL的基础(一) SQLSQL的语法特点主要包括以下几点:一、 SQL - DDL -- 数据定义语言1.1 数据库操作1.1 显示现有的数据库1.2 创建数据库1.3 删除数据库1.4...
    99+
    2023-10-25
    mysql oracle 数据库 1024程序员节
  • SQL Server一次SQL调优案例
    环境:Microsoft SQL Server 2016 (SP2-CU3)企业版 问题SQL: select  RowNumber = ROW_NUMBER()...
    99+
    2024-04-02
  • SQL 基础之子查询(十一)
    子查询:类型、语法、和注意事项使用子查询能解决哪些问题?子查询语法:select select_list from table where expr operator (selec...
    99+
    2024-04-02
  • MySQL基础架构及一条SQL语句执行流程的示例分析
    小编给大家分享一下MySQL基础架构及一条SQL语句执行流程的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL架构分析下面是MySQL的一个简要架构图:MySQL主要分为S...
    99+
    2024-04-02
  • MYSQL基础语法示例
    小编给大家分享一下MYSQL基础语法示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用户管理新建用户及密码:foo为名,123...
    99+
    2024-04-02
  • Mysql基础示例分析
    这篇文章主要介绍了Mysql基础示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   这段时间,在做一个Web项目,需要使...
    99+
    2024-04-02
  • 【MySQL】MySQL基础知识详解(一)
    MySQL select列的别名去除重复行空值参与运算着重号查询常数显示表结构过滤数据 排序使用 ORDER BY 对查询到的数据进行排序操作。使用列的别名,进行排序二级排序 分页LI...
    99+
    2023-09-04
    mysql 数据库 SQL
  • SQL Server 数据库基础编程详解
    目录Go批处理语句使用、切换数据库创建、删除数据库方法1、方法2(设置文件大小)、基本数据类型判断表或其他对象及列是否存在创建、删除表给表添加字段、修改字段、删除字段添加、删除约束插...
    99+
    2024-04-02
  • Python之基础函数案例详解
    函数就是把具有独立功能的代码块封装成一个小模块,可以直接调用,从而提高代码的编写效率以及重用性, 需要注意的是, 函数需要被调用才会执行, 而调用函数需要根据函数名调用 ...
    99+
    2024-04-02
  • Python经典基础案例有哪些
    这篇文章主要介绍了Python经典基础案例有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.列表排序def que6():   ...
    99+
    2023-06-25
  • MySQL基础的示例分析
    这篇文章给大家分享的是有关MySQL基础的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL入门mySQL (关系型数据库管理系统)MySQL是一个关系型数据库管理...
    99+
    2024-04-02
  • CSS样式的基础使用案例
    小编给大家分享一下CSS样式的基础使用案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1、边框和尺寸 1、边框和尺寸:...
    99+
    2024-04-02
  • react.js框架Redux基础案例详解
    react.js框架Redux https://github.com/reactjs/redux 安装: npm install redux react-redux #基于rea...
    99+
    2024-04-02
  • python基础之并发编程(一)
    目录一、进程(Process)二、线程(Thread)三、并发编程解决方案:四、多线程实现 (两种)1、第一种 函数方法2、第二种 类方法包装五、守护线程与子线程1、线程在分法有:2...
    99+
    2024-04-02
  • SpringBoot2 基础案例(12):基于转账案例,演示事务管理操作
    本文源码:GitHub·点这里 || GitEE·点这里一、事务管理简介事务基本概念一组业务操作ABCD,要么全部成功,要么全部不成功。特性:ACID原子性:整体一致性:完成隔离性:并发持久性:结果隔离问题脏读:一个事务读到另一个事务没有...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作