4.join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢數據node
SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo FROM Persons,Orders WHERE Persons.id_p=Orders.id_p 經過id_p將persons和orders兩個錶鏈接起來 2.SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo FROM Persons INNER JOIN Oders ON Persons.id_p=Oders.Id_p ODER BY Persons.LastName 根據名字列出全部訂購的人, 5.INNER JOIN 在表中至少一個匹配時,INNER JOIN 關鍵字返回行 SELECT columns_name(s) FROM table_name1 INNER JOIN table_name_2 ON table_name1.column=table_name2.column_namemysql
LEFT JOIN 會從左表中返回全部的行,即便右表中沒有匹配的行 SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_p ORDER BY Persons.LastNamej 但願列出全部的人,以及他們的訂購(若是有的話)git
7.RIGHT JOIN 會從右表返回全部的行,即便左表沒有匹配的行 SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo FROM Persons RIGHT JONIN Orders ON Persons.Id_p=Orders.Id_P ORDER BY Persons.LastName 如今咱們但願列出全部的訂單,以及訂購他們的人(若是有的話)github
8.FULL JOIN 只要其中某個表存在匹配,FULL JOIN 就會返回行 SELECT Psersons.LastName,Persons.FirstName,Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.id_p=Orders.id_p ORDER BY Persons.LastName 如今但願列出全部的人,以及他們的訂單,以及全部的訂單,以及訂購他們的人正則表達式
9.UNION 用於合併兩個或多個SELECT語句的結果集 UNION 內部的SELECT語句必須擁有相同數量的列,列也必須擁有類似的數據類型,同時,每條SELECT語句中的列的順序必須相同 語法:SELET column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注意:UNION 操做符選取不一樣的值,若是容許選取重複的值,使用UNION ALL 語法:SELET column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 例子:SELECT E_Name FROM name1_list UNION SELECT E_name FROM name2_list 從兩個表中選取全部的名字sql
10.SELECT INTO 用於建立表的備份復件,從一個表中選取數據,而後插入另外一個表中 10.1 SELECT * INTO Persons_backup FROM Persons 會製做一個Persons的備份表 10.2IN 子句可用於向另外一個數據庫中拷貝表: SELECT * INTO Persons IN 'Backup.mdb' FROM Persons 10.3若是咱們但願拷貝某些域,能夠在selct語句後面列出這些域 SELECT LastName,FirstName INTO Persons——backup FROM Persons 10.4 SELECT 添加WHERE子句 SELECT LastName,FirstName INTO Persons_backup FROM Persons WHERE City='Beijing' 從"Persons" 表中提取居住在 "Beijing" 的人的信息,建立了一個帶有兩個列的名爲 "Persons_backup" 的表 10.5 SELECT Persons.LastName,Ordres.OrderNo INTO Persons_Order_backup FROM Persons INNER JOIN Orders ON Persons.id_p=Orders.id_p 會建立一個名爲 "Persons_Order_Backup" 的新表,其中包含了從 Persons 和 Orders 兩個表中取得的信息 11.CREATE DATABASE database_name 建立數據庫 12.CREAT TABLE 表名稱 int 整數 demical(size,d) numeric(size,d) 帶有小數的數字 size 規定數字的最大位數 d規定小數點右側的最大位數 char(size)容納固定長度的字符串 varchar(size)容納可變長度的字符串 date(yyyymmdd)容納日期 13.constraints sql約束 用於限制加入表的數據類型 能夠在建立表時規定約束(經過CREATE TABLE語句),或者在建立表以後經過(ALTER TABLE) 主要的幾種約束:1.not null 2. unique 3.primary key 4.foreing key 5.check 5.default數據庫
14.NOT NULL 強制列不接受NULL值,此約束強制字段始終包含值,若是不向字段添加值,就沒法插入新記錄或者更新記錄; CREAT TABLE Persons( id_p int NOT NULL, LastName varchar(255) NOT NULL, )json
15.UNIQUE 約束惟一標識數據庫表中的每條記錄 UNIQUE 和 PRIMARY KEY 約束均爲列或者列集合提供了惟一性的保證 PRIMARY KEY 擁有自動定義的 UNIQUE約束 注意:每一個表能夠有多個UNIQUE約束,可是每一個表只能有一個PRIMARY KEY約束 15.1下面的 SQL 在 "Persons" 表建立時在 "Id_P" 列建立 UNIQUE 約束: CREATE TABLE Persons ( id_p int NOT NULL, UNIQUE (id_p) ) 15.2命名 UNIQUE 約束,以及爲多個列定義 UNIQUE 約束 CREATE TABLE Persons ( id_p int NOT NULL, LastName varchar(255) NOT NULL, CONSTRAINT uc_PersonsID UNIQUE (id_p,LastName) ) 15.3當表已被建立時,如需在 "Id_P" 列建立 UNIQUE 約束,請使用下列 SQL: ALTER TABLE Persons ADD UNIQUE (id_p) 15.4如需命名 UNIQUE 約束,並定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法: ALTER TABLE Persons ADD CONSTRAINT uc_PersonsID UNIQUE (id_p,LastName) 15.5如需撤銷 UNIQUE 約束,請使用下面的 SQL: ALTER TABLE Persons DROP INDEX uc_PersonsID 16.PRIMARY KEY 約束惟一標識數據庫表中的每條記錄: 主鍵必須包含惟一的值; 主鍵不能包含NULL值; 每一個表都有一個主鍵,而且每一個表只能有一個主鍵; 16.1 下面的SQL在「Persons」表建立時,在「id_p」列建立 PRIMARY KEY約束: CREATE TABLE Persons( id_p int NOT NULL, PRIMARY KEY (id_p) ) 16.2若是須要命名 PRIMARY KEY 約束,以及爲多個列定義 PRIMARY KEY 約束,請使用下面的 SQL 語法: CREATE TABLE Persons( id_p int NOT NULL, LastName varchar(255) NOT NULL, CONSTRAINT pk_PersonID PRIMARY KEY (id_p,LastName) )app