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

MySQL/MariaDB 基礎 DDL/DML 速查手冊:建庫建表、字段變更、視圖索引

     編輯:MySQL 綜合教學

HeidiSQL 實測可用的核心 SQL 語句集合

持續更新的實戰筆記,涵蓋庫表結構管理、字段變更、索引視圖操作,適合日常開發快速查閱。

庫與表創建


-- 建庫(指定字符集)
CREATE DATABASE IF NOT EXISTS verifyidear CHARACTER SET UTF8;

-- 建表(指定引擎、自增、主鍵)
CREATE TABLE IF NOT EXISTS verifyidear.MyTable (
  ID BIGINT(8) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  Updatetime DATETIME,
  Name VARCHAR(128)
) ENGINE=MyISAM;

-- 切換庫
USE verifyidear;

字段結構變更(DDL)


-- 新增字段(指定位置、默認值、註釋)
ALTER TABLE MyTable ADD COLUMN IF NOT EXISTS adcolumn VARCHAR(64) DEFAULT '' COMMENT '備註' AFTER Updatetime;

-- 刪除字段
ALTER TABLE MyTable DROP COLUMN IF EXISTS adcolumn;

-- 修改表註釋
ALTER TABLE MyTable COMMENT '測試用表';

-- 修改字段:名稱、類型、默認值、排序規則、註釋、位置(CHANGE 需給舊名新名)
ALTER TABLE MyTable CHANGE COLUMN `Name` `Name` VARCHAR(128) DEFAULT NULL COLLATE 'utf8_general_ci' COMMENT '用戶名' AFTER `Updatetime`;

-- 修改字段屬性(不改名用 MODIFY)
ALTER TABLE MyTable MODIFY COLUMN Name VARCHAR(128) DEFAULT NULL COLLATE 'utf8_general_ci' COMMENT '用戶名' AFTER Updatetime;

索引操作


-- 創建普通索引
CREATE INDEX idx_name ON MyTable(Name);

-- 創建唯一索引
CREATE UNIQUE INDEX uk_email ON MyTable(Email);

-- 創建組合索引(最左前綴原則)
CREATE INDEX idx_name_email ON MyTable(Name, Email);

-- 刪除索引
DROP INDEX idx_name ON MyTable;

視圖操作


-- 創建視圖
CREATE VIEW v_active_users AS SELECT ID, Name FROM MyTable WHERE Updatetime > DATE_SUB(NOW(), INTERVAL 30 DAY);

-- 查看視圖定義
SHOW CREATE VIEW v_active_users;

-- 刪除視圖
DROP VIEW IF EXISTS v_active_users;

數據操作(DML)常用模式


-- 插入(指定列、多行、忽略錯誤)
INSERT INTO MyTable (Name, Updatetime) VALUES ('張三', NOW()), ('李四', NOW());
INSERT IGNORE INTO MyTable (ID, Name) VALUES (1, '重複鍵不報錯');

-- 更新(帶條件、限制行數)
UPDATE MyTable SET Name='王五' WHERE ID=1;
UPDATE MyTable SET Name='趙六' WHERE ID>10 LIMIT 5;

-- 刪除(帶條件、限制行數)
DELETE FROM MyTable WHERE ID=1;
DELETE FROM MyTable WHERE Updatetime < '2020-01-01' LIMIT 100;

-- 查詢(分頁、排序、去重)
SELECT DISTINCT Name FROM MyTable ORDER BY Updatetime DESC LIMIT 10 OFFSET 20;

事務控制


START TRANSACTION;
INSERT INTO MyTable (Name) VALUES ('事務測試');
UPDATE MyTable SET Name='回滾測試' WHERE ID=999;
COMMIT;  -- 或 ROLLBACK;

權限管理速查


-- 創建用戶
CREATE USER 'app'@'%' IDENTIFIED BY 'password';

-- 授權
GRANT SELECT, INSERT, UPDATE, DELETE ON verifyidear.* TO 'app'@'%';
FLUSH PRIVILEGES;

-- 查看權限
SHOW GRANTS FOR 'app'@'%';

-- 撤銷
REVOKE INSERT ON verifyidear.* FROM 'app'@'%';

建議收藏為代碼片段,IDE 內直接調用,減少語法錯誤與查閱時間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved