join 连表查询
join 分为多种类型,就像是集合的交并补集.下面将一一介绍:
- join 默认类型 -- inner join
** 如果只使用join 不加其他的描述,就是inner join**
SELECT * FROM SecurityPatrolRecords as table1 INNER JOIN SecurityPatrolRecordItems as table2
ON table1.id = table2.RecordId where table1.State = 1
通过inner join 是取两者的交集. 即两者共有的那一份.
- LEFT JOIN (左 join)
即将左表全部返回行,右边如果能配上就返回值,配不上就返回null
SELECT * FROM SecurityPatrolRecords as table1 INNER JOIN SecurityPatrolRecordItems as table2
ON table1.id = table2.RecordId where table1.State = 1
- RIGHT JOIN (右 join)
即将右表全部返回行,左边如果能配上就返回值,配不上就返回null,和上面的左join几乎一样
- FULL OUTER JOIN 全部连接 FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.匹配的返回可以连接的值,不匹配的按单表展示,其余地方返回null 还是比较好理解的.
连接查询出来的数据 UNION
UNION合并时,需要保证列的数量相同,以及列的数据结构相似.比如都是字符串类型,就可以合并,不同的长度类型是没有关系的 UNION 和 UNION ALL: UNION 连接后的查询表 是去重后的, 而 UNION ALL 连接的查询表 是未去重的.
UNION 连接时会将表中的重复数据都给去掉,包括原本单表中的重复数据 如果有多个字段,有的重复,有的不重复. 就一不重复为准. 只要查出的行还有不一样的,就会去掉
创建数据库
创建名字为my_dbxxx的数据库
CREATE DATABASE my_dbxxx;
创建数据表
创建一个数据表table_namexxx,并同时初始化表的项,用()包裹,然后是列名,后接一个空格 然后再跟上一个数据类型
CREATE TABLE table_namexxx
(
column_name1 data_type(*size*),
column_name2 data_type(*size*),
column_name3 data_type(*size*),
....
);
给表中数据添加约束条件
有了数据类型后,还需要对数据做判断是否可空,是都唯一等其他判断. 直接添加在建表的类型后面即可.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) ,
FirstName varchar(255) ,
Age int );
后面还有一些,约束条件,以及表的修改,关于已经建完的表,怎么修改约束,表间怎么操作.