MySQL基礎(chǔ)

MySQL參考文檔:https://dev.mysql.com/doc/refman/8.0/en/

新建用戶并獲取全部權(quán)限:
GRANT ALL ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

常用SQL語法:

創(chuàng)建數(shù)據(jù)庫
CREATE database database_name;

顯示所有數(shù)據(jù)庫
show databases;                 

進(jìn)入數(shù)據(jù)庫 
use database_name; 

顯示數(shù)據(jù)庫中的表                           
show tables;   

查看數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu)                      
DESC table_name; 

刷新數(shù)據(jù)庫信息                           
flush privileges;      

查看數(shù)據(jù)表的內(nèi)容
SELECT * FROM 表名稱;
SELECT 列名稱 FROM 表名稱;
SELECT 列名稱 FROM 表名稱 WHERE 列 運(yùn)算符 值;
SELECT * FROM table_name;

創(chuàng)建數(shù)據(jù)表
CREATE TABLE 表名稱
(
列名稱1 數(shù)據(jù)類型,
列名稱2 數(shù)據(jù)類型,
列名稱3 數(shù)據(jù)類型,
....
);

CREATE TABLE table_name(
    -> id INT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
    -> username VARCHAR(50) NOT NULL,
    -> password VARCHAR(20) NOT NULL,
    -> PRIMARY KEY (id)
    -> ); 

在數(shù)據(jù)表中添加數(shù)據(jù)
INSERT INTO 表名稱 VALUES (值1, 值2,....);
INSERT INTO 表名稱 (列1, 列2,...) VALUES (值1, 值2,....);
INSERT INTO table_name VALUES('', '', '',……);

刪除數(shù)據(jù)
DELETE FROM 表名稱 WHERE 列名稱 = 值;
DELETE FROM table_name WHERE id = '';

更新數(shù)據(jù)
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值;
UPDATE table_name SET username = '', password = '' WHERE id = '';

范圍查詢
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

*SQL語法對大小寫不敏感,但關(guān)鍵字通常采用大寫形式。

SQL常見約束:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

NOT NULL 約束強(qiáng)制列不接受 NULL 值。

NOT NULL 約束強(qiáng)制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。

UNIQUE 約束唯一標(biāo)識數(shù)據(jù)庫表中的每條記錄。

UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。

PRIMARY KEY 擁有自動定義的 UNIQUE 約束。

值得注意的是:每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。

PRIMARY KEY 約束唯一標(biāo)識數(shù)據(jù)庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個表都應(yīng)該有一個主鍵,并且每個表只能有一個主鍵。

一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

FOREIGN KEY 約束用于預(yù)防破壞表之間連接的動作。

FOREIGN KEY 約束也能防止非法數(shù)據(jù)插入外鍵列,因?yàn)樗仨毷撬赶虻哪莻€表中的值之一。

CHECK 約束用于限制列中的值的范圍。

如果對單個列定義 CHECK 約束,那么該列只允許特定的值。

如果對一個表定義 CHECK 約束,那么此約束會在特定的列中對值進(jìn)行限制。

DEFAULT 約束用于向列中插入默認(rèn)值。

如果沒有規(guī)定其他的值,那么會將默認(rèn)值添加到所有的新記錄。

MySQL 數(shù)據(jù)類型

在 MySQL 中,有三種主要的類型:文本、數(shù)字和日期/時(shí)間類型。

Text 類型:
數(shù)據(jù)類型 描述
CHAR(size) 保存固定長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的長度。最多 255 個字符。
VARCHAR(size) 保存可變長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的最大長度。最多 255 個字符。注釋:如果值的長度大于 255,則被轉(zhuǎn)換為 TEXT 類型。
TINYTEXT 存放最大長度為 255 個字符的字符串。
TEXT 存放最大長度為 65,535 個字符的字符串。
BLOB 用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字節(jié)的數(shù)據(jù)。
MEDIUMTEXT 存放最大長度為 16,777,215 個字符的字符串。
MEDIUMBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字節(jié)的數(shù)據(jù)。
LONGTEXT 存放最大長度為 4,294,967,295 個字符的字符串。
LONGBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字節(jié)的數(shù)據(jù)。
ENUM(x,y,z,etc.) 允許你輸入可能值的列表??梢栽?ENUM 列表中列出最大 65535 個值。如果列表中不存在插入的值,則插入空值。注釋:這些值是按照你輸入的順序存儲的。可以按照此格式輸入可能的值:ENUM('X','Y','Z')
SET 與 ENUM 類似,SET 最多只能包含 64 個列表項(xiàng),不過 SET 可存儲一個以上的值。
Number 類型:
數(shù)據(jù)類型 描述
TINYINT(size) -128 到 127 常規(guī)。0 到 255 無符號*。在括號中規(guī)定最大位數(shù)。
SMALLINT(size) -32768 到 32767 常規(guī)。0 到 65535 無符號*。在括號中規(guī)定最大位數(shù)。
MEDIUMINT(size) -8388608 到 8388607 普通。0 to 16777215 無符號*。在括號中規(guī)定最大位數(shù)。
INT(size) -2147483648 到 2147483647 常規(guī)。0 到 4294967295 無符號*。在括號中規(guī)定最大位數(shù)。
BIGINT(size) -9223372036854775808 到 9223372036854775807 常規(guī)。0 到 18446744073709551615 無符號*。在括號中規(guī)定最大位數(shù)。
FLOAT(size,d) 帶有浮動小數(shù)點(diǎn)的小數(shù)字。在括號中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點(diǎn)右側(cè)的最大位數(shù)。
DOUBLE(size,d) 帶有浮動小數(shù)點(diǎn)的大數(shù)字。在括號中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點(diǎn)右側(cè)的最大位數(shù)。
DECIMAL(size,d) 作為字符串存儲的 DOUBLE 類型,允許固定的小數(shù)點(diǎn)。

* 這些整數(shù)類型擁有額外的選項(xiàng) UNSIGNED。通常,整數(shù)可以是負(fù)數(shù)或正數(shù)。如果添加 UNSIGNED 屬性,那么范圍將從 0 開始,而不是某個負(fù)數(shù)。

Date 類型:
數(shù)據(jù)類型 描述
DATE() 日期。格式:YYYY-MM-DD注釋:支持的范圍是從 '1000-01-01' 到 '9999-12-31'
DATETIME() *日期和時(shí)間的組合。格式:YYYY-MM-DD HH:MM:SS注釋:支持的范圍是從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
TIMESTAMP() *時(shí)間戳。TIMESTAMP 值使用 Unix 紀(jì)元('1970-01-01 00:00:00' UTC) 至今的描述來存儲。格式:YYYY-MM-DD HH:MM:SS注釋:支持的范圍是從 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
TIME() 時(shí)間。格式:HH:MM:SS 注釋:支持的范圍是從 '-838:59:59' 到 '838:59:59'
YEAR() 2 位或 4 位格式的年。注釋:4 位格式所允許的值:1901 到 2155。2 位格式所允許的值:70 到 69,表示從 1970 到 2069。

* 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它們的工作方式很不同。在 INSERT 或 UPDATE 查詢中,TIMESTAMP 自動把自身設(shè)置為當(dāng)前的日期和時(shí)間。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 8,069評論 5 115
  • 啟動 mysql$ mysql -uroot -p -P3306 -h127.0.0.1-u ,--user=na...
    假裝正在輸入閱讀 767評論 0 6
  • 數(shù)據(jù)庫范式 數(shù)據(jù)庫范式就是在設(shè)計(jì)關(guān)系型數(shù)據(jù)庫時(shí),遵循的規(guī)范,這樣就能設(shè)計(jì)出比較合理的關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫有6...
    小奚有話說閱讀 716評論 0 1
  • Thank:當(dāng)天感恩的人或事 Connect:連接了哪些知識,或與哪些值得接觸的人接觸了。 早上起來看到高中同學(xué)們...
    alucardzhou閱讀 68評論 0 0
  • 你有沒有一種感觸?即使你身處熱鬧無比的聚會,你依舊可以感覺到自己的孤獨(dú),融入不進(jìn)這樣熱鬧的環(huán)境,感覺到自己不能跟隨...
    她說她叫羊閱讀 477評論 0 0

友情鏈接更多精彩內(nèi)容