复习SQL各种常用(简单创建表)左右连接,内链接

创建数据库

CREATE DATABASE 数据库名

创建一个完整的表

CREATE TABLE employ (
emp_id int(11) NOT NULL(非空) AUTO_INCREMENT(自增),
emp_name varchar(255) CHARACTER SET latin1 DEFAULT NULL,
emp_grade int(11) DEFAULT NULL,
PRIMARY KEY (emp_id)(主键)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘员工表’

查询

select * from 表名 where 条件

插入

insert into 表名 values=(‘A’,‘B’,‘C’)

修改

update 表名 set name(想修改的字段)=新值 where 条件

删除

delete from 表名 where 条件

修改字段

增加字段:ALTER TABLE t_student Add f_address char(50);
修改字段:ALTER TABLE t_student Modify(修改) f_address varchar2(50);
重命名字段:ALTER TABLE t_student change 原表名 新表名 数据类型;
删除字段:ALTER TABLE t_student Drop column f_address ;
添加约束条件
格式为:
alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)
例子:
alter table emp add constraint ppp primary key (id);(添加了一个主键约束)

INNER JOIN(内连接)

:语法:
INNER JOIN 连接两个数据表的用法:(相当于交集的意思)
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
表employ:![在这里插入图片描述](https://img-blog.csdnimg.cn/20181125205213964.png

表power:
在这里插入图片描述INNER JOIN 结果:
在这里插入图片描述

FULL OUTER JOIN(全外连接,相当于求了个并集):

全外连接实际是上 左外连接 和 右外连接 的数学合集(去掉重复),即“全外=左外 union 右外”。
在mysql中,并不支持全外连接。所以这里不再给出查询语句和结果。
所以理想话应该是在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三图合一!!!

LEFT JOIN 左连接(即使右表中没有匹配,也从左表返回所有的行)

select * from 表1 left join 表2 ON 表1.字段号=表2.字段号
示例:在这里插入图片描述

RIGHT JOIN 右连接(即使左表中没有匹配,也从右表返回所有的行)

select * from 表1 right join 表2 ON 表1.字段号=表2.字段号
示例:在这里插入图片描述

CROSS JOIN(交叉连接,也叫笛卡儿积连接)

运行结果:在这里插入图片描述

on后面的条件(on条件)和where条件的区别: on条件:是过滤两个链接表笛卡尔积形成中间表的约束条件。 where条件:在有on条件的select语句中是过滤中间表的约束条件。在没有on的单表查询中,是限制物理表或者中间查询结果返回记录的约束。在两表或多表连接中是限制连接形成最终中间表的返回结果的约束。 从这里可以看出,将where条件移入on后面是不恰当的。推荐的做法是: on只进行连接操作,where只过滤中间表的记录。

猜你喜欢

转载自blog.csdn.net/qq_43299265/article/details/84502042