首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 數據庫操作語句大全:登錄、DDL、DML、權限、備份、批處理實戰速查

     編輯:MySQL 綜合教學

MySQL 核心操作語句完整速查手冊

登錄與基礎導航

# 本地登錄
mysql -u root -p

# 遠程登錄
mysql -h 110.110.110.110 -u root -p'abcd123'

# 退出
EXIT;  或  \q

# 查看版本/日期
SELECT VERSION(), CURRENT_DATE();

數據庫級操作

SHOW DATABASES;
CREATE DATABASE db_name;
DROP DATABASE db_name;
USE db_name;
SELECT DATABASE();  -- 確認當前庫

表級操作

SHOW TABLES;
DESC table_name;  -- 結構

CREATE TABLE mytable (
  name VARCHAR(20),
  sex CHAR(1),
  birth DATE,
  birthaddr VARCHAR(20)
);

DROP TABLE table1, table2;  -- 可一次刪多表

-- 修改表結構
ALTER TABLE mytable ADD COLUMN single CHAR(1);
ALTER TABLE mytable DROP COLUMN single;

數據操作 (DML)

-- 插入
INSERT INTO mytable VALUES ('abccs','f','1977-07-07','china');
INSERT INTO mytable (name, sex) VALUES ('mary','f');  -- 指定列

-- 批量導入文本文件(字段用 Tab 分隔)
LOAD DATA LOCAL INFILE 'mytable.txt' INTO TABLE mytable;

-- 查詢
SELECT * FROM mytable;
SELECT name, birth FROM mytable ORDER BY birth DESC;
SELECT * FROM mytable WHERE sex='f' AND birthaddr='china';

-- 更新
UPDATE mytable SET birth='1973-09-02' WHERE name='tom';

-- 刪除
DELETE FROM mytable WHERE name='abc';

聚合與分組

SELECT COUNT(*) FROM mytable;
SELECT sex, COUNT(*) FROM mytable GROUP BY sex;

多表連接查詢

-- 隱式內連接
SELECT name, sex, title 
FROM mytable, title 
WHERE name = writer AND name = 'abccs';

-- 顯式內連接(推薦)
SELECT m.name, m.sex, t.title
FROM mytable m
INNER JOIN title t ON m.name = t.writer
WHERE m.name = 'abccs';

用戶與權限

-- 創建用戶並授權(僅本地訪問,安全)
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';

-- 移除密碼
GRANT SELECT ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';

-- 修改密碼
mysqladmin -u root -p'oldpass' password 'newpass';

備份與恢復

# 邏輯備份
mysqldump --opt db_name > backup.sql

# 恢復
mysql -u root -p db_name < backup.sql

# 批處理執行腳本
mysql -u root -p < batch.sql
mysql -u root -p < batch.sql | more
mysql -u root -p < batch.sql > output.txt

常用函數速查

分類函數示例
字符串CONCAT, SUBSTRING, TRIM, UPPER/LOWERCONCAT('a','b') → 'ab'
數學ABS, ROUND, FLOOR, RANDROUND(3.1415,2) → 3.14
日期NOW, DATE_FORMAT, DATEDIFFDATE_FORMAT(NOW(),'%Y-%m-%d')
條件IF, CASE, COALESCEIF(score>60,'pass','fail')
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved