MySQL---单表查询综合练习

这篇具有很好参考价值的文章主要介绍了MySQL---单表查询综合练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建emp表

CREATE TABLE emp(

empno INT(4) NOT NULL COMMENT '员工编号',

ename VARCHAR(10) COMMENT '员工名字',

job VARCHAR(10) COMMENT '职位',

mgr INT(4) COMMENT '上司',

hiredate DATE COMMENT '入职时间',

sal INT(7) COMMENT '基本工资',

comm INT(7) COMMENT '补贴',

deptno INT(2) COMMENT '所属部门编号'

);

emp表添加主键

mysql> alter table emp add primary key(empno);     

Query OK, 0 rows affected (0.01 sec)               

Records: 0  Duplicates: 0  Warnings: 0 

emp表添加外键约束    

#在MySQL中,可以使用alter  table 语句来添加外键约束。以下是基本的语法:

alter table  table_name
ADD FOREIGN KEY (column_name) REFERENCES other_table(other_column);
在这个语句中:

  • table_name是你想要添加外键的表的名称。
  • column_name是你想要设置为外键的列的名称。
  • other_table是包含外键引用的表的名称。
  • other_column是在other_table中的列的名称。

 ALTER TABLE emp ADD CONSTRAINT f_ed_key  FOREIGN KEY (deptno)   REFERENCES dept(deptno);

emp表中插入数据

INSERT INTO `emp` VALUES('7369','张倩','办事员','7902','2002-12-17','820',NULL,'20');

INSERT INTO `emp` VALUES('7499','刘博','售货员','7698','1992-02-20','1900','300','30');

INSERT INTO `emp` VALUES('7521','李兴','售货员','7698','1995-07-22','1250','500','30');

INSERT INTO `emp` VALUES('7566','李雷','人事部长','7839','1991-04-02','975',NULL,'20');

INSERT INTO `emp` VALUES('7654','刘浩','售货员','7698','1991-09-28','1250','1400','30');

INSERT INTO `emp` VALUES('7698','刘涛','销售部长','7839','1997-05-01','2850',NULL,'30');

INSERT INTO `emp` VALUES('7782','华仔','人事部长','7839','1995-06-09','2450',NULL,'10');

INSERT INTO `emp` VALUES('7788','张飞','人事专员','7566','1998-04-19','3000',NULL,'20');

INSERT INTO `emp` VALUES('7839','马晓云','董事长',NULL,'1991-11-17','5000',NULL,'10');

INSERT INTO `emp` VALUES('7844','马琪','售货员','7698','1996-09-08','1500','0','30');

INSERT INTO `emp` VALUES('7876','李涵','办事员','7788','1997-05-23','1100',NULL,'20');

INSERT INTO `emp` VALUES('7900','李小涵','销售员','7698','1993-2-13','950',NULL,'30');

INSERT INTO `emp` VALUES('7902','张三','人事组长','7566','1992-10-08','3000',NULL,'20');

INSERT INTO `emp` VALUES('7934','张三丰','人事长','7782','1997-06-23','1300',NULL,'10');

查询emp表的内容

mysql> select * from emp;

MySQL---单表查询综合练习,mysql,数据库

1.选择部门30中的所有员工

mysql> select ename 员工,deptno 部门编号 from emp where deptno=30;  

MySQL---单表查询综合练习,mysql,数据库

2.列出所有办事员的姓名,编号和部门编号

mysql> select ename 姓名,empno  编号 ,deptno 部门编号 from emp;

MySQL---单表查询综合练习,mysql,数据库

3.找出佣金高于薪金的员工

mysql> select ename 员工,sal 薪金,comm 佣金 from emp where comm > sal;

MySQL---单表查询综合练习,mysql,数据库

4.找出没有佣金的员工

#在MySQL中,NULL和0是两种不同的表示方式。

#NULL在MySQL中表示未知或者无效的值。例如,如果一个员工的佣金字段为NULL,那么这可能意味着他们的佣金信息未知或者无效,可以通过 IS NULL 条件来查询这些记录。

#0则表示佣金确实存在,只是其值为0。在这种情况下,可以通过等于0的条件来查询这些记录。

mysql> select ename 员工,comm 佣金 from emp where comm is null;

MySQL---单表查询综合练习,mysql,数据库

 5.找出佣金高于薪金的60%的员工

mysql> select ename 员工,sal 薪金,comm 佣金 from emp where comm > sal*0.6; 

MySQL---单表查询综合练习,mysql,数据库

 6.找出部门10中所有人事部长和部门20中所有办事员的详细资料

mysql> select * from emp where (deptno=10 and job='人事部长') or (deptno=20

and job='办事员');

MySQL---单表查询综合练习,mysql,数据库

7.找出收取佣金的员工

mysql> select ename 员工,comm 佣金 from emp where comm is not null; 

MySQL---单表查询综合练习,mysql,数据库

8.找出不收取佣金或收取的佣金低于100的员工

mysql> select ename 员工,comm 佣金 from emp where (comm is null) or (comm < 100);

MySQL---单表查询综合练习,mysql,数据库

 9.找出姓张的员工的信息

#在MySQL中,regexp是一个操作符,用于执行正则表达式模式匹配。^:匹配字符串的开始

mysql> select * from emp where ename regexp '^张'; 

MySQL---单表查询综合练习,mysql,数据库

10.显示员工的姓名和受雇日期,新的员工排在最前面

#在MySQL中,order by 语句用于对查询结果进行排序,以下是基本的语法:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

在这个语句中:

  • column1, column2, ... 是你想要从数据库中选择的列的名称。
  • table_name 是你想要从中选择数据的表的名称。
  • ASC 是指定列按升序排序(默认)。
  • DESC 是指定列按降序排序。

mysql> select ename 姓名,hiredate 受雇日期 from emp order by hiredate desc;

MySQL---单表查询综合练习,mysql,数据库

11.按工作的降序排序,若工作相同则按薪金排序

mysql> select empno 编号,ename 姓名,job 工作,sal 薪资 from emp order by job desc,sal;

MySQL---单表查询综合练习,mysql,数据库

12.查出不姓刘的员工的信息

#在MySQL中,LIKE操作符用于在WHERE子句中搜索列中的指定模式。LIKE操作符通常与%和_通配符一起使用。

% 是一个通配符,代表任意数量的字符。

_ 也是一个通配符,但只代表一个字符。

mysql> select * from emp where ename not like '刘%';  

MySQL---单表查询综合练习,mysql,数据库

13.取出姓李的员工

以下两种SQL语句等价

mysql> select ename 员工 from emp where ename like '李%'; 

mysql> select ename 员工 from emp where ename regexp '^李';  

MySQL---单表查询综合练习,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-810334.html

到了这里,关于MySQL---单表查询综合练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL单表查询练习题

    目录 第一题  第二题  第三题   1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql create table pet( name varchar(20) not null, owner varchar(20), species varchar(20) not null, sex char(1) not nu

    2024年02月13日
    浏览(38)
  • 【MYSQL】聚合函数和单表/多表查询练习、子查询、内外连接

    目录 1.聚合函数 1.1.group by子句 1.2.having语句 2.单表查询  2.2单表查询 3.多表查询  3.2.子查询 5.内链接 6.外连接 函数 说明 count 返回查询到的数据的数量 sum 返回查询到的数据的总和 avg 返回查询到的数据的平均值 max 返回查询到的数据的最大值 min 返回查询到的数据的最小值

    2024年02月04日
    浏览(48)
  • 三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数

    预设游标10000(必要时)  模拟新增10万条数据    1.1 oracle一条sql数据生成100万条数据   创建测试表 创建测试表 模拟新增3万条数据 开发过程中经常需要测试 SQL 在大量数据集时候的执行效率,这就需要我们在表中插入大量的测试数据,下面介绍如何使用存储过程插入大量的

    2024年02月14日
    浏览(55)
  • 数据库原理-数据查询 单表查询【二】

    聚集函数: 统计元组个数 COUNT(*) 统计一列中值的个数 COUNT([DISTINCT|ALL]列名) 计算一列值的总和(此列必须为数值型) SUM([DISTINCT|[ALL]列名) 计算一列值的平均值(此列必须为数值型) AVG([DISTINCT|ALL]列名) 求一列中的最大值和最小值 MAX([DISTINCT|ALL]列名) MIN([DISTINCT|ALL]列名) 查询学

    2024年02月03日
    浏览(45)
  • 数据库的简单查询——单表查询

    本篇文章主要是数据库的一些简单查询,包括条件查询,模糊查询,分组查询等 准备工作:三张数据表                学生表(student):                            课程表(course):          学生选课表(sc):     (1)查询学生表中全体学生的所有信息。 SQL语句:

    2023年04月11日
    浏览(46)
  • MySQL数据库的数据类型和基于MySQL数据类型的综合实例项目

    数值型数据类型主要用来存储数字。MySQL的整数类型如下所示 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、 BIGINT。 类型名称 说明 存储需求 TINYINT 很小的整数 1字节 SMALLINT 小的整数 2字节 MEDIUMINT 中等大小的整数 3字节 INT 普通大小的整数 4字节 BIGINT 大整数 8字节 创建表tmp1,其中字段

    2023年04月08日
    浏览(48)
  • 数据库之MySQL数据操作练习

    目录 练习内容 worker表要求 创建的表的表结构 表中的数据内容 对数据的操作 1.显示所有职工的基本信息 2.查询所有职工所属部门的部门号,不显示重复的部门号 3.求出所有职工的人数 4.列出最高工和最低工资 5.列出职工的平均工资和总工资 6.创建一个只有职工号、姓名和参

    2024年02月13日
    浏览(45)
  • MySQL---多表查询综合练习

    CREATE TABLE dept ( deptno INT(2) NOT NULL COMMENT \\\'部门编号\\\', dname VARCHAR (15) COMMENT \\\'部门名称\\\', loc VARCHAR (20) COMMENT \\\'地理位置\\\' ); mysql alter table dept add primary key(deptno);           Query OK, 0 rows affected (0.02 sec)                       Records: 0  Duplicates: 0  Warnings: 0 INSERT INTO dept

    2024年01月21日
    浏览(44)
  • MySQL---多表分组查询综合练习

    CREATE TABLE dept ( deptno INT(2) NOT NULL COMMENT \\\'部门编号\\\', dname VARCHAR (15) COMMENT \\\'部门名称\\\', loc VARCHAR (20) COMMENT \\\'地理位置\\\' ); 添加dept表主键 mysql alter table dept add primary key(deptno);           Query OK, 0 rows affected (0.02 sec)                       Records: 0  Duplicates: 0  Warnings:

    2024年01月23日
    浏览(52)
  • MySQL---多表等级查询综合练习

    CREATE TABLE emp( empno INT(4) NOT NULL COMMENT \\\'员工编号\\\', ename VARCHAR(10) COMMENT \\\'员工名字\\\', job VARCHAR(10) COMMENT \\\'职位\\\', mgr INT(4) COMMENT \\\'上司\\\', hiredate DATE COMMENT \\\'入职时间\\\', sal INT(7) COMMENT \\\'基本工资\\\', comm INT(7) COMMENT \\\'补贴\\\', deptno INT(2) COMMENT \\\'所属部门编号\\\' ); emp表添加主键 mysql alter table emp a

    2024年01月23日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包