一、今日内容
二、具体内容
SQL UNION 操作符
SQL UNION操作符用于合并两个或多个SELECT语句的结果。
注:UNION 内部的每个SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个SELECT语句中的列的顺序必须相同。
SQL UNION语法
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注释:默认地,UNION操作符选取不同的值。如果允许重复的值,请使用UNION ALL。
SQL UNION ALL语法
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
注释:UNION结果集中的列名总是等于 UNION 中第一个SELECT语句中的列名。
SQL SELECT INTO 语句
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
注:
MYSQL数据库不支持SELECT ... INTO 语句,但支持INSERT INTO ... SELECT语句。
也可以使用以下语句来拷贝表结构及数据:
CREATE TABLE 新表
AS
SELECT * FROM 旧表
SQL SELECT INTO 语法:
SELECT *
INTO newtable [IN externaldb]
FROM table1;
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
SQL INSERT INTO ... SELECT语句
INSERT INTO ... SELECT语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
SQL INSERT INTO ... SELECT 语法:
从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
SQL CREATE DATABASE 语句
SQL CREATE DATABASE 语句用于创建数据库。
CREATE DATABASE dbname;
SQL CREATE TABLE 语句
SQL CREATE TABLE 语句用于创建数据库中的表。
表由行和列组成,每个表都必须有个表名。
SQL CREATE TABLE 语法:
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
...
)
#column_name 参数规定表中列的名称。
#data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)
#size参数规定表中列的最大长度。
SQL约束
SQL约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过CREATE TABLE 语句),或者在表创建之后规定(通过ALTER TABLE 语句)。
SQL CREATE TABLE +CONSTRAINT语法:
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
在SQL中,我们有如下约束:
NOT NULL - 指示某列不能存储 NULL 值
NOT NULL约束 强制列不接受NULL值。
NOT NULL约束强制字段始终包含值,这就意味着,如果不向字段添加值,就无法插入新纪录或者更新记录
添加NOT NULL约束
在一个已创建的表的“Age”字段中添加 NOT NULL约束,如下:
ALTER TABLE Persons
MODIFY Age int NOT NULL;
删除NOT NULL约束
在一个已创建的表的“Age”字段中删除NOT NULL约束,如下:
ALTER TABLE Persons
MODIFY Age int NULL;
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
SQL CREATE INDEX 语句
CREATE INDEX 语句用于在表中创建索引,,以便更加快速高效地查询数据。
用户无法看到索引,他们只能被用来加速搜索/查询。
SQL CREATE INDEX 语法:
在表上创建一个简单的索引,允许使用重复的值:
CREATE INDEX index_name
ON table_name (column_name)
SQL CREATE UNIQUE INDEX 语法:
在表上创建一个唯一的索引,不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
注释:用于创建索引的语法在不同的数据库中不一样。因此,检查您的数据库中创建索引的语法。
SQL DROP
通过使用DROP语句,可以轻松地删除索引、表和数据库。
DROP INDEX 语句
DROP INDEX 语句用于删除表中的索引。
用于MS Access的DROP INDEX语法:
DROP INDEX index_name ON table_name
用于MS SQL Server 的DROP INDEX语法:
DROP INDEX index_name.index_name
用于DB2/Oracle的DROP INDEX语法:
DROP INDEX index_name
用于Mysql的DROP INDEX语法:
ALTER TABLE table_name DROP INDEX index_name
DROP TABLE 语句
DROP TABLE用于删除表。
DROP TABLE table_name
DROP DATABASE 语句
DROP DATABASE 语句用于删除数据库。
DROP DATABASE database_name
TRUNCATE TABLE 语句
如果仅仅需要删除表内的数据,但并不删除表本身,请使用TRUNCATE TABLE语句:
TRUNCATE TABLE table_name
原文:https://www.cnblogs.com/wsq-1/p/13065843.html