SQL學習筆記6
INSERT INTO SELECT 語句從一個表復制數據,然後把數據插入到一個已存在的表中。目標表中任何已存在的行都不會受影響。
SQL INSERT INTO SELECT 語法
我們可以從一個表中復制所有的列插入到另一個已存在的表中:
INSERT INTO table2SELECT * FROM table1;
或者我們可以只復制希望的列插入到另一個已存在的表中:
INSERT INTO table2(column_name(s))
SELECT column_name(s)FROM table1; **********************************************************************************************************************************************************
CREATE DATABASE 語句用於創建數據庫。
SQL CREATE DATABASE 語法
CREATE DATABASE dbname;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 約束(Constraints)
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 值。
UNIQUE - 保證某列的每行必須有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的一個特定的記錄。
FOREIGN KEY - 保證一個表中的數據匹配另一個表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。
DEFAULT - 規定沒有給列賦值時的默認值。
*********************************************************************************************************************************************************
SQL NOT NULL 約束
NOT NULL 約束強制列不接受 NULL 值。
NOT NULL 約束強制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。
*********************************************************************************************************************************************************
SQL UNIQUE 約束
UNIQUE 約束唯一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 約束擁有自動定義的 UNIQUE 約束。
請註意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
如需命名 UNIQUE 約束,並定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
ALTER TABLE 時的 SQL UNIQUE 約束
當表已被創建時,如需在 "P_Id" 列創建 UNIQUE 約束,請使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD UNIQUE (P_Id)
如需命名 UNIQUE 約束,並定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
撤銷 UNIQUE 約束
如需撤銷 UNIQUE 約束,請使用下面的 SQL:
MySQL:
ALTER TABLE PersonsDROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsDROP CONSTRAINT uc_PersonID *********************************************************************************************************************************************************************************
SQL學習筆記6