對SQL簡單介紹、數據庫、表的簡單操作

1.SQL語句簡單介紹:

SQL(結構化查詢語言(Structured Query Language)包含6個部分(數據查詢語言DQL數據操作語言DML數據定義語言DDL事務處理語言TPL數據控制語言DCL指針控制語言CCL),Java中常用的有三種,DQLDMLDDL

一:數據查詢語言(DQL

其語句,也稱爲“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECTDQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHEREORDER BYGROUP BYHAVING。這些DQL保留字常與其他類型的SQL語句一起使用。

二:數據操作語言(DML):

其語句包括動詞INSERTUPDATEDELETE。它們分別用於添加,修改和刪除表中的行。也稱爲動作查詢語言。

:數據定義語言(DDL):

其語句包括動詞CREATEDROP。在數據庫中創建新表或刪除表(CREAT TABLE DROP TABLE);爲表加入索引等。DDL包括許多與數據庫目錄中獲得數據有關的保留字。它也是動作查詢的一部分。

:事務處理語言(TPL):

它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTIONCOMMITROLLBACK

:數據控制語言(DCL):

它的語句通過GRANTREVOKE獲得許可,確定單個用戶和用戶組對數據庫對象的訪問。某些RDBMS可用GRANTREVOKE控制對錶單個列的訪問。

六:指針控制語言(CCL):

它的語句,像DECLARE CURSORFETCH INTOUPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。


2.MySQL列類型對應Java的數據類型:

MySQL列類型    Java數據類型

-------------------------------------------------------

INT:                      int/Integer

BIGINT:               long/Long

FLOAT                 float/Float

DOUBLE             double/Double

DECIMAL              BigDecimal

---------------------------------------------------------


3.數據庫的操作

查看數據庫服務器存在哪些數據庫:

SHOW  DATABASES;

使用指定的數據庫:

USE database_name;

創建指定名稱的數據庫:

CREATE DATABASE database_name;

刪除數據庫:

DROP DATABASE database_name;

 

注意:MySQL中,日期時間值使用單引號引起來。 相當於JavaDateCalender


4.表的操作

創建表:

1.先進入某一個數據庫: use database_name;(指定創建的表應該在哪個數據庫)

2.輸入建表的SQL命令:

CREATE TABLE 表名(

   列名1    列的類型   [約束],

   列名2    列的類型   [約束],

   ....

   列名N    列的類型   約束    

);

注意:最後一行沒有逗號

注意:不能使用MySQL中的關鍵字作爲標識符.

     比如:訂單表(order),但是ORDERSQL中排序的關鍵字.

     解決方案:

              方式1:使用反引號,把關鍵字引起來:`ORDER`.

              方式2:開發中,習慣t_表名;

 

查看數據庫中存在哪些表:

SHOW TABLES;

查看錶結構:

DESC table_name;

查看錶的詳細定義:(顯示創建表的語句cd

SHOW CREATE TABLE table_name;(定義表的SQL語句)

刪除表:

DROP TABLE table_name;

 

表的約束:

表的約束(針對於某一列):

1.非空約束(NK)NOT NULL,不允許某列的內容爲空。

2.設置列的默認值:DEFAULT

3.唯一約束(UK)UNIQUE,在該表中,該列的內容必須唯一。

4.主鍵約束:PRIMARY KEY,約束在當前表中,指定列的值非空且唯一

5.主鍵自增長:AUTO_INCREMENT,從1開始,步長爲1。(常和主鍵配合使用)

6.外鍵約束:FOREIGN KEYA表中的外鍵列.A表中的外鍵列的值必須參照於B表中的某一列(B表主鍵)可以爲NULL

主表:不用依賴其他表,可以獨立存在

從表:外鍵列的數據要參照於主表中的數據,有外鍵列的表爲從表


主鍵/外鍵的起名規則:

主鍵:id

外鍵:xx_id:xx只的是參照表的名詞,productdir_id,也可以簡寫,dir_id


注意:MySQL,InnoDB支持事務和外鍵.

修改表的存儲引擎爲InnoDB:

ALTER TABLE 表名 ENGINE='InnoDB';

開發中,有時從性能考慮,我們會刪除外鍵.但是依然使用InnoDB存儲引擎.


消除結果中重複的數據。

語法:

SELECT DISTINCT 列名,..

 

設置列名的別名。

關鍵字:[AS]

1、改變列的標題頭;

2、用於表示計算結果的含義;

3、作爲列的別名;

4、如果別名中使用特殊字符,或者是強制大小寫敏感,或有空格時,都需加單引號;--->英文單詞

需求:查詢所有貨品的id,名稱,各進50個,並起別名的成本

SELECT id,productName,costPrice * 50 'price' FROM product

 

使用別名注意事項:

SQL語句是有一定的執行順序的,如若別名還沒定義出來,就先使用了,就會出錯,如:

SELECT id,productName,salePrice*cutoff pf FROM product WHERE pf>350(錯誤的)

SQL語句是先執行where語句再執行select的,而在執行where時,pf都還定義,故會出錯

SQL的執行順序:

1.先執行FROM子句:  確定查詢哪一張表

2.接着執行WHERE :  過濾篩選條件

3.接着做SELECT  :  確定選擇的列

4.最後做ORDER BY:  對結果集按照某列排序

 

優先級:

優先級         運算符

------------------------------------

1             所有比較運算符

2             NOT

3             AND

4             OR

注意:括號將跨越所有優先級規則

 

 

對結果集排序

使用ORDER BY子句將結果的記錄排序.

ASC : 升序,缺省。

DESC: 降序。

ORDER BY 子句出現在SELECT語句的最後。

格式:

SELECT <selectList>

FROM table_name

WHERE 條件

ORDER BY 列名1 [ASC/DESC],列名2 [ASC/DESC]...;

 

注意:別名不能使用引號括起來,否則不能排序。(下面的排序將失效)

SELECT *,salePrice*cutoff 'pf' FROM product WHERE productName LIKE '%M%' ORDER BY 'pf'

SELECT語句執行順序:

先執行FROM--->接着執行WHERE--->再執行SELECT--->最後執行ORDER BY






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章