MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。
今天剛好又接觸到了MySQL,有一些相關(guān)知識和語句不常用會(huì)容易忘記,在這里記錄一下。
mysql登錄命令
# 方法一: >> mysql -uroot -p >> 然后回車 >>Enter password:輸入密碼 >>回車,登錄成功 # 方法二: >>mysql -u 用戶名 -p 密碼 >>回車
增加新用戶
grant 權(quán)限 on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by "密碼"
數(shù)據(jù)庫相關(guān)操作命令
# 創(chuàng)建數(shù)據(jù)庫 >>create database 數(shù)據(jù)庫名; # 刪除數(shù)據(jù)庫 >>drop database 數(shù)據(jù)庫名; # 查詢數(shù)據(jù)庫 >>show Databases; # 使用數(shù)據(jù)庫 >>use 數(shù)據(jù)庫名稱; # 進(jìn)入選定的數(shù)據(jù)庫后,查詢數(shù)據(jù)庫表 >>show tables; # 創(chuàng)建數(shù)據(jù)庫表 >>create table 表名(字段列表); # 刪除數(shù)據(jù)庫表 >>drop table 表名;
增刪改查語句
- 創(chuàng)建數(shù)據(jù)庫表
CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) UNIQUE NOT NULL, age SMALLINT );
- 插入數(shù)據(jù)
INSERT INTO users(id,name,age) VALUES(1,'Tom',18);
- 查詢數(shù)據(jù)
select * from users;
- 修改數(shù)據(jù)(將Tom的年齡修改為20)
update users set age=20 where name="Tom";
- 刪除數(shù)據(jù)
delete from users where name="Tom";
表連接查詢
- INNER JOIN:查詢出 A表 和B表 的 交集;
SELECT * FROM A INNER JOIN B ON A.id = B.id
- LEFT OUTER JOIN:查詢A表的完全集,而B表中匹配的則有值,沒匹配的以 null 值取代
SELECT * FROM A LEFT OUTER JOIN B ON A.id = B.id
- RIGHT OUTER JOIN:查詢B表的完全集,而A表中匹配的則有值,沒匹配的以 null 值取代
SELECT * FROM A RIGHT OUTER JOIN B ON A.id = B.id
數(shù)據(jù)類型
- 數(shù)值類型
MySQL支持所有標(biāo)準(zhǔn)SQL數(shù)值數(shù)據(jù)類型。 這些類型包括嚴(yán)格數(shù)值數(shù)據(jù)類型(INTEGER、SMALLINT、DECIMAL和NUMERIC), 以及近似數(shù)值數(shù)據(jù)類型(FLOAT、REAL和DOUBLE PRECISION)。
- 日期和時(shí)間類型
表示時(shí)間值的日期和時(shí)間類型為:DATETIME、DATE、TIMESTAMP、TIME、YEAR。
- 字符串類型
字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。 CHAR 和 VARCHAR 類型類似,但它們保存和檢索的方式不同。它們的最大長度和是否尾部空格被保留等方面也不同。在存儲(chǔ)或檢索過程中不進(jìn)行大小寫轉(zhuǎn)換。 BINARY 和 VARBINARY 類似于 CHAR 和 VARCHAR,不同的是它們包含二進(jìn)制字符串而不要非二進(jìn)制字符串。 也就是說,它們包含字節(jié)字符串而不是字符字符串。這說明它們沒有字符集,并且排序和比較基于列值字節(jié)的數(shù)值值。 BLOB 是一個(gè)二進(jìn)制大對象,可以容納可變數(shù)量的數(shù)據(jù)。有 4 種 BLOB 類型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它們區(qū)別在于可容納存儲(chǔ)范圍不同。 有 4 種 TEXT 類型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。對應(yīng)的這 4 種 BLOB 類型,可存儲(chǔ)的最大長度不同,可根據(jù)實(shí)際情況選擇。