MySQL數據庫常用命令
MySQL數據庫常用命令
一、操作數據庫命令
-
創建數據庫
create database [if not exists] school; -
刪除數據庫
drop database [if not exists] school; -
使用數據庫
use school; -
查看數據庫
show databases;
注:
- 如果數據庫名,表名或者字段名是特殊字符,需要帶``。
- sql關鍵字不區分大小寫。
- 所有符號都用英文。
?
二、創建數據庫表
CREATE TABLE student (
`id` INT(5) not null auto_increment COMMENT 'ID', --auto_increment指的是自增
`name` VARCHAR(20) COMMENT '名字',
`age` INT(5) NOT NULL COMMENT '年齡',
PRIMARY KEY(`id`) --主鍵id
)ENGINE=INNODB DEFAULT CHARSET =utf8;
三、修改數據庫
-
修改表名
alter table `class` rename as `student`; --結構:alter table `新表名` rename as `舊表名`; -
增加表的字段
alter table `class` add sex varchar(2); --結構:alter table `表名` add 字段名 屬性 -
字段重命名
alter table `class` change age age1 int(3); --結構:alter table `表名` change 舊字段名 新字段名 新的字段屬性 -
修改約束,將class表中的age字段屬性改為varchar(20)
alter table `class` modify age1 varchar(20); --結構:alter table `表名` modify 字段名 新的列屬性 -
刪除表的字段
alter table `calss` drop age1; --結構:alter table `表名` drop 要刪除的字段 -
刪除表
drop table [if exists] `class`; --結構:drop table `要刪除的表名`
四、DML語言
1、添加
insert into `class` (`id`,`name`,`age`,`sex`)
values(1,'sbc',21,'女'),(2,'shn',23,'男'); --id設置的自增也可以不寫
--結構:insert into `表名`(字段1,字段2,字段3,字段4) values (值1),(值2),(值3),(值4)
注意:字段與后面的值要一一對應
2、修改
update `class` set `name`='whn',age=18 where id=2;
--結構:update `表名` set 字段名=值 ... where 條件
3、刪除(delete命令 truncate命令)
delete from `class`; --刪除所有數據
delete from `class` where id=1; --刪除指定數據
truncate `class`; --清空表
五、DQL查詢
1、完整語法:
SELECT
-- 1. 指定要查詢的列(字段)
[DISTINCT] column1, column2, ..., --DISTINCT去除重復行(作用于所有 SELECT 列)
-- 可使用表達式、函數、別名等
expression AS alias_name, --AS列或表的別名(可省略 AS,但建議保留提高可讀性)
COUNT(*) AS total
FROM
-- 2. 指定數據來源(表、視圖、子查詢等)
table1 [AS t1]
-- 多表連接(JOIN)
[INNER | LEFT | RIGHT | FULL OUTER] JOIN table2 [AS t2]
ON join_condition
WHERE
-- 3. 過濾行(在分組前篩選)
-- 不能使用聚合函數(如 COUNT, SUM)
condition1 AND/OR condition2
GROUP BY
-- 4. 按指定列分組(用于聚合函數)
column1, column2
-- 可配合 ROLLUP 生成匯總行(MySQL 支持)
[WITH ROLLUP]
HAVING
-- 5. 過濾分組后的結果(可使用聚合函數)
aggregate_condition
ORDER BY
-- 6. 對結果排序
column1 [ASC | DESC],
column2 [ASC | DESC]
LIMIT
-- 7. 限制返回的行數(MySQL 特有,分頁常用)
offset, row_count
-- 或簡寫:LIMIT row_count(從第0行開始)
-- 或:LIMIT row_count OFFSET offset
;
各子句執行順序(邏輯順序,非書寫順序)
實際 SQL 引擎按以下邏輯處理(非常重要!):
FROM→ 確定數據源WHERE→ 過濾原始行GROUP BY→ 分組HAVING→ 過濾分組SELECT→ 計算字段、去重(DISTINCT)ORDER BY→ 排序LIMIT→ 截取結果
案例:
-- 查詢每個部門中年齡大于25歲的員工人數,
-- 只顯示人數 >= 2 的部門,
-- 按人數降序排列,取前3個部門
SELECT
department AS 部門,
COUNT(*) AS 員工人數,
AVG(age) AS 平均年齡
FROM
employees e
INNER JOIN departments d ON e.dept_id = d.id
WHERE
e.age > 25
GROUP BY
department
HAVING
COUNT(*) >= 2
ORDER BY
員工人數 DESC
LIMIT 0, 3;

浙公網安備 33010602011771號