1. 程式人生 > >SQL學習筆記6

SQL學習筆記6

創建 強制 har 兩個 指定 pri dex primary fault

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; **********************************************************************************************************************************************************

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 Persons
ADD UNIQUE (P_Id)

如需命名 UNIQUE 約束,並定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

撤銷 UNIQUE 約束

如需撤銷 UNIQUE 約束,請使用下面的 SQL:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID *********************************************************************************************************************************************************************************

SQL學習筆記6