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(!)}

posted @ 2020-04-13 16:46  _Jack_test  阅读(245)  评论(0编辑  收藏  举报