九:SQL之DQL数据查询语言多表操作

前言:

一:数据准备

  员工表emp 和部门表 dept

--分别创建部门和员工表,并实现一对多关系
DROP TABLE dept;
CREATE TABLE `dept`(
    `d_id` INT(5) PRIMARY KEY AUTO_INCREMENT COMMENT ‘这是部门id主键自增长‘,
    `d_name` VARCHAR(30) NOT NULL UNIQUE COMMENT ‘这是部门名称唯一非空‘
);

CREATE TABLE `emp`(
    `e_id` INT PRIMARY KEY AUTO_INCREMENT COMMENT ‘这是员工表的主键自增长‘,
    `e_uname` VARCHAR(10)  NOT NULL UNIQUE COMMENT ‘这是登录名‘,
    `e_name` VARCHAR(20) NOT NULL COMMENT ‘这是真实姓名‘,
    `e_pwd` VARCHAR(20) DEFAULT ‘123456‘ COMMENT ‘这是密码默认为123456‘,
    `e_d_id` INT(5),
    CONSTRAINT `emp_fk` FOREIGN KEY (`e_d_id`) REFERENCES dept (`d_id`)
);

--准备数据
--先给dept录入测试数据
INSERT INTO dept VALUES(NULL,‘财务部‘),(NULL,‘技术部‘),(NULL,‘营销部‘),(NULL,‘采购部‘),(NULL,‘市场部‘);
INSERT INTO dept VALUES(NULL,‘行政部‘),(NULL,‘后勤部‘),(NULL,‘总经办‘),(NULL,‘人事部‘),(NULL,‘策划部‘);
--给emp录入测试数据
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘lqd‘,‘刘强东‘,20);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘mht‘,‘马化腾‘,17);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘my‘,‘马云‘,8);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘lyf‘,‘刘亦菲‘,16);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘wjl‘,‘王健林‘,9);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zzt‘,‘章泽天‘,17);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘ldh‘,‘刘德华‘,10);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘dl‘,‘丁磊‘,16);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zhy‘,‘周鸿祎‘,18);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zzy‘,‘章子怡‘,9);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘abm‘,‘奥巴马‘,19);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zjl‘,‘周杰伦‘,7);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zcy‘,‘张朝阳‘,16);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zj‘,‘周洁‘,19);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘syp‘,‘苏有朋‘,20);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘fxg‘,‘冯小刚‘,20);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘wsc‘,‘王思聪‘,10);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘hxn‘,‘韩晓诺‘,19);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘zy‘,‘曾洋‘,7);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘hh‘,‘韩寒‘,6);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘mbp‘,‘姆巴佩‘,17);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘gjm‘,‘郭敬明‘,7);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘wsc‘,‘王宝强‘,10);
INSERT INTO emp (e_uname,e_name,e_d_id)VALUES(‘xjy‘,‘许家印‘,6);

准备数据dept和emp

二:

原文地址:https://www.cnblogs.com/wdmlsx/p/9270123.html

时间: 2024-10-13 22:56:38

九:SQL之DQL数据查询语言多表操作的相关文章

八:SQL之DQL数据查询语言单表操作

前言: DQL数据库查询语言是我们在开发中最常使用的SQL,这一章总结了单表操作部分的常用查询方式 主要操作有:查询所有字段.查询指定字段.查询指定记录.带IN的关键字查询,范围查询,陪查询.查询空值 带AND的多条件查询.带OR的多条件查询,关键字DISTINCT,查询结果排序,分组查询.分页查询等 准备好数据测试表 1 mysql> select * from student; 2 +------+----------+-------+----------+-------------+ 3

数据存储——SQLite数据库存储——SQL语句——DQL数据查询语言

一.where  查询条件 1.操作符 (1)is null/is not null  判断控/非空 (2)like  模糊比较字符串 ①通配符 1)%  任意数量字符 2)_   单个字符 ②用法 1)like  ‘%条件%’ 2)like  ‘%条件’ 3)like  '条件%' 4)like  '_条件_' 5)like  '_条件' 6)like  '条件_' (3)in  判断是否在值得列表内 ①和对单个字段  or  运算等效 ②用法 1)字段名 in (值1,值2,...) 2)字

SQL入门-DQL数据查询语言--select

1.help select mysql> help select Name: 'SELECT' Description: Syntax: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] selec

面试题:求SQL语句:求数据库内各表大小,并排序列出

几天去浦东一家公司去面试,感觉有一道关于数据库查询的题目没答好,自我总结下,下次注意. 题目:求数据库内各表大小,并排列出.写出相应的SQL语句. 代码如下: CREATE PROCEDURE [dbo].[GetTableSpace] @dbName sysname = '', --数据库名,默认当前数据库 @tableName sysname = '', --表名,默认全部表 @columnName varchar(50) = '', --列名,排序用 @sort varchar(4) =

DQL 数据查询语言 IS (information_schema)

3.information_schema 统计信息库 1.介绍: 视图 1.安全: 只允许查询,不知道操作的对象是谁. 2.方便: 只需要简单的select语句即可使用. 2.作用: 1.方便我们做数据库资产统计 库/表: 个数 数据量(容量:行数) 每张表的数据字典信息 2.可以获取到server层状态信息 3.获取到InnoDB引擎层的状态信息 3.应用举例: TABLES : TABLE_SCHEMA: 表所在的库 TABLE_NAME: 表名 ENGINE : 表的引擎 TABLE-RO

数据存储——SQLite语句之DQL 数据查询语言

一.select 语句 格式:select   字段内容  from  表名 1.字段列表 1-*全部字段 2-逗号间隔的字段名列表 3-用as(可省略)指定别名 2.DISTINCT去重复数据:DISTINCT  字段列表 二.where  查询条件 1.is null/is not null   判断空/非空 2.like  模糊比较字符串 1-通配符 1>%任意数量字符 2>_单个字符 2-用法 1>like‘%条件’ 2>like‘条件%’ 3>like‘%条件%’

SQL删除一个数据库内所有表的数据保留表结构

实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启约束 CREATE PROCEDURE proc_deleteDateSql /* 生成清除数据库表数据的脚本方法分享 */ AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' EXEC sp_MSForEa

MySQL数据库之DQL(数据查询语言)

1.MySQL之DQL查询AS CONCAT LIKE的使用 (1)select 列名1,列名2,...... from 表名 [where 条件] 查询所有字段用*,不带where条件的话,就会把表的所有记录查出来 (2)过滤掉重复的列值 select distinct 列名1 from 表名; (3)连接concat select concat(列名1,列名2) from 表名; select concat_ws('分隔符',列名1,列名2) from 表名; 区别:用concat查询出来的

DQL 数据查询语言

1.select 1.select 单独使用 (1) 查询数据库的参数 查看端口: select @@port; 查看数据路径 select @@datadir; (2)调用内置函数 查看当前库 select database(); CONCAT 将内容拼接 select concat(user,host) from mysql.user; select concat(user,'@',host) from mysql.user; 列转行 select group_concat(xid) fro