MySql新手入門的基本操作匯總
庫(kù)操作
查詢
1.SHOW DATABASE; ----查詢所有數(shù)據(jù)庫(kù)
2.SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名稱; ----查詢某個(gè)數(shù)據(jù)庫(kù)的創(chuàng)建模式
3.SHOW CREATE DATABASE xxx; ----查詢xxx數(shù)據(jù)庫(kù)的創(chuàng)建模式
創(chuàng)建
1.CREATE DATABASE 數(shù)據(jù)庫(kù)名稱; ----創(chuàng)建數(shù)據(jù)庫(kù)
注:不可以創(chuàng)建一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)
2.CREATE DATABASE IS NOT EXISTS 數(shù)據(jù)庫(kù)名稱; ----判斷數(shù)據(jù)庫(kù)是否存在,不存在就創(chuàng)建
3.CREATE DATABASE 數(shù)據(jù)庫(kù)名稱 CHARACTER SET 字符集名稱; ----創(chuàng)建數(shù)據(jù)庫(kù)并指定字符集,一般使用utf-8
修改
ALTER DATABASE 數(shù)據(jù)庫(kù)名稱 CHARACTER SET 字符集名稱; ----修改數(shù)據(jù)庫(kù)的字符集
刪除
1.DROP DATABASE 數(shù)據(jù)庫(kù)名稱; ----刪除數(shù)據(jù)庫(kù)
2.DROP DATABASE IS EXISTS 數(shù)據(jù)庫(kù)名稱; ----先判斷是否存在再刪除
使用
SELETE DATABASE (); ----查詢當(dāng)前正在使用的數(shù)據(jù)庫(kù)
USE 數(shù)據(jù)庫(kù)名稱; ----使用指定數(shù)據(jù)庫(kù)
表結(jié)構(gòu)
表的查詢
1.SHOW TABLES; ----查詢數(shù)據(jù)庫(kù)中所有的表
2.DESC 表名; ----查看指定表的結(jié)構(gòu)
3.SHOW TABLE STATUS FROM 庫(kù)名 LIKE ‘表名'; ----查詢表字符集(like沒有特別情況下和"="號(hào)是等價(jià)的)
創(chuàng)建表
CREATE TABLE 表名(
列名1 數(shù)據(jù)類型1 約束,
列名2 數(shù)據(jù)類型2 約束,
…
列名n 數(shù)據(jù)類型n約束
);
int:整數(shù)類型
- age int
double:小數(shù)類型
- score double(5,2)
- price double
date:日期,只包含年月日 yyyy-MM-dd
datetime:日期,包含年月日時(shí)分秒 yyyy-MM-dd HH:mm:ss
timestamp:時(shí)間戳類型 包含年月日時(shí)分秒 yyyy-MM-dd HH:mm:ss
- 如果將來(lái)不給這個(gè)字段賦值,或賦值為null,則默認(rèn)使用當(dāng)前的系統(tǒng)時(shí)間,來(lái)自動(dòng)賦值
varchar:字符串
- name varchar(20):姓名最大20個(gè)字符
- zhangsan 8個(gè)字符 張三 2個(gè)字符
CREATE TABLE 要?jiǎng)?chuàng)建的表名 LIKE 被復(fù)制的表名; ----復(fù)制表
修改表
1.ALTER TABLE 表名 RENAME TO 新的表名; ----修改表名
2.ALTER TABLE 表名 CHARACTER SET 字符集名稱; ----修改表的字符集
**3.**ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型; ----添加新的一列
4.ALTER TABLE 表名 MODIFY 列名 新列名 新數(shù)據(jù)類型; ----修改新列名和數(shù)據(jù)類型
表中刪除操作
1.DROP TABLE 表名; ----刪除表
2.ALTER TABLE 表名 DROP 列名; ----刪除列
表中添加數(shù)據(jù)-INSERT語(yǔ)句
1.INSERT INTO 表名(列名1,列名2,…) VALUES (值1,值2,…); ----向表中添
加數(shù)據(jù)
2.SELECT * FROM product; ----查看表中所有數(shù)據(jù)
3.INSERT INTO 表名 VALUES (值1,值2,值3,…); ----默認(rèn)給全部列添加數(shù)據(jù)
4.INSERT INTO 表名 VALUES (值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…); ----批量添加數(shù)據(jù)
注:
- 列名和值的數(shù)量以及數(shù)據(jù)類型要對(duì)應(yīng)
- 除了數(shù)字類型,其他數(shù)據(jù)類型的數(shù)據(jù)都需要加引號(hào)(單引雙引都可以,推薦單引)
表中修改數(shù)據(jù)-updata
UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,… [where 條件];
注:
- 修改語(yǔ)句中必須加上條件,如果不加條件則修改所有數(shù)據(jù)
表中刪除數(shù)據(jù)-delete
DELETE FROM 表名 [WHERE 條件];
注:
- 和修改數(shù)據(jù)是一樣的
單表查詢
查詢語(yǔ)法:
select 字段列表 from 表名列表 where 條件列表 group by 分組字段 having 分組之后的條件 order by 排序 limit 分頁(yè)限定
SELECT 列名1,列名2,… FROM 表名; ----多個(gè)字段查詢
SELECT DISTINCT 列名1,列名2,… FROM 表名; ----去重查詢,但只有所查詢列都重復(fù)才會(huì)去重
SELECT 列名1 運(yùn)算符(+ - * /) 列名2 FROM 表名; ----四則運(yùn)算
SELECT 列名1,列名2,… AS 別名 FROM 表名; ----as用來(lái)起別名,簡(jiǎn)單易懂
條件查詢
條件分類
符號(hào) | 功能 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN … AND … | 在某個(gè)范圍之內(nèi)(都包含) |
IN(…) | 多選一 |
LIKE 占位符 | 模糊查詢 _單個(gè)任意字符 %多個(gè)任意字符 |
IS NULL | 是NULL |
IS NOT NULL | 不是NULL |
AND 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非,不是 |
聚合函數(shù)
函數(shù)名稱及其功能
函數(shù)名 | 功能 |
---|---|
count(列名) | 統(tǒng)計(jì)數(shù)量(一般選用不為null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均值 |
聚合函數(shù)語(yǔ)法
-- 標(biāo)準(zhǔn)語(yǔ)法 SELECT 函數(shù)名(列名) FROM 表名 [WHERE 條件]; -- 計(jì)算product表中總記錄條數(shù) SELECT COUNT(*) FROM product; -- 獲取最高價(jià)格 SELECT MAX(price) FROM product; -- 獲取最高價(jià)格的商品名稱 SELECT NAME,price FROM product WHERE price = (SELECT MAX(price) FROM product); -- 獲取最低庫(kù)存 SELECT MIN(stock) FROM product; -- 獲取最低庫(kù)存的商品名稱 SELECT NAME,stock FROM product WHERE stock = (SELECT MIN(stock) FROM product); -- 獲取總庫(kù)存數(shù)量 SELECT SUM(stock) FROM product; -- 獲取品牌為蘋果的總庫(kù)存數(shù)量 SELECT SUM(stock) FROM product WHERE brand='蘋果'; -- 獲取品牌為小米的平均商品價(jià)格 SELECT AVG(price) FROM product WHERE brand='小米';
排序查詢
分類
關(guān)鍵字 | 功能 |
---|---|
ORDER BY 列名1 排序方式1,列名2 排序方式2 | 對(duì)指定列排序,ASC升序(默認(rèn)的) DESC降序 |
- 注:多個(gè)排序條件,當(dāng)前邊的條件值一樣時(shí),才會(huì)判斷第二條件
排序語(yǔ)法
-- 標(biāo)準(zhǔn)語(yǔ)法 SELECT 列名 FROM 表名 [WHERE 條件] ORDER BY 列名1 排序方式1,列名2 排序方式2; -- 按照庫(kù)存升序排序 SELECT * FROM product ORDER BY stock ASC;
分組查詢
-- 標(biāo)準(zhǔn)語(yǔ)法 SELECT 列名 FROM 表名 [WHERE 條件] GROUP BY 分組列名 [HAVING 分組后條件過濾] [ORDER BY 排序列名 排序方式];
分頁(yè)查詢
-- 標(biāo)準(zhǔn)語(yǔ)法 SELECT 列名 FROM 表名 [WHERE 條件] GROUP BY 分組列名 [HAVING 分組后條件過濾] [ORDER BY 排序列名 排序方式] LIMIT 開始索引,查詢條數(shù); -- 公式:開始索引 = (當(dāng)前頁(yè)碼-1) * 每頁(yè)顯示的條數(shù)
約束
1.約束的概念和分類
約束的概念
- 對(duì)表中的數(shù)據(jù)進(jìn)行限定,保證數(shù)據(jù)的正確性、有效性、完整性!
約束的分類
約束 | 說(shuō)明 |
---|---|
PRIMARY KEY | 主鍵約束 |
PRIMARY KEY AUTO_INCREMENT | 主鍵、自動(dòng)增長(zhǎng) |
UNIQUE | 唯一約束 |
NOT NULL | 非空約束 |
FOREIGN KEY | 外鍵約束 |
FOREIGN KEY ON UPDATE CASCADE | 外鍵級(jí)聯(lián)更新 |
FOREIGN KEY ON DELETE CASCADE | 外鍵級(jí)聯(lián)刪除 |
2.主鍵約束
主鍵約束特點(diǎn)
- 主鍵約束包含:非空和唯一兩個(gè)功能
- 一張表只能有一個(gè)列作為主鍵
- 主鍵一般用于表中數(shù)據(jù)的唯一標(biāo)識(shí)
建表時(shí)添加主鍵約束
-- 標(biāo)準(zhǔn)語(yǔ)法 CREATE TABLE 表名( 列名 數(shù)據(jù)類型 PRIMARY KEY, 列名 數(shù)據(jù)類型, ... ); -- 創(chuàng)建student表 CREATE TABLE student( id INT PRIMARY KEY -- 給id添加主鍵約束 ); -- 添加數(shù)據(jù) INSERT INTO student VALUES (1),(2); -- 主鍵默認(rèn)唯一,添加重復(fù)數(shù)據(jù),會(huì)報(bào)錯(cuò) INSERT INTO student VALUES (2); -- 主鍵默認(rèn)非空,不能添加null的數(shù)據(jù) INSERT INTO student VALUES (NULL); -- 查詢student表 SELECT * FROM student; -- 查詢student表詳細(xì) DESC student;
刪除主鍵
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 DROP PRIMARY KEY; -- 刪除主鍵 ALTER TABLE student DROP PRIMARY KEY;
建表后單獨(dú)添加主鍵
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型 PRIMARY KEY; -- 添加主鍵 ALTER TABLE student MODIFY id INT PRIMARY KEY;
3.主鍵自動(dòng)增長(zhǎng)約束
建表時(shí)添加主鍵自增約束
-- 標(biāo)準(zhǔn)語(yǔ)法 CREATE TABLE 表名( 列名 數(shù)據(jù)類型 PRIMARY KEY AUTO_INCREMENT, 列名 數(shù)據(jù)類型, ... ); -- 創(chuàng)建student2表 CREATE TABLE student2( id INT PRIMARY KEY AUTO_INCREMENT -- 給id添加主鍵自增約束 ); -- 添加數(shù)據(jù) INSERT INTO student2 VALUES (1),(2); -- 添加null值,會(huì)自動(dòng)增長(zhǎng) INSERT INTO student2 VALUES (NULL),(NULL); -- 查詢student2表 SELECT * FROM student2; -- student2表詳細(xì) DESC student2;
刪除自動(dòng)增長(zhǎng)
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型; -- 刪除自動(dòng)增長(zhǎng) ALTER TABLE student2 MODIFY id INT;
建表后單獨(dú)添加自動(dòng)增長(zhǎng)
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型 AUTO_INCREMENT; -- 添加自動(dòng)增長(zhǎng) ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;
4.唯一約束
建表時(shí)添加唯一約束
-- 標(biāo)準(zhǔn)語(yǔ)法 CREATE TABLE 表名( 列名 數(shù)據(jù)類型 UNIQUE, 列名 數(shù)據(jù)類型, ... ); -- 創(chuàng)建student3表 CREATE TABLE student3( id INT PRIMARY KEY AUTO_INCREMENT, tel VARCHAR(20) UNIQUE -- 給tel列添加唯一約束 ); -- 添加數(shù)據(jù) INSERT INTO student3 VALUES (NULL,'18888888888'),(NULL,'18666666666'); -- 添加重復(fù)數(shù)據(jù),會(huì)報(bào)錯(cuò) INSERT INTO student3 VALUES (NULL,'18666666666'); -- 查詢student3數(shù)據(jù)表 SELECT * FROM student3; -- student3表詳細(xì) DESC student3;
刪除唯一約束
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 DROP INDEX 列名; -- 刪除唯一約束 ALTER TABLE student3 DROP INDEX tel;
建表后單獨(dú)添加唯一約束
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型 UNIQUE; -- 添加唯一約束 ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;
5.非空約束
建表時(shí)添加非空約束
-- 標(biāo)準(zhǔn)語(yǔ)法 CREATE TABLE 表名( 列名 數(shù)據(jù)類型 NOT NULL, 列名 數(shù)據(jù)類型, ... ); -- 創(chuàng)建student4表 CREATE TABLE student4( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL -- 給name添加非空約束 ); -- 添加數(shù)據(jù) INSERT INTO student4 VALUES (NULL,'張三'),(NULL,'李四'); -- 添加null值,會(huì)報(bào)錯(cuò) INSERT INTO student4 VALUES (NULL,NULL);
刪除非空約束
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型; -- 刪除非空約束 ALTER TABLE student4 MODIFY NAME VARCHAR(20);
建表后單獨(dú)添加非空約束
-- 標(biāo)準(zhǔn)語(yǔ)法 ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型 NOT NULL -- 添加非空約束 ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;
外鍵約束
外鍵約束的格式(一般在創(chuàng)建表的最后寫這些)
CONSTRAINT 外鍵名 FOREIGN KEY (本表外鍵列名) REFERENCES 主表名(主表主鍵列名)
總結(jié)
到此這篇關(guān)于MySql新手入門的基本操作匯總的文章就介紹到這了,更多相關(guān)MySql基本操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL里實(shí)現(xiàn)類似SPLIT的分割字符串的函數(shù)
SQL對(duì)字符串的處理能力比較弱,比如我要循環(huán)遍歷象1,2,3,4,5這樣的字符串,如果用數(shù)組的話,遍歷很簡(jiǎn)單,但是T-SQL不支持?jǐn)?shù)組,所以處理下來(lái)比較麻煩2012-09-09MySQL?SQL性能分析之慢查詢?nèi)罩尽xplain使用詳解
這篇文章主要介紹了MySQL?SQL性能分析?慢查詢?nèi)罩?、explain使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04mysql啟動(dòng)服務(wù)報(bào)1058錯(cuò)誤的解決方法
這篇文章主要介紹了mysql啟動(dòng)服務(wù)報(bào)1058錯(cuò)誤的解決方法,需要的朋友可以參考下2014-03-03MySQL中l(wèi)imit語(yǔ)法及用法小結(jié)
LIMIT 是 MySQL 中的一個(gè)特殊關(guān)鍵字,用于指定查詢結(jié)果從哪條記錄開始顯示,一共顯示多少條記錄,本文重點(diǎn)介紹MySQL中l(wèi)imit語(yǔ)法及用法小結(jié),感興趣的朋友一起看看吧2023-10-10Mysql中強(qiáng)大的group?by語(yǔ)句解析
這篇文章主要介紹了Mysql中強(qiáng)大的group?by語(yǔ)句解析,GROUP?BY?語(yǔ)句根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。在分組的列上我們可以使用?COUNT,?SUM,?AVG,等函數(shù),需要的朋友可以參考下2023-07-07