ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL查询

2021-12-31 17:33:35  阅读:109  来源: 互联网

标签:last name employees 查询 MySQL id SELECT


#1查看当前所有库
SHOW DATABASES;
#2打开指定库
USE myemployees;
#3查看当前库中的表
SHOW TABLES;
#4从当前库查看其他库的表
SHOW TABLES FROM mysql;
#5查看表的结构
DESC jobs;


#基础查询
#select 查询列表 from 表名
SELECT * FROM jobs;
SELECT min_salary FROM jobs;
SELECT job_title,min_salary FROM jobs;
#查询常量值
SELECT 'bi';
#查询表达式
SELECT 100*98;
#查询函数
SELECT VERSION();


#起别名
/*
1、便于理解
2、若查询字段有重名,则可以使用别名来区分
*/
SELECT 100*200 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#as可省略
SELECT last_name 姓,first_name 名 FROM employees;
#若别名有特殊符号,则将别名双引号
SELECT salary "out put" FROM employees;

#去重
SELECT DISTINCT department_id AS 部门编号 FROM employees;

#+的作用
/*
select 100+10;  俩个数都是数值型则做加法运算
select '100'+10; 若有一个字符型,试图将字符转换为数值型
                         若转换成功,则继续做加法运算
select 'ji'+10;          若失败 将字符型转换为0;
select null+ 10;         若一方为null则结果为null;                      
*/

#拼接字符串  concat(  ,  ,  ,)
SELECT CONCAT(last_name,first_name) 姓名 FROM employees;
#判空函数 ifnull(判断的字段,若为空想要返回的值);
SELECT IFNULL(`commission_pct`,0) AS 奖金率,
                `commission_pct`
FROM employees;


SELECT DISTINCT job_id FROM employees;
#拼接employees中所有列  由于`commission_pct`中有null所以要有判空函否则输出为空
SELECT CONCAT(`first_name`,',',`last_name`,',',`email`,',',`phone_number`,',',`job_id`,',',`salary`,
',',IFNULL(`commission_pct`,0),
',',`manager_id`,',',`department_id`,',',`hiredate`) OUT_PUT 
FROM employees;



#条件查询
/*
select  查询列表  第三步 
form   表名       第一步
where 筛选条件    第二步

根据筛选条件分类:
1、按照条件表达式筛选
条件运算符: < > + <>不等  =  >=  <=
2、按照逻辑表达式筛选 
逻辑表达式: 
             连接条件表达式
             && || ! 与或非
             and or not
3、模糊查询
    like      
    一般和通配符搭配使用  %表示任意多个字符
                          _任意单个字符              
    between and 
    包含临界值  等于>=and<=  两个临界值不能调换顺序
    in  等于 = or =
    判断某字段的值是否属于in列表中的某一项
    列表中的值类型统一或兼容
    不可以配合通配符一起使用
    is null  /is not null
    = <> 不能判断是否为NULL值
*/
#一、按照条件表达式筛选
#案例一: 查询工资大于12000的员工信息
SELECT * FROM employees WHERE salary >12000;
#案例二:查询部门编号不等于90号的员工名和部门编号
SELECT
       CONCAT(last_name,first_name) AS "name" ,
       department_id
FROM
         employees
WHERE 
       department_id <> 90;

#二、按照逻辑表达式筛选
#案例三:查询工资在10000到20000之间的员工名、工资以及奖金
SELECT 
      CONCAT(last_name,first_name) AS 'name',
      salary,
      IFNULL(commission_pct,0)
FROM 
      employees
WHERE
      salary>10000 AND salary<20000;
#案例四:查询部门编号不是在90到110之间或者工资高于15000的员工信息
SELECT 
          *
FROM
          employees
WHERE
         department_id<90 OR department_id>110 OR salary>15000;
         #或者 NOT department_id >=90 AND department_id <=110 OR salary >15000;
#模糊查询 
#案例五:员工名中包含字符a的员工信息
SELECT 
       *
FROM
      employees
WHERE
       last_name LIKE '%a%' OR first_name LIKE '%a%';#%通配符
#案例六:查询员工中的第三个字符为e第五个字符为a的员工名和工资
SELECT 
          last_name,
          salary
FROM 
          employees
WHERE
          last_name LIKE '_a_a%';
#案例七:查询员工名中第二个字符为_的员工
SELECT *
FROM employees
WHERE last_name LIKE '_\_%';#\转义字符

SELECT *
FROM employees
WHERE last_name LIKE '_$_%'ESCAPE '$';#定义转义字符escape

#案例八:查询员工标号在100到120之间的员工信息
SELECT last_name,
       department_id
FROM   employees
WHERE  department_id BETWEEN 100 AND 120; #department_id >=100 and department_id<=120;

#案例九:查询员工的工种编号的IT_PROG、AD_VP、AD_PRES中的一个员工名和员工编号
SELECT last_name,
       job_id
FROM   employees
WHERE job_id IN ('IT_PROG','AD_VPm','AD_PRES');#等于job_id='IT_PROT' OR job_id='AD_VP' OR job_id ='AD_PRES';
#案例十:查询没有奖金的员工名和奖金率
SELECT last_name,
       commission_pct
FROM   employees
WHERE  commission_pct IS NULL;#不能写成commission_pct=NULL;

SELECT last_name,
       commission_pct
FROM   employees
WHERE  commission_pct IS NOT NULL;

#安全等于 <=> 可以判断null值  也可以判断普通值  可读性差
SELECT last_name,
       commission_pct
FROM   employees
WHERE  commission_pct <=> NULL;
SELECT last_name,
       commission_pct
FROM   employees
WHERE  commission_pct <=> 0.3;

#测试一:查询员工号为176的员工姓名和部门号和年薪
SELECT  last_name,
        department_id,
        salary*(1+IFNULL(commission_pct,0))*12 AS 年薪
FROM    employees
WHERE employee_id=176;

标签:last,name,employees,查询,MySQL,id,SELECT
来源: https://blog.csdn.net/weixin_44300779/article/details/122260196

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有