基礎概念和一些基礎SQL語句


數據庫基本概念

數據庫:保存有組織的數據的容器(通常是一個文件或一組文件)。 表:某種特定類型數據的結構化清單,數據庫中的表都有一個唯一的名字用來標識自己。 模式:關於數據庫和表的布局及特性的信息。 列:表中的一個字段。所有表都是由一個或多個列組成,每個列都有對應的數據類型。 行:表中的一個記錄。 主鍵:一列(或一組列),其值能夠唯一區分表中每個行(每條記錄)。 任意兩行都不具有相同的主鍵值,每個行都必須具有一個主鍵值(主鍵值列不允許NULL值)。 SQL:一種專門用來與數據庫通信的語言,SQL不依賴DBMS的存在而存在。 DDL—數據定義語言(Create,Alter,Drop,DECLARE) DML—數據操縱語言(Select,Delete,Update,Insert) DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK) 

 

根據已有的表創建新表: 
A:create table tab_new like tab_old (使用舊表創建新表) 
B:create table tab_new as select col1,col2… from tab_old definition only

 

幾個簡單的基本的sql語句

選擇:select * from table1 where 范圍 插入:insert into table1(field1,field2) values(value1,value2) 刪除:delete from table1 where 范圍 更新:update table1 set field1=value1 where 范圍 查找:select * from table1 where field1 like '%value1%' ---like的語法很精妙,查資料! 排序:select * from table1 order by field1,field2 [desc] 總數:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 

 

幾個高級查詢運算詞 

A: UNION 運算符 UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生 出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派 生表的每一行不是來自 TABLE1 就是來自 TABLE2。 B: EXCEPT 運算符 EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個 結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。 C: INTERSECT 運算符 INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果 表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。 注:使用運算詞的幾個查詢結果行必須是一致的。 

 

使用外連接 

A、left outer join: 左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。 sql: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。 C:full outer join: 全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。 

 

SHOW

SHOW DATABASES;(;可用\g代替):顯示當前安裝的數據庫
SHOW TABLES; 查看當前數據庫中的可用表的列表
SHOW COLUMNS FROM tablename; 查看某個表中的內容,它對每個字段返回一行,行中包含字段名、數據類型、是否允許NULL、鍵信息、默認值以及其他信息
DESCRIBE tablename; 和 SHOW COLUMNS FROM tablename; 具有相同的功能,前者是后者的縮寫版。
SHOW STATUS; 用來顯示廣泛的服務器狀態信息。
SHOW CREATE DATABASE databasename; 用來顯示創建特定數據庫的MySQL語句。
SHOW CREATE TABLE tablename; 用來顯示創建特定表的MySQL語句。
SHOW GRANTS; 用來顯示授權用戶(所有用戶或特定用戶)的安全權限。
SHOW ERRORS; 用來顯示服務器錯誤
SHOW WARNINGS; 用來顯示服務器的警告消息

 

SELECT

SELECT columnname FROM tablename; 用來檢索數據表中的coulumnname列中的內容 SELECT row1,row2... FROM tablename; 用來檢索數據表中的row1,row2...行的內容 SELECT * FROM tablename; *為通配符,用來檢索表中的所有列 SELECT DISTINCT key FROM tablename; 用來檢索表中不同值key的行 SELECT key FROM tablename LIMIT num; 返回key的前num行數據 SELECT key FROM tablename LIMIT num1,num2; 返回表中key的以num1為起點后num2行 SELECT tablename.colunname FROM tablename; 用來檢索數據表中的coulumnname列中的內容,但是同時列出了表明和列名(完全限定) SELECT coulumname FROM tablename ORDER BY key; 以key為導向排序(升序ASC,可省略) SELECT coulumname FROM tablename ORDER BY key DESC; 以key為導向排序(降序,注:當有多個key時DESC只作用於直接位於其前面的key) SELECT coulumname FROM tablename WHERE condition; 按照條件condition從表中檢索指定列中的數據(WHERE子句在FROM子句后給出) SELECT coulumname FROM tablename WHERE key BETWEEN c1 AND c2; 從表中檢索指定列中在條件c1和c2之間的數據(c1 <= c2) SELECT coulumname FROM tablename WHERE key IS NULL; 從表中檢索key中為NULL的數據

 

操作符

用來聯結或改變WHERE子句中的子句的關鍵字。

AND操作符:

用在WHERE子句中的關鍵字,用來指示檢索滿足 所有 給定條件的行。

OR操作符:

用在WHERE子句中的關鍵字,用來表示檢索匹配 任一 給定條件的行。

IN操作符:

用在WHERE子句中的關鍵字,用來指定要匹配值的清單的關鍵字(取合法值的由逗號分割開的清單,全在圓括號中),功能與OR相當。

NOT操作符:

用在WHERE子句中的關鍵字,用來否定它之后所跟的任何條件。

BETWEEN操作符:

用在WHERE子句中的關鍵字,用來檢查某個范圍的值。

 

通配符

用來匹配值的一部分的特殊字符。為在搜索子句中使用通配符,必須使用LIKE謂詞。LIKE指示MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配進行比較。

%通配符:

表示任何字符出現的任一次數。

_通配符:

下划線通配符 _ 用途與%一樣,但下划線只匹配單個字符而不是多個字符。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM