mysql 数据操作 多表查询 准备

为什么需要多表查询:

因为我们不可能把所有数据都放在一张表里

我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储。

但是数据还是一个整体,数据之间是有关联关系 ,那就要把分散的数据,合并到一起进行查询

多表查询概念:

连表操作

通过连接方式,把有关系的表拼成一个整体,进行关联查询。

就是把多张表记录 合并到一张表去查询

多表查询准备 数据库 数据表

新建数据库

create database db6 charset=utf8;

use db6;

**#建表**

1create table department( 2id int, 3name varchar(20) 4); 5 6create table employee( 7id int primary key auto_increment, 8name varchar(20), 9sex enum('male','female') not null default 'male', 10age int, 11dep_id int 12);

#插入数据

1insert into department values 2(200,'技术'), 3(201,'人力资源'), 4(202,'销售'), 5(203,'运营'); 6 7insert into employee(name,sex,age,dep_id) values 8('mike','male',18,200), 9('alex','female',48,201), 10('jack','male',38,201), 11('yuanhao','female',28,202), 12('liwenzhou','male',18,200), 13('jingliyang','female',18,204) 14;

**#查看表结构和数据**

1mysql> desc department; 2+-------+-------------+------+-----+---------+-------+ 3| Field | Type | Null | Key | Default | Extra | 4+-------+-------------+------+-----+---------+-------+ 5| id | int(11) | YES | | NULL | | 6| name | varchar(20) | YES | | NULL | | 7+-------+-------------+------+-----+---------+-------+ 82 rows in set (1.30 sec) 9 10mysql> desc employee; 11+--------+-----------------------+------+-----+---------+----------------+ 12| Field | Type | Null | Key | Default | Extra | 13+--------+-----------------------+------+-----+---------+----------------+ 14| id | int(11) | NO | PRI | NULL | auto_increment | 15| name | varchar(20) | YES | | NULL | | 16| sex | enum('male','female') | NO | | male | | 17| age | int(11) | YES | | NULL | | 18| dep_id | int(11) | YES | | NULL | | 19+--------+-----------------------+------+-----+---------+----------------+ 205 rows in set (0.00 sec) 21 22mysql> select * from employee; 23+----+------------+--------+------+--------+ 24| id | name | sex | age | dep_id | 25+----+------------+--------+------+--------+ 26| 1 | mike | male | 18 | 200 | 27| 2 | alex | female | 48 | 201 | 28| 3 | jack | male | 38 | 201 | 29| 4 | yuanhao | female | 28 | 202 | 30| 5 | liwenzhou | male | 18 | 200 | 31| 6 | jingliyang | female | 18 | 204 | 32+----+------------+--------+------+--------+ 336 rows in set (0.32 sec) 34 35mysql> select * from department; 36+------+--------------+ 37| id | name | 38+------+--------------+ 39| 200 | 技术 | 40| 201 | 人力资源 | 41| 202 | 销售 | 42| 203 | 运营 | 43+------+--------------+ 444 rows in set (0.00 sec)
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFTJOIN等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到过滤语句。       LEFTJOINONWHE

Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移

HQL的多表查询

对象之间总是有各种各样的关系,关联关系是类之间最常见的关系。多表查询是HQL中的强大功能之一,包括内连接、左连接和右连接等。多表查询的设置及运行都比较麻烦,在运行本节中的示例时,务必保证每一步都没有错误。 6.4.1 表之间的关联关系 在数据库joblog中用到了3个表:student(学生表)、course(课程表