GO ON ---(SQL高级)
SQL INNER JOIN 关键字(在表中存在至少一个匹配时,INNER JOIN 关键字返回行)
SELECT 列名称 FROM 表名称1 INNER JOIN 表名称2 ON 表1.列名= 表名2.列名 ;
SELECT colunm_name FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name = table_name2.column_name
注释:inner join 与join是相同的。
SQL LEFT JOIN 关键字(从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行)
SELECT 列名称 FROM 表名称1 LEFT JOIN 表名称2 ON 表1.列名=表2.列名;
SELECT colunm_name FROM table_name1 INNER LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
eg:SELECT Person.Lastname,Person.Firstname,Orders.OrderNo FROM Person LEFT JOIN Orders ON Person.person_Id=Orders.Order_Id ORDER BY Person.Lastname
*RIGHT JOIN/FULL JOIN 语法同上
RIGHT JOIN 从右边那里返回所有的行,即使左表上没有匹配的行。
SELECT 列名称 FROM 表名1 RIGHT JOIN 表名2 ON 表1.列名=表2.列名;
FULL JOIN 返回左表与右表所有的行。
SELECT 列名称 FROM 表名1 FULL JOIN 表名2 ON 表1.列名=表2.列名;
SQL UNION 和 UNION ALL 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 操作符 用于合并两个或多个SELECT语句的结果集。
UNION 内部的SELECT语句必须拥有相同数量的列,列也必须拥有相似的数据类型。
同时,每条SELECT语句中的列顺序必须相同。eg:
select 列名(s) from 表1 UNION select 列名(s) from 表2;
SELECT column_name FROM table_name1 UNION SELECT column_name FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
SQL UNION ALL
SELECT column_name FROM table_name1 UNION ALL SELECT column_name FROM table_name2
select 列名(s)from 表1 UNION ALL select 列名(s) from 表2;
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
啊哈... 因为世界杯去玩嗨了,法国队拿了冠军... 结果... 第一球还是乌龙球....o(╯□╰)o
SQL SELECT INTO 语句(可用于创建表的备份复件)
SELECT * INTO new_table_name [IN exrernaldatabase] (另外一个数据库)FROM old_table_name
select * into 新表名 [ IN externaldatabase] from 旧表名;---------创建表的备份复件
或者只把希望的列插入新表:
SELECT cloumn_name INTO new_table_name[IN externaldatabase] FROM old_table_name
select 列名 INTO 新表明 [IN externaldatabase] from 就表名;----把希望的列插入到新表
例。制作 "Persons" 表的备份复件
SELECT * INTO Persons_backup FROM Persons
IN 子句可用于向另一个数据库中拷贝表
SELECT * INTO Persons IN 'Backup.mdb' FROM Persons;---向另一个数据库拷贝表
如果希望拷贝某些域,可以在select 语句后列出这些域:
select lastname,firstname into persons_backup from persons;
带有 WHERE 子句,
下面的列子通过从''persons''表中提取居住在''ChengDU‘’的人的信息,创建一个带有两个列的名为''persons_backup''的表:
SELECT Lastname, Firstname INTO Persons_backup FROM Persons WHERE City='ChengDU';
-----被连接的表:
从一个以上的表中选取数据也是可以做到的
下面的例子会创建一个名为''persons_order_backup''的新表,其中包含了从persons和orders两个表中取得的信息:
SELECT Person.Lastname,Orders.OrderNo INTO Person_Order_backup FROM Person INNER JOIN Orders ON Person.Id_p=Orders.Id_p;
SQL CREATE DATABASE 语句 用于添加数据库。
eg:CREAT DATABASE database_name;
希望创建一个名为MY_db的数据库。
CREAT DATABASE MY_db;
SQL CREATE TABLE 语句(用于创建数据库中的表)
CREAT TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
......
);
数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:
图片来自W3C
创建名为 "Person" 的表。该表包含 5 个列,列名分别是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City"
CREAT TABLE Person
(
Id_P int,
Lastname varchar(255),
Firstname varchar(255),
Address varchar(255),
City varchar(255)
)
Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。
SQL 约束 (Constraints) :约束用于限制加入表的数据的类型
可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
SQL NOT NULL 约束
NOT NULL 约束强制列不接受 NULL 值。NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
CREAT TABLE Person
(
Id_p int NOT NULL,
Lastname varchar(255) NOT NULL,
Firstname varchar(255),
City varchar(255)
)
(′-ω-`) emm... 先到这,下班回家煮火锅去啦啦~~
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。