SQL 之相关语法及操作符【彩民之家高手论坛】

2019-11-21 20:19 来源:未知

SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

--ORDER BY column_name,column_name ASC|DESC;(升序|降序)默认为升序

如果存在违反约束的数据行为,行为会被约束终止。

--在 SQL 中,我们有如下约束:
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。

 

当表已被创建时,如需在 "City" 列创建 DEFAULT 约束,请使用下面的 SQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'

约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

--Not:非 满足不包涵该条件的值。
select * from emp where not sal > 1500;
查询EMP表中SAL小于1500的值。

UNION操作符

--INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

语法:

--SQL CREATE INDEX 语法
在表上创建一个简单的索引。允许使用重复的值:
CREATE INDEX index_name
ON table_name (column_name)

SQL  约束

--DELETE FROM table_name
WHERE some_column=some_value;

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

--SQL INSERT INTO SELECT 语法
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2(插入到table2表)
SELECT * FROM table1;(选择表table1表)
或者我们可以只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

--SQL UNIQUE 约束
当表已被创建时,创建 UNIQUE 约束
ALTER TABLE table
ADD UNIQUE column_name(s)

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

use runoob;

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

--逻辑运算的优先级:() not and or

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
--UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

撤销 UNIQUE 约束
ALTER TABLE Persons
DROP INDEX uc_PersonID

通过 SQL,您可以从一个表复制信息到另一个表。

--文本字段 vs. 数值字段
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
在上个实例中 'CN' 文本字段使用了单引号。
如果是数值字段,请不要使用引号。

 

--SQL FULL OUTER JOIN 语法
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
注释:MySQL中不支持 FULL OUTER JOIN,可以在SQL Server使用。
FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
FULL OUTER JOIN 关键字返回左表(Websites)和右表(access_log)中所有的行。如果 "Websites" 表中的行在 "access_log" 中没有匹配或者 "access_log" 表中的行在 "Websites" 表中没有匹配,也会列出这些行。

INSERT INTO table2 SELECT * FROM table1  --我们可以从一个表中复制所有的列插入到另一个已存在的表中

INSERT INTO Websites (name, country)  SELECT app_name, country FROM apps  --或者我们可以只复制希望的列插入到另一个已存在的表中

--SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_SQL 之相关语法及操作符【彩民之家高手论坛】。name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

SQL 约束用于规定表中的数据规则。

--SQL LEFT JOIN 语法--SQL RIGHT JOIN 语法
SELECT column_name(s)
FROM table1
LEFT(RIGHT) JOIN table2
ON table1.column_name=table2.column_name;
注释:LEFT JOIN 关键字从左表(Websites)返回所有的行,即使右表(access_log)中没有匹配。

INSERT INTO SELECT 语句

--下面的 SQL 语句从 "Websites" 表中选取头两条记录:
SELECT * FROM Websites LIMIT 2;

概述:UNION、SELECT INTO、INSERT INTO SELECT、SQL 约束。

--ALTER TABLE 时的 SQL DEFAULT 约束

在 SQL 中,我们有如下约束:

--UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

语法:

撤销 DEFAULT 约束
如需撤销 DEFAULT 约束,请使用下面的 SQL:
ALTER TABLE Persons
ALTER City DROP DEFAULT

 

语法:

通过 SQL,您可以从一个表复制信息到另一个表。

 

 

--新表将会使用 SELECT 语句中定义的列名称和类型进行创建。您可以使用 AS 子句来应用新名称。
SELECT * INTO newtable  FROM table1  --我们可以复制所有的列插入到新表中

SELECT column1,column2  INTO newtable FROM table1  --或者只复制希望的列插入到新表中

SELECT Websites.name, access_log.count, access_log.date  INTO WebsitesBackup2016  FROM Websites  LEFT JOIN access_log  ON Websites.id=access_log.site_id  --复制多个表中的数据插入到新表中

SELECT *  INTO newtable FROM table1 WHERE 1=0  --SELECT INTO 语句可用于通过另一种模式创建一个新的空表。只需要添加促使查询没有数据返回的 WHERE 子句即可

 

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

SELECT INTO 语句

 

 

TAG标签: 点滴
版权声明:本文由彩民之家高手论坛发布于彩民之家高手论坛,转载请注明出处:SQL 之相关语法及操作符【彩民之家高手论坛】