MySQL整理
把MySQL的一些常用語句和知識整理了一下可供參考。博客園的Markdown不支持TOC有點尷尬
登陸
mysql -uroot -ppassword -P3306 -hhost(127.0.0.1)
MySQL語句規范
- 關鍵字與函數名都大寫
- 數據庫名,表名,字段名小寫
- SQL語句以分號結尾
常用語句示范
作用:顯示版本號
作用:顯示時間
作用:顯示使用者
作用:創建數據庫
例如:CREATE DATABASE IF NOT EXISTS test1 DEFAULT CHARACTER SET =utf8
CREATE DATABASE test1 CHARACTER SET utf8
作用:顯示已經有的數據庫
作用:修改數據庫編碼
DROP {DATABASE} [IF EXISTS] db_name
作用:刪除數據庫
數據類型
- TINYINT
有符號型:-128-127(1字節)
無符號型:0-255 - SMALLINT(2字節)
[U]:-32768
[S]:0-65535 - MEDIUMINT (3字節)
- INT (4字節)
- BIGINT (8字節)
- FLOAT[(M,D)] M數字總數,D為小數點后的位數,7位小數左右
- DOUBLE[(M,D)]
- YEAR 1
- TIME 3
- DATE 3
- DATETIME 8
TIMESTAMP 4(一般不用,用數字來做,跨時區等問題)
- CHAR(M) M個字節 M的范圍0-255
- VARCHAR(M) L+1個字節 L<=M 0<=M<=65535
- TINYTEXT L+1字節 L<28
- MEDIUMTEXT
- LONGTEXT
- ENUM 可供選擇的集合
SET 集合
數據表
數據表是數據庫最重要的組成部分之一
行:記錄
列:字段
SQL語句
登錄后用USE db_name打開數據庫
用SELECT DATABASE(); 檢驗
CREATE TABLE [IF NOT EXISTS] table_name (
Column_name data_type,
….
)
比如:
CREATE TABLE tb1(
Username VARCHAR(20) NOT NULL,
Age TINYINT UNSIGNED NULL,
SALARY FLOAT(8,2) UNSIGNED
);
注:NOT NULL 標注屬性是否允許字段為空SHOW TABLES [FROM db_name] [LIKE ‘pattern’]
作用:顯示數據表(從某個庫中):注意當前數據庫不會改變SHOW COLUMNS FROM tbl_name
作用:顯示字段3. INSERT [INTO] tbl_name [(col_name,…)] VALUES(val,…)
作用:插入記錄,如果省略(col_name),需要賦值所有的值4. SELECT expr,…. FROM tbl_name
作用:查找記錄
SELECT * FROM tb1(*過濾字段)
屬性講解
- NULL | NOT NULL 值是否為空
- AUTO_INCREMENT :自動編號,與主鍵組合使用;
默認形況下,起始值為1,增量為1; - PRIMARY KEY :
主鍵約束,一張表一個主鍵
主鍵保證唯一性
主鍵自動NOT NULL
可以寫成KEY
比如:
CREATE TABLE tb3(
Id SMALLINT USSIGNED AUTO_INCREAMENT PRIMARY KEY,
Username VARCHAR(20) NOT NULL
); - UNIQUE KEY
唯一約束 - DEFAULT
默認值
舉例:
CREATE TABLE tb3(
Id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Username VARCHAR(20) NOT NULL,
Sex ENUM(‘MALE’,’FEMALE’,’secret’) DEFAULT ‘secret’**
);
約束
- 保持數據一致性,一對一或一對多
- 父表子表用一樣的引擎:InnoDB,禁止使用臨時表
- 數字的類型必須一樣,字符型長度可以不一樣
- 外鍵列和參照列必須創建索引,如果外鍵列沒有索引,MySQL自動創建
- 例子:
CREATE TABLE users(
Id SMALLINT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(20) NOT NULL,
PID INT,
FOREIGN KEY (PID) REFERENCES province (id)
);
Pid的類型必須和id相同 - 參照操作
CASCADE:從父表刪除或更新則自動刪除或更新子表中的行
SET NULL:從父表刪除或更新行,設置子表中的外鍵列為NULL。如果使用該選項,必須保證子表列沒有指定NOT NULL
RESTRICT:拒絕對父表的刪除或更新操作
NO ACTION:標準SQL的關鍵字,在MySQL中與RESTRICT相同
例子:
CREATE TABLE users(
Id SMALLINT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(20) NOT NULL,
PID INT,8
FOREIGN KEY (PID) REFERENCES province (id)ON DELETE CASCADE
);
轉載于:https://www.cnblogs.com/ustc-rjgc2017/p/8168716.html
總結
- 上一篇: 用cmd运行java可以javac不行(
- 下一篇: 梦到生双胞胎儿子是什么意思周公解梦