美文网首页
八、连接和多张表的操作

八、连接和多张表的操作

作者: 天天阳光好 | 来源:发表于2017-04-19 23:31 被阅读0次

一、抓取数据创建表的3种方式

1、先create table、再select,最后insert

CREATE TABLE table_name1

(

   id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,

   column_name1 VARCHAR(30)

);

INSERT INTO table_name1 (column_name1)

   SELECT column_name2 FROM table_name2

   GROUP BY column_name2

   ORDER BY column_name2;

2、利用select进行create table,然后以alter添加主键

CREATE TABLE table_name1 AS

   SELECT column_name2 FROM table_name2

   GROUP BY column_name2

   ORDER BY column_name2;

ALTER table_name1

ADD COLUMN id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST,

ADD PRIMARY KEY(id);

3、create table的同时设置主键并利用select填入数据

CREATE TABLE table_name1

(

   id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,

   column_name1 VARCHAR(30)

) AS

   SELECT column_name2 FROM table_name2

   GROUP BY column_name2

   ORDER BY column_name2;

关键词 AS

① AS把select的结果值存入table_name1的column_name1中;

② 如果没有创建column_name1,那么AS会自动创建一列,并采用与select查询结果相同的列名和数据类型。

4、别名

① 查询里首次提到原始列名的地方后面接AS并设定别名,例如:

CREATE TABLE table_name1

(

id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,

column_name1 VARCHAR(30)

)AS

SELECT column_name2  AS cn2 FROM table_name2

GROUP BY cn2

ORDER BY cn2;

② 别名会改变查询结果(即查询结果的表)里列名的名称,但是不会改变原始表或列的名称;

③ 创建别名时,AS可以省略。

二、表的连接

1、交叉连接 CROSS JOIN,又名 笛卡尔积、交叉积

① 第一张表的每个值都与第二张表的每个值配对,较少适用

② 可用逗号代替CROSS JOIN,例如:

SELECT table_name1.column_name1,table_name2.column_name2 FROM

table_name1 , table_name2

2、内连接 INNER JOIN

SELECT column_name FROM

table_name1 INNER JOIN table_name2 ON someconditions;

① INNER JOIN 利用条件里的比较运算符结合两张表;

② 比较运算符ON,也可以使用关键字WHERE;

③ 分为相等连接(EQUIJOIN)和不等连接(NON-EQUIJOIN);

④ 自然连接(NATURAL JOIN),在两张表的中各自有一列的列名相同时使用,一般情况下,同一数据库的ID列相同,实质和普通内连接一样;

⑤ 在连接中,各类关键字和函数均可使用。

相关文章

  • 八、连接和多张表的操作

    一、抓取数据创建表的3种方式 1、先create table、再select,最后insert CREATE TA...

  • Mysql学习笔记(五)连接查询

    一、连接查询的概念 连接查询是指:所查询的信息分布在多张表中,必须要通过连接将多张表合并成一张大表进行查询。举例:...

  • Oracle数据库学习二

    5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...

  • MySQL数据库学习day5

    回顾 连接查询:多张表连接到一起,不管记录数如何,字段数一定会增加 PHP操作mysql: 外键 外键:forei...

  • mysql表连接

    当同时要现实多张表中的数据库时,可以会用表连接来完成这样的需求。从大类上分,表连接分为内连接和外连接,他们的区别主...

  • 连接查询

    一、什么是连接查询? 将多张表进行记录的连接,按照指定条件查询。意义:用户想要查询的数据可能来自多张表,这就需要显...

  • Select进阶查询·连接查询

    一、连接查询定义: 把多张表通过连接条件临时组成1张新表,在临时的新表里有连接表的所有表头和数据。 连接查询分类:...

  • Oracle连接_子查询

    多表查询:多张表关联在一起进行查询,在多表查询中会频繁的使用表的别名。连接:内连接(等值连接):select 列名...

  • 连接查询

    连接查询 当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回 mysql支持三种类...

  • mybatis的xml文件,单SQL操作多张表案例

    业务场景需求:12个月使用12张不同的表,操作表时,希望只使用单条sql操作多张表 引入字符:$ 使用方法和#一致...

网友评论

      本文标题:八、连接和多张表的操作

      本文链接:https://www.haomeiwen.com/subject/kkjhzttx.html