mysql sql w3cschool_SQL复习(w3school)笔记
SQL基礎
1.SQL對大小寫不敏感
2.DML(數據操作語言)與DDL(數據定義語言)
a)?DML
SELECT
UPDATE
DELETE
INSERT?INTO
b)?DDL
CREATE?DATABASE
ALTER?DATABASE
CREATE?TABLE
ALTER?TABLE
DROP?TABLE
CREATE?INDEX
DROP?INDEX
3.DISTINCT:去除重復值
a)?SELECT?DISTINCT?列名FROM表名
4.WHERE子句
a)?值得注意的運算符?BETWEEN,?LIKE
b)?文本值使用單引號,數值不用
5.ORDER?BY字句
a)?DESC?降序
b)?ASC?升序
6.INSERT?INTO語句
a)?語法
INSERT?INTO?table_name?VALUES?(val1,?val2?...)
INSERT?INTO?table_name(column1,?column2...)?VALUES?(val1,?val2?...)
7.UPDATE語句
a)?語法:?UPDATE表名SET列名=新值WHERE列名=某值
8.DELETE語句
a)?語法:DELETE?FROM表名WHERE列名=值
b)?刪除所有行?DELETE?FROM?table_name
SQL高級
1.TOP字句(MySQL為Limit)
a)?返回記錄的條目數(對于有大量數據的表來說,非常有用)
SELECT?TOP?number|percent?column_name(s)?FROM?table_name
SELECT?column_name(s)?FROM?table_name?LIMIT?number
2.通配符
a)?%?替代一個或多個字符
b)?_替代一個字符
c)?[charlist]字符列中的任何單一字符
d)?[^charlist]或[!charlist]不在字符列中的任何單一字符
3.IN操作符
a)?允許我們在WHERE子句中規定多個值
b)?SELECT?column_name(s)?FROM?table_name?WHERE?column_name?IN?(val1,?val2...)
4.BETWEEN操作符
a)?選取介于兩個值之間的數據范圍
5.Alias(別名)
a)?表別名?SELECT?column_name(s)?FROM?table_name?AS?alias_name
b)?列別名?SELECT?column_names?AS?alias_name?FROM?table_name
6.JOIN
a)?用于根據兩個或多個表中的列之間的關系,從這些表中查詢數據
b)?幾種SQL?JOIN
JOIN:表中至少一個匹配,則返回行
LEFT?JOIN:即使右表中沒有匹配,也從左表返回所有的行
RIGHT?JOIN:即使左表中沒有匹配,也從右表返回所有行
FULL?JOIN:只要其中一個表中存在匹配,就返回行
7.INNER?JOIN(與JOIN相同)
a)?SELECT?column_name(s)?FROM?table_name1?INNER?JOIN?table_name2?ON?table_name1.column_name?=?table_name2.column_name
8.LEFT?JOIN
a)?SELECT?column_name(s)?FROM?table_name1?LEFT?JOIN?table_name2?ON?table_name1.column_name?=?table_name2.column_name
b)?左表所有行會被列出
9.RIGHT?JOIN
a)?SELECT?column_name(s)?FROM?table_name1?RIGHT?JOIN?table_name2?ON?table_name1.column_name?=?table_name2.column_name
b)?右表所有行會被列出
10.FULL?JOIN
a)?SELECT?column_name(s)?FROM?table_name1?FULL?JOIN?table_name2?ON?table_name1.column_name?=?table_name2.column_name
b)?只要存在匹配就會返回行
11.UNION操作符
a)?用于合并兩個或多個SELECT語句的結果集(必須用相同數量的列,列必須擁有相似的數據類型,且列的順序必須相同)
b)?SELECT?column_name(s)?FROM?table_name1
UNION
SELECT?column_name(s)?FROM?table_name2
c)?UNION?ALL?會列出重復值
12.SELECT?INTO
a)?從一個表中選取數據,然后插入另一個表中
b)?常用于創建表的備份復件或者用于對記錄進行存檔
c)?SELECT?*?INTO?new_table_name?[IN?externaldatabase]?FROM?old_tablename
13.CREATE?DATABASE?database_name
14.CREATE?TABLE
a)?CREATE?TABLE?表名
(
列名1數據類型,
列名2數據類型,
……
)
15.約束Constraints
a)?NOT?NULL?不接受NULL值
b)?UNIQUE?唯一(可以有多個UNIQUE約束)
c)?PRIMARY?KEY(主鍵)僅有一個
d)?FOREIGN?KEY
一個表中的FOREIGN?KEY指向另一個表中的PRIMARY?KEY
用于預防破壞表之間連接的動作
防止非法數據插入外鍵列,因為它必須是它只想的那個表中的值之一
e)?CHECK?用于限制列中的值得范圍
f)?DEFAULT?用于向列中插入默認值
16.CREATE?INDEX?在表中創建索引
a)?索引:在不讀取整個表的情況下,使數據庫應用程序可以更快地查找數據
b)?更新含有索引的表,更費時,所以合理的做法是靜靜在常被搜索的列(及表)上面創建索引
c)?CREATE?INDEX?index_name?ON?table_name(column_name)
d)?唯一索引(兩個列不能擁有相同索引值)CREATE?UNIQUE?INDEX?index_name?ON?table_name(column_name)
17.DROP?刪除索引、表和數據庫
18.TRUNCATE?TABLE?僅刪除表內容不刪除表
19.AUTO?INCREMENT
20.VIEW(視圖)基于SQL語句的結果集的可視化的表
21.Date函數
a)?MySQL?Date函數
NOW()?返回當前日期和時間
CURDATE()?返回當前的日期
CURTIME()?返回當前的時間
DATE()?提起日期或日期/時間表達式的日期部分
EXTRACT()?返回日期/時間的單獨部分
DATE_ADD()?給日期添加指定的時間間隔
DATE_SUB()?從日期減去指定的時間間隔
DATEDIFF()?返回兩個日期之間的天數
DATE_FORMAT()?用不同格式顯示日期/時間
b)?SQL?Server?Date函數
GETDATE()?返回當前日期和時間
DATEPART()?返回日期/時間的單獨部分
DATEADD()?在日期中添加或減去指定的時間間隔
DATEDIFF()?返回兩個日期之間的時間
CONVERT()?用不同的格式顯示日期/時間
c)?MySql?Date數據類型
DATE?YYYY-MM-DD
DATETIME?YYYY-MM-DD?HH:MM:SS
TIMESTAMP?YYYY-MM-DD?HH:MM:SS
YEAR?YYYY/YY
SQL?Server?Date數據類型
DATE?YYYY-MM-DD
DATETIME?YYYY-MM-DD?HH:MM:SS
SMALLDATETIME?YYYY-MM-DD?HH:MM:SS
TIMESTAMP??唯一的數字
d)?如果您希望使查詢簡單且更易維護,那么請不要在日期中使用時間部分!
22.NULL值
a)?測試NULL值
IS?NULL
IS?NOT?NULL
23.NULL函數
a)?MySQL用IFNULL和COALESCE函數
25.SQL服務器-RDBMS
總結
以上是生活随笔為你收集整理的mysql sql w3cschool_SQL复习(w3school)笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果手机怎样投屏到夏普电视上?
- 下一篇: 求一个男士qq网名!