1. 程式人生 > 資料庫 >資料庫的基本操作

資料庫的基本操作

結構化查詢語言包含6個部分:

1、資料查詢語言(DQL:Data Query Language):其語句,也稱為“資料檢索語句”,用以從表中獲得資料,確定資料怎樣在應用程式給出;

保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其它型別的SQL語句一起使用。

2、資料操作語言(DML:Data Manipulation Language):其語句包括動詞INSERT、UPDATE和DELETE。它們分別用於新增、修改和刪除。

3、事務控制語言(TCL):它的語句能確保被DML語句影響的表的所有行及時得以更新。包括COMMIT(提交)命令、SAVEPOINT(儲存點)命令、ROLLBACK(回滾)命令。

4、資料控制語言(DCL):它的語句通過GRANT或REVOKE實現許可權控制,確定單個使用者和使用者組對資料庫物件的訪問。某些RDBMS可用GRANT或REVOKE控制對錶單個列的訪問。

5、資料定義語言(DDL):其語句包括動詞CREATE,ALTER和DROP。在資料庫中建立新表或修改、刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。

6、指標控制語言(CCL):它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。


1. 資料庫引擎:
InnoDB:支援事務,

    支援外來鍵
支援崩潰修復能力
併發控制
修改
缺點:
讀寫效率低
佔用空間大
MyISAM :支援靜態型 動態型,壓縮型
優勢:佔用空間少,
插入時候比較高
資料的完整性

Memory: 預設使用hash索引
放在記憶體中,處理速度快
臨時表
缺點:
放入記憶體,斷電後,就失效了。
安全性差=

不能建立太大的表

1.2 建立資料庫: 語法:
CREATE DATABASE [IF NOT EXISTS] <資料庫名>
[[DEFAULT] CHARACTER SET <字符集名>]
[[DEFAULT] COLLATE <校對規則名>];
<資料庫名>:建立資料庫的名稱。MySQL 的資料儲存區將以目錄方式表示 MySQL 資料庫,因此資料庫名稱必須符合作業系統的資料夾命名規則,不能以數字開頭,儘量要有實際意義。注意在 MySQL 中不區分大小寫。
IF NOT EXISTS:在建立資料庫之前進行判斷,只有該資料庫目前尚不存在時才能執行操作。此選項可以用來避免資料庫已經存在而重複建立的錯誤。
[DEFAULT] CHARACTER SET:指定資料庫的字符集。指定字符集的目的是為了避免在資料庫中儲存的資料出現亂碼的情況。如果在建立資料庫時不指定字符集,那麼就使用系統的預設字符集。
[DEFAULT] COLLATE:指定字符集的預設校對規則。

字符集是用來定義 MySQL 儲存字串的方式,校對規則定義了比較字串的方式。後面我們會單獨講解 MySQL 的字符集和校對規則。

CREATE DATABASE if not exists maizi
default CHARACTER set utf8
default COLLATE utf8_chinese_ci;

2.建立表
#註釋內容
--註釋內容
#建立資料庫 MAIZI
CREATE DATABASE IF NOT EXISTS MAIZI DEFAULT CHARACTER SET 'UTF8';



--建立學員表 user
--編號 id
--使用者名稱 username
--年齡 age
--性別 sex
--郵箱 email
--地址 addr
--生日 birth
--薪水 salary
--電話 tel
--是否結婚 married
--通過comment 給欄位添加註釋
表結構是 表名.frm
CREATE TABLE IF NOT EXISTS USER (
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(20),
birth year,
salary float(8,2),
tel int,
married TINYINT(1) comment '0代表未結婚,1代表已婚'
)ENGINE=INNODB CHARSET=UTF8;

 

3.查看錶結構
DESC tbl_name;
DESCRIBE tbl_name;
SHOW COLUMNS FROM tbl_name;

 

4.資料型別:

4.1 整數型別:

#######*****:數字型別後面括號中的數字,不表示長度,表示的是顯示寬度 如:int(4) 表示2 0002
TINYINT 1個位元組 8位
有符號值:-128~127
無符號值:0~255(0~2^8-1)
SMALLINT 2個位元組
有符號值:-32768~32767
無符號值:0-65535(0~2^16-1)
MEDIUMINT 3個位元組
有符號值:-8388608~8388607
無符號值:0~16777215(0~2^24-1)
INT 4個位元組
有符號值:-2147483648~2147483647
無符號值:0~4294967295(0~2^32-1)
BIGINT 8個位元組
有符號值:-9223372036854775808~9223372036854775807
無符號值:0~18446744073709551615 (0~2^64-1)
BOOL,BOOLEAN
等價於TINYINT(1) ,0為false,其餘為true。