zoukankan      html  css  js  c++  java
  • MySQL单表查询

    一、用create table语句创建“员工表”

    use 员工管理;
    
    create table 员工表
    
    (
    
    编号 int,
    
    姓名 varchar(20),
    
    职位 varchar(40),
    
    月工资 double10,2),
    
    月奖金 double10,2),
    
    年龄 int
    
    );

    插入数据记录:

    向“员工表”中插入值为

    “123、张三、店员、800.00、null、29”

    “234、李四、店员、1600.00、300.00、30”

    “345、王二、店长、3200.00、800.00、32”

    “456、老王、经理、5000.00、1000.00、35”的记录。

    insert into 员工表
    
                values(123,'张三','店员',800.00,null29),
    
                      (234,'李四','店员',1600.00,300.0030),
    
                      (345,'王二','店长',3200.00,800.0032),
    
                      (456,'老王','经理',5000.00,1000.0035);

    二、简单数据查询

    1、简单数据查询

     (1)查询所有字段数据:

    select 编号,姓名,职位,月工资,月奖金,年龄 from 员工表;

     (2)“*”符号的使用:\ 用*查询所有字段数据\

    select * from 员工表;

     (3)查询指定字段数据:\ 查询编号、姓名、月工资数据\

    select 编号,姓名,月工资 from 员工表;

    2、避免重复数据查询:

    查询职务的所有数据,同时去除重复数据     

    select distinct 职务 from 员工表;

    3、数学四则运算数据查询:

    (1)查询每个员工的年薪数据;

     select 姓名,月工资*12 from 员工表;

    4、设置显示格式数据查询:

    查询员工年薪,且以“员工的年薪为:月工资*12”显示:

    select concat (姓名,'员工的年薪为:',月工资*12) as 年薪 from 员工表;

    三、条件数据记录查询

    1、带关系运算符和逻辑运算符的条件数据查询

    (1)单条件数据查询:

    查询从事经理的工作的员工姓名

    select  姓名 from 员工表 where 职务='经理';

    (2)多条件数据查询:

    查询从事店员工作的且月工资大于800的员工姓名

    select 姓名 from 员工表 where 职位='店员'&&月工资>800; 或者
    
    select 姓名 from 员工表 where 职位='店员'and 月工资>800;

    2、带between and 关键字范围查询

    (1)符合范围的数据记录查询:

    查询月工资1000-4000的员工姓名

    select 姓名 from 员工表 where 月工资 between 1000 and 4000;

    (2)不符合范围的数据记录查询:

    查询工资不在1000-4000的员工姓名

    select 姓名 from 员工表 where 月工资 not between 1000 and 4000;

    3、带is null关键字的空值查询

    (1)空值数据记录查询:

    查询没有领取奖金的员工姓名

    select 姓名 from 员工表 where 月奖金is null;

    (2)不是空值数据记录查询:

    查询所有领取奖金的员工姓名

    select 姓名 from 员工表 where is not null;

    4、带in关键字的集合查询

    (1)在集合中数据记录查询:

    查询员工编号为234、345的员工姓名

    select 姓名 from 员工表 where 编号=234 or 编号=345; 或者
    
    select 姓名 from 员工表 where 编号 in(234,345);
    
    C语言语句select 姓名 from 员工表 where 编号=234 || 编号=345;

    (2)不在集合中数据记录查询:

    查询员工编号不是234、345的员工姓名

    select 姓名 from 员工表 where 编号 not in(234,345);
    
    select 姓名 from 员工表 where not 编号=234 || 编号=345;

    (3)关于集合查询注意点

    添加一条带null的编号数据

    insert into 员工表
    
           values(null,'小李','店员',900.00,20029);
    
    select * from 员工表;

    查询员工编号为234、345的员工姓名\ in查询包括null值,查询结果一样\

    select 姓名 from 员工表 where 编号 in(234,345,null);

    查询员工编号不是234、345的员工姓名\ 查询中有null值,则报空\

    select 姓名 from 员工表 where 编号 not in(234,345,null);

    5、带like关键字的模糊查询

    (1)带有%通配符的查询:

    向员工表中插入数据

    insert into 员工表
    
           values(567,'ALLEN','店员',900.00,20031),
    
                (678,'ANDY','店员',900.00,20033);

    查询员工中以A开头的姓名有哪些

    select 姓名 from 员工表 where 姓名 like 'A%';

    查询员工中不是以A开头的姓名有哪些

    select 姓名 from 员工表 where not 姓名 like 'A%';

    (2)带有_通配符的查询:

    向员工表中插入数据

    insert into 员工表
    
           values(789,'JAMES','店员',900.00,20029);

    查询员工中第二个字母是A的姓名有哪些?

    select 姓名 from 员工表 where 姓名 like '_A%';

    查询员工中第二个字母不是A的姓名有哪些?

    select 姓名 from 员工表 where  姓名 not like '_A%';

    (3)带like关键字的模糊查询注意点:

    查询员工中不带A字符的全部员工姓名

    select 姓名 from 员工表 where 姓名 not like '%A%';

    查询月工资中带有数字5的全部姓名

    select 姓名 from 员工表 where 月工资 like '%5%';

    四、排序数据记录查询\ 空值null要作为最小值使用\

    1、按照单字段排序

     (1)升序排序:

    查询结果按照月工资升序排序:

    select * from 员工表 order by 月工资 ASC;  或者
    
    select * from 员工表 order by 月工资;

     (2)降序排序:

    查询结果按照月工资降序排序:

    select * from 员工表 order by 月工资 desc;

    2、按照多字段排序

    查询结果首先按照月工资升序排序,然后再按照年龄降序排序

    select * from 员工表 order by 月工资 ASC,年龄 DESC;

    什么是查询数据记录?

      是指从数据库对象表中获取所要求的数据记录。

    简单数据记录查询有几种方式?

      1.简单数据记录查询

      2.条件数据记录查询

      3.排序数据记录查询

      4.限制数据记录查询数量

      5.统计函数和分组数据记录查询

    3.MySQL中关系运算符、比较运算符、逻辑运算符分别有哪些?

      比较运算符,{+,-,*,%,/}

      比较运算符,{>,<,=,!=(<>),>=,<=}

      逻辑运算符:{and(&&),or(||),xor,not(!)}

  • 相关阅读:
    python之enumerate
    Python中的集合set
    SGU 分类
    太空飞行计划 最大权闭合图
    1.飞行员配对 二分图匹配(输出方案)/最大流斩
    poj1149最大流经典构图神题
    hdu1569 方格取数 求最大点权独立集
    最大独立集 最小点覆盖 最小边覆盖 最小路径覆盖 最大团
    hdu3491最小割转最大流+拆点
    hdu3987,最小割时求最少割边数
  • 原文地址:https://www.cnblogs.com/Jackbk/p/12692320.html
Copyright © 2011-2022 走看看