小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQL數(shù)據(jù)庫基礎知識

 酒駕的酒瓶蓋 2018-07-09

SQL數(shù)據(jù)庫基礎知識-鞏固篇<一>、、、

 

首先展示兩款我個人很喜歡的數(shù)據(jù)庫-專用于平時個人SQL技術(shù)的練習<特點:體積小,好安裝和好卸載,功能完全夠用了>

MySQL-57 DataBase

MS-SQLServer-2000 DataBase

SQL的含義:結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL

作用:SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)是一種用于操作數(shù)據(jù)庫的語言。

結(jié)構(gòu)化查詢語言包含6個部分:
一:數(shù)據(jù)查詢語言(DQL:Data Query Language):也稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),關鍵字有:SELECT WHERE,ORDER BY,GROUP BY和HAVING

二:數(shù)據(jù)操作語言(DML:Data Manipulation Language):包括動詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱為動作查詢語言。

三:事務處理語言(TPL):TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

四:數(shù)據(jù)控制語言(DCL):

五:數(shù)據(jù)定義語言(DDL):包括動詞CREATE和DROP。在數(shù)據(jù)庫中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引

六:指針控制語言(CCL):像DECLARE CURSOR,F(xiàn)ETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

==================

結(jié)構(gòu)化查詢語言中的五種數(shù)據(jù)類型:字符型,文本型,數(shù)值型,邏輯型和日期型。

==================

第一部分:SQL基礎知識:SQL入門知識、、、

SQL 是用于訪問和處理數(shù)據(jù)庫的一種計算機語言。
常用到的數(shù)據(jù)庫有:Oracle, SQL Server, DB2, Access 、MySQL等等。
======================
什么是 SQL?
SQL 指結(jié)構(gòu)化查詢語言
SQL 使我們有能力訪問數(shù)據(jù)庫
SQL 是一種 ANSI 的標準計算機語言
編者注:ANSI,美國國家標準化組織

==========
SQL常用的對數(shù)據(jù)庫做的一些基礎的操作:
SQL 能做什么?
SQL 面向數(shù)據(jù)庫執(zhí)行查詢
SQL 可從數(shù)據(jù)庫取回數(shù)據(jù)
SQL 可在數(shù)據(jù)庫中插入新的記錄
SQL 可更新數(shù)據(jù)庫中的數(shù)據(jù)
SQL 可從數(shù)據(jù)庫刪除記錄
SQL 可創(chuàng)建新數(shù)據(jù)庫
SQL 可在數(shù)據(jù)庫中創(chuàng)建新表
SQL 可在數(shù)據(jù)庫中創(chuàng)建存儲過程
SQL 可在數(shù)據(jù)庫中創(chuàng)建視圖
SQL 可以設置表、存儲過程和視圖的權(quán)限

=======
SQL 是一門 ANSI 標準的計算機語言,用來訪問和操作數(shù)據(jù)庫系統(tǒng)。
SQL語言中常用的一些關鍵詞:SELECT、UPDATE、DELETE、INSERT、WHERE
一定要記住,SQL 對大小寫不敏感!
分號是在數(shù)據(jù)庫系統(tǒng)中分隔每條 SQL 語句的標準方法,
===========
RDBMS 指的是關系型數(shù)據(jù)庫管理系統(tǒng)。MS Access, SQL Server, MySQL,IBM DB2,

RDBMS 中的數(shù)據(jù)存儲在被稱為表(tables)的數(shù)據(jù)庫對象中。表是相關的數(shù)據(jù)項的集合,它由列和行組成。

===============
SQL 分為兩個部分:數(shù)據(jù)操作語言 (DML) 和 數(shù)據(jù)定義語言 (DDL)。


一、SQL (結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法。

SELECT - 從數(shù)據(jù)庫表中獲取數(shù)據(jù)
UPDATE - 更新數(shù)據(jù)庫表中的數(shù)據(jù)
DELETE - 從數(shù)據(jù)庫表中刪除數(shù)據(jù)
INSERT INTO - 向數(shù)據(jù)庫表中插入數(shù)據(jù)

======================
二、SQL 的數(shù)據(jù)定義語言 (DDL) 部分使我們有能力創(chuàng)建或刪除表格。或是修改表的屬性

CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫
ALTER DATABASE - 修改數(shù)據(jù)庫
CREATE TABLE - 創(chuàng)建新表
ALTER TABLE - 變更(改變)數(shù)據(jù)庫表
DROP TABLE - 刪除表
CREATE INDEX - 創(chuàng)建索引(搜索鍵)
DROP INDEX - 刪除索引

======================

需要用到的數(shù)據(jù)庫表:

 


SELECT 語法:
1.SELECT 列名稱 FROM 表名稱
2.SELECT * FROM 表名稱

例子:
1.需獲取名為 "LastName" 和 "FirstName" 的列的內(nèi)容(從名為 "Persons" 的數(shù)據(jù)庫表),

SELECT LastName,FirstName FROM Persons

2.從 "Persons" 表中選取所有的列。

SELECT * FROM Persons

結(jié)果集---result-set:SELECT 語句用于從表中選取數(shù)據(jù)。然后將選取的數(shù)據(jù)存儲在一個結(jié)果表中(稱為結(jié)果集)。

=======================
DISTINCT 語法:不重復的顯示查詢結(jié)果集,即:查詢的數(shù)據(jù)中重復的數(shù)據(jù)只顯示一次
1.SELECT DISTINCT 列名稱 FROM 表名稱

例子:
1.從 Company" 列中僅選取唯一不同的值,

SELECT DISTINCT Company FROM Orders

====================-==

WHERE 子句語法:有條件地從表中選取數(shù)據(jù),
1.SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值

where子句中的中常用的運算符:
= 等于
<> 不等于 或是 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某個范圍內(nèi)
LIKE 搜索某種模式

例子:
1.選取居住在城市 "Beijing" 中的人

SELECT * FROM Persons WHERE City='Beijing'

單引號使用:

數(shù)值:這是正確的:SELECT * FROM Persons WHERE Year>1965

文本值:這是正確的:SELECT * FROM Persons WHERE FirstName='Bush'
===============================
AND 運算符:
例子:
1.使用 AND 來顯示所有姓為 "Carter" 并且名為 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

OR 運算符:

例子
1.使用 OR 來顯示所有姓為 "Carter" 或者名為 "Thomas" 的人:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

AND 和 OR 運算符結(jié)合使用:

例子

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'

==============================

ORDER BY 語法:用于給查詢的結(jié)果集排序 order by 默認是升序排列,desc降序排列 asc升序排列

升序排列1序號的數(shù)據(jù)<2序號的數(shù)據(jù)<3序號的數(shù)據(jù) 同時:數(shù)據(jù)表一般都是自上而下開始,123456、、(頂部的數(shù)據(jù)小,底部的數(shù)據(jù)大)

========================
INSERT語法:
1.INSERT INTO 表名稱 VALUES (值1, 值2,....)
2.INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

例子
1.在person表中插入新的一行數(shù)據(jù)

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

2.在person表的指定列中插入數(shù)據(jù)

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

====================

Update語法:
1.UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
例子
1.為 lastname 是 "Wilson" 的人添加 firstname:為Fred

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

更新某一行中的若干列

2.為 lastname 是 "Wilson" 的人修改地址(address),并添加城市名稱(city):

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'

=====================

DELETE 語法:DELETE 語句用于刪除表中的行。
1.DELETE FROM 表名稱 WHERE 列名稱 = 值
例子
1.刪除lastname 是Wilson的那行數(shù)據(jù)

DELETE FROM Person WHERE LastName = 'Wilson' 

2.可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:

DELETE FROM table_name
或是
DELETE * FROM table_name

===============================

第二部分:SQL-進階部分、、、

需要用到的數(shù)據(jù)庫表:

 

TOP 句子:
1.SQL Server 的語法:
SELECT TOP number|percent column_name(s) FROM table_name

2.MySQL 和 Oracle 中的 SQL SELECT TOP 是等價的
MySQL 語法:
SELECT column_name(s) FROM table_name LIMIT number

===============
TOP使用的例子
1.從上面的 "Persons" 表中選取頭兩條記錄。

SELECT TOP 2 * FROM Persons

2.從上面的 "Persons" 表中選取 50% 的記錄。

SELECT TOP 50 PERCENT * FROM Persons

====================

LIKE 操作符 的語法:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
例子
1.從上面的 "Persons" 表中選取居住在以 "N" 開始的城市里的人:

SELECT * FROM Persons WHERE City LIKE 'N%'

2.從 "Persons" 表中選取居住在以 "g" 結(jié)尾的城市里的人:

SELECT * FROM Persons WHERE City LIKE '%g'

3.從 "Persons" 表中選取居住在包含 "lon" 的城市里的人:

SELECT * FROM Persons WHERE City LIKE '%lon%'

4.從 "Persons" 表中選取居住在不包含 "lon" 的城市里的人:

SELECT * FROM Persons WHERE City NOT LIKE '%lon%'

==============

SQL通配符語法:

% 替代一個或多個字符
_ 僅替代一個字符

[charlist] 字符列中的任何單一字符

[^charlist] 或者 [!charlist] 不在字符列中的任意一個

例子
1.從上面的 "Persons" 表中選取居住在以 "Ne" 開始的城市里的人:

SELECT * FROM Persons WHERE City LIKE 'Ne%'

2.從 "Persons" 表中選取居住在包含 "lond" 的城市里的人:

SELECT * FROM Persons WHERE City LIKE '%lond%'

3.從上面的 "Persons" 表中選取名字的第一個字符之后是 "eorge" 的人:

SELECT * FROM Persons WHERE FirstName LIKE '_eorge'

4.從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然后是一個任意字符,然后是 "r",然后是任意字符,然后是 "er":

SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'

5.從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:

SELECT * FROM Persons WHERE City LIKE '[ALN]%'

6.從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:

SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

===============

IN 操作符語法:
1.SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
例子
1.從上表中選取姓氏為 Adams 和 Carter 的人:

SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

===================

BETWEEN ... AND操作符的語法:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
例子
1.以字母順序顯示介于 "Adams"(包括)和 "Carter"(不包括)之間的人,

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

2.以字母順序顯示介于 "Adams"(包括)和 "Carter"(不包括)之外的人

SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'

===================

Alias 別名的語法:
1.表中的別名語法
SELECT column_name(s) FROM table_name AS alias_name
2.列中的別名語法:
SELECT column_name AS alias_name FROM table_name

例子
1.有兩個表分別是:"Persons" 和 "Product_Orders"。我們分別為它們指定別名 "p" 和 "po"。
現(xiàn)在,我們希望列出 "John Adams" 的所有定單。

SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John'

不使用表的別名:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName FROM Persons, Product_Orders 

WHERE Persons.LastName='Adams' AND Persons.FirstName='John'

2.列名別名:

SELECT LastName AS Family, FirstName AS Name FROM Persons

=================

需要用到的數(shù)據(jù)庫表:

 


Jion語法
主鍵(Primary Key)是一個列,在這個列中的每一行的值都是唯一的。在表中,每個主鍵的值都是唯一的。

例子
1.誰訂購了產(chǎn)品,并且他們訂購了什么產(chǎn)品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

2.列出所有人的定購,

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

================================

Join的四種類型:
JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行

=======================

需要用到的數(shù)據(jù)庫表:

 


一、INNER JOIN 的語法:其實inner join 就是join
1.SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

圖解:

 

例子
1.列出所有人的定購。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

=============================

需要用到的數(shù)據(jù)庫表:

 


二、Left Join 的語法:
會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
1.SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

圖解:

 

例子
1.列出所有的人,以及他們的定購 - 如果有的話。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

==================

需要用到的數(shù)據(jù)庫表:

 


三、RIGHT JOIN 的語法:
會從右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。
1.SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

圖解:

 

例子
1.列出所有的定單,以及定購它們的人 - 如果有的話。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

會從右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中沒有匹配的行。

====================

需要用到的數(shù)據(jù)庫表:

 


四、FULL JOIN 的語法-全連接:
1.SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

圖解:

 

例子
1.列出所有的人,以及他們的定單,以及所有的定單,以及定購它們的人。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

會從左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中沒有匹配,或者如果 "Orders" 中的行在表 "Persons" 中沒有匹配,

==========================

需要用到的數(shù)據(jù)庫表:

 


UNION 操作符的語法:
UNION 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時,每條 SELECT 語句中的列的順序必須相同。
默認地,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。
1.SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
UNION ALL 語法:
1.SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

例子
1.列出所有在中國和美國的不同的雇員名:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

2.列出在中國和美國的所有的雇員:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

===================================================

1.創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE database_name
2.創(chuàng)建數(shù)據(jù)表
CREATE TABLE 表名稱
(
列名稱1 數(shù)據(jù)類型,
列名稱2 數(shù)據(jù)類型,
列名稱3 數(shù)據(jù)類型,
....
)

=====================
SQL中的約束:
NOT NULL 不接受 NULL 值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。
UNIQUE 唯一標識數(shù)據(jù)庫表中的每條記錄。
PRIMARY KEY 唯一標識數(shù)據(jù)庫表中的每條記錄。 主鍵必須包含唯一的值。主鍵列不能包含 NULL 值。每個表都應該有一個主鍵,并且每個表只能有一個主鍵。
FOREIGN KEY 外鍵約束:個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
CHECK 用于限制列中的值的范圍。如果對單個列定義 CHECK 約束,那么該列只允許特定的值。如果對一個表定義 CHECK 約束,那么此約束會在特定的列中對值進行限制。
DEFAULT 用于向列中插入默認值。

===================
索引 INDEX 用于快速高效地查詢數(shù)據(jù)。
DROP INDEX 刪除索引

==============
ALTER 用于在已有的表中添加、修改或刪除列。
1.在表中添加列,
LTER TABLE table_name ADD column_name datatype
2.刪除表中的列,
ALTER TABLE table_name DROP COLUMN column_name

=============
AUTO INCREMENT 自動增長

=============
VIEW 視圖

==================
日期:
Date 數(shù)據(jù)類型
1.MySQL 使用下列數(shù)據(jù)類型在數(shù)據(jù)庫中存儲日期或日期/時間值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY

2.SQL Server 使用下列數(shù)據(jù)類型在數(shù)據(jù)庫中存儲日期或日期/時間值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: 唯一的數(shù)字

====================================
數(shù)據(jù)類型:
text 用于文本或文本與數(shù)字的組合。最多 255 個字符。
Byte 允許 0 到 255 的數(shù)字。
Integer 允許介于 -32,768 到 32,767 之間的數(shù)字。
Long 允許介于 -2,147,483,648 與 2,147,483,647 之間的全部數(shù)字
Yes/No 邏輯字段,可以顯示為 Yes/No、True/False 或 On/Off。在代碼中,使用常量 True 和 False (等價于 1 和 0)
CHAR(size) 保存固定長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的長度。最多 255 個字符。
VARCHAR(size) 保存可變長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的最大長度。最多 255 個字符。注釋:如果值的長度大于 255,則被轉(zhuǎn)換為 TEXT 類型。

====================
DBMS - 數(shù)據(jù)庫管理系統(tǒng)(Database Management System)
RDBMS - 關系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)IBM 公司發(fā)明了 RDBMS。

==================
SQL中常用的一些函數(shù):
avg 平均值
count 統(tǒng)計
max 最大值
min 最小值
sum 求和
group by 對查詢結(jié)果集進行分組
having 過濾
=========================

無法比較 NULL 和 0;它們是不等價的。因為:null是指不能為空的值,而0就是表示數(shù)值0

=====================

第三部分:基礎的SQL知識檢測題、、、

SQL 是用于訪問和處理數(shù)據(jù)庫的一種計算機語言、常用的數(shù)據(jù)庫:SQL Server, DB2,MySQL、 Access

1 . SQL 指的是?
Structured Query Language

哪個 SQL 語句用于從數(shù)據(jù)庫中提取數(shù)據(jù)?
SELECT
哪條 SQL 語句用于更新數(shù)據(jù)庫中的數(shù)據(jù)?
UPDATE
哪條 SQL 語句用于刪除數(shù)據(jù)庫中的數(shù)據(jù)?
DELETE
哪條 SQL 語句用于在數(shù)據(jù)庫中插入新的數(shù)據(jù)?
insert into
通過 SQL,您如何從 "Persons" 表中選取 "FirstName" 列?
SELECT FirstName FROM Persons
通過 SQL,您如何從 "Persons" 表中選取所有的列?
SELECT * FROM Persons
通過 SQL,您如何從 "Persons" 表中選取 "FirstName" 列的值等于"Peter" 的所有記錄?
SELECT * FROM Persons WHERE FirstName='Peter'
通過 SQL,您如何從 "Persons" 表中選取 "FirstName" 列的值以 "a" 開頭的所有記錄?
SELECT * FROM Persons WHERE FirstName LIKE 'a%'

判斷題:當所列出的某個條件為 true 時,OR 運算符會顯示記錄。當列出的所有條件為 true 時,AND 運算符會顯示記錄。

 

對的

通過 SQL,您如何在表 Persons 中選擇 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有記錄?
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

通過 SQL,您如何按字母順序選取 Persons 表中 LastName 介于 Adams 和 Carter 的所有記錄?
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

哪條 SQL 語句可返回唯一不同的值?
SELECT DISTINCT
哪個 SQL 關鍵詞用于對結(jié)果集進行排序?
ORDER BY
通過 SQL,您如何根據(jù) "FirstName" 列降序地從 "Persons" 表返回所有記錄?
SELECT * FROM Persons ORDER BY FirstName DESC
通過 SQL,您如何向 "Persons" 表插入新的記錄?
INSERT INTO Persons VALUES ('Jimmy', 'Jackson')
通過 SQL,您如何向 "Persons" 表中的 "LastName" 列插入 "Wilson" ?
INSERT INTO Persons (LastName) VALUES ('Wilson')
您如何把 "Persons" 表中 "LastName" 列的 "Gates" 改為 "Wilson" ?
UPDATE Persons SET LastName='Wilson' WHERE LastName='Gates'
通過 SQL,您如何在 "Persons" 表中刪除 "FirstName" 等于 "Fred" 的紀錄?
DELETE FROM Persons WHERE FirstName = 'Fred'
20.通過 SQL,您如何返回 "Persons" 表中記錄的數(shù)目?
SELECT COUNT(*) FROM Persons

=====================

圖片版:

 

======================================================== 

附錄部分:

=====================

常用的語法:

復制代碼
Select 
SELECT 字段名 FROM 表名;

Distinct 
SELECT DISTINCT 字段名 
FROM 表名;

Where 
SELECT 字段名 
FROM 表名 
WHERE 條件;

And/Or 
SELECT 字段名 
FROM 表名 
WHERE 簡單條件1 
{[AND|OR] 簡單條件2}+;

In 
SELECT 字段名 
FROM 表名 
WHERE 字段名 IN ('值1', '值2', ...);

Between 
SELECT 字段名 
FROM 表名 
WHERE 字段名 BETWEEN '值1' AND '值2';

Like 
SELECT 字段名 
FROM 表名 
WHERE 字段名 LIKE {模式};

Order By 
SELECT 字段名 
FROM 表名 
[WHERE 條件]
ORDER BY 字段名 [ASC, DESC];

Count 
SELECT COUNT(字段名) 
FROM 表名;

Group By 
SELECT 字段1, SUM(字段2) 
FROM 表名 
GROUP BY 字段1;

Having 
SELECT 字段1, SUM(字段2) 
FROM 表名 
GROUP BY 字段1 
HAVING (欄位);

Create Table 
CREATE TABLE 表名
(字段1 數(shù)據(jù)類型,
字段2 數(shù)據(jù)類型,
... );

Drop Table 
DROP TABLE 表名;

Truncate Table 
TRUNCATE TABLE 表名;

Insert Into 
INSERT INTO 表名 (字段1, 字段2, ...)
VALUES (值1, 值2, ...);

Update 
UPDATE 表名
SET 字段1 = [新值]
WHERE 條件;

Delete From 
DELETE FROM 表名
WHERE 條件;
復制代碼

==================================

簡單的SQL語句及翻譯

1.營業(yè)額超過 $1,000 的資料

SELECT Store_Name 
FROM Store_Information 
WHERE Sales > 1000;

2.選出所有 Sales 高于 $1,000 或是 Sales 在 $500 及 $275 之間的資料

SELECT Store_Name 
FROM Store_Information 
WHERE Sales > 1000 
OR (Sales < 500 AND Sales > 275);

3.所有含蓋 Los Angeles 或 San Diego 的資料

SELECT * 
FROM Store_Information 
WHERE Store_Name IN ('Los Angeles', 'San Diego');

4.所有介于 January 6, 1999 及 January 10, 1999 中的資料

SELECT * 
FROM Store_Information 
WHERE Txn_Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999';

5.依照 Sales 欄位的由大往小列出 Store_Information 表格中的資料:由小往大 (ascending) 或是由大往小 (descending)

SELECT Store_Name, Sales, Txn_Date 
FROM Store_Information 
ORDER BY Sales DESC;

6. store_name 欄不是空白的資料

SELECT COUNT (Store_Name) 
FROM Store_Information 
WHERE Store_Name IS NOT NULL;

7.找出我們的表格中有多少個不同的 store_name,

SELECT COUNT (DISTINCT Store_Name) 
FROM Store_Information;

8.取前客戶表的前3個記錄的例子:

復制代碼
MS-SQL中
SELECT TOP 3 * FROM CUSTOMERS;

MySQL中
SELECT * FROM CUSTOMERS
LIMIT 3;

Oracle中
SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;
復制代碼

=============

欄位 (column) 及列位 (row)
主鍵 (Primary Key)
組合鍵 (Composite Key)
ANSI(American National Standards Institute 美國國家標準化組織)
FOREIGN KEY 外鍵約束
PRIMARY KEY 主鍵約束
================
常用的連接查詢:
INNER JOIN:如果表中有至少一個匹配,則返回行
LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN:只要其中一個表中存在匹配,則返回行

INNER JOIN: 返回記錄當兩個表有匹配。等值連接。

LEFT JOIN: 返回左表中所有的行,即使右表中沒有匹配。

RIGHT JOIN: 返回右表中所有的行,即使有在左表中沒有匹配。

FULL JOIN: 返回表中匹配的所有行。

SELF JOIN: 是用來連接表本身,如果表有兩張表,暫時改名至少在一個表中的SQL語句。

CARTESIAN JOIN: 返回來自兩個或更多個聯(lián)接的表的記錄的集合的笛卡爾乘積。

==================
SQL中的約束 (Constraints)
NOT NULL - 指示某列不能存儲 NULL 值。
UNIQUE - 保證某列的每行必須有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個列多個列的結(jié)合)有唯一標識,有助于更容易更快速地找到表中的一個特定的記錄。
FOREIGN KEY - 保證一個表中的數(shù)據(jù)匹配另一個表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。
DEFAULT - 規(guī)定沒有給列賦值時的默認值。
=============
視圖 view
視圖是基于 SQL 語句的結(jié)果集的可視化的表。視圖中的字段就是來自一個或多個數(shù)據(jù)庫中的真實的表中的字段。
=============
函數(shù):

復制代碼
SUM() 語法
SELECT SUM(column_name) FROM table_name;

AVG() 語法
SELECT AVG(column_name) FROM table_name

COUNT() 語法
SELECT COUNT(column_name) FROM table_name;
SELECT COUNT(*) FROM table_name;
SELECT COUNT(DISTINCT column_name) FROM table_name;
NULL 不計入

MAX() 語法
SELECT MAX(column_name) FROM table_name;

MIN() 語法
SELECT MIN(column_name) FROM table_name;
復制代碼

 

====================
DDL - 數(shù)據(jù)定義語言:

命令 描述
CREATE 創(chuàng)建一個新的表,表的視圖,或者在數(shù)據(jù)庫中的對象
ALTER 修改現(xiàn)有的數(shù)據(jù)庫對象,例如一個表
DROP 刪除整個表,數(shù)據(jù)庫中的表或其他對象或視圖
DML - 數(shù)據(jù)操縱語言:

命令 描述
SELECT 從一個或多個表中檢索特定的記錄
INSERT 創(chuàng)建記錄
UPDATE 修改記錄
DELETE 刪除記錄
DCL - 數(shù)據(jù)控制語言:

命令 描述
GRANT 授予用戶權(quán)限
REVOKE 收回用戶授予的權(quán)限

=================================
數(shù)據(jù)完整性:
實體完整性: 表中沒有重復行

域完整性: 通過限制的類型,格式或值的范圍強制對于一個給定列的有效條目

參考完整性: 行不能被刪除,被其他記錄使用

用戶定義的完整性: 強制執(zhí)行不屬于實體,域和參照完整性一些具體的業(yè)務規(guī)則
========================
事務具有以下四個標準屬性,通常由首字母縮寫ACID簡稱:

原子: 確保工作單元中的所有操作都成功完成; 否則,該事務被中止的故障點,操作回滾到操作之前的狀態(tài)。

一致性: 確保數(shù)據(jù)庫正確后成功提交事務更改狀態(tài)。

隔離: 事務操作彼此獨立和透明。

持久性: 可確保提交的事務的結(jié)果或仍然存在系統(tǒng)故障的情況下的作用。

命令:

COMMIT: 保存更改。

ROLLBACK: 回滾更改。

SAVEPOINT: 回滾事務組創(chuàng)建點

SET TRANSACTION: 事務放置的名稱。
=================
SQL注入:

常用的處理SQL注入的方式:

=====================

 

 

 

 

—————>>>>>I'm  a 程序媛。。。.|

web developer / designer / 請叫我最美女神

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多