常用字段類型長度
CHAR:0-255
VARCHAR:0-65535
TEXT:0-65535
LONGTEXT:0-4294967295
連接與庫操作
mysql -u root -p
mysql -P 3306 -uroot -p123456
CREATE DATABASE db;
SHOW DATABASES;
DROP DATABASE db;
USE db;
SELECT DATABASE();
SHOW TABLES;
導入導出(解決編碼)
-- 導入
mysql -uroot -p --default-character-set=utf8 db < dump.sql
-- 導出
mysqldump -uroot -p db table > dump.sql
表操作
CREATE TABLE MyClass(id INT PRIMARY KEY AUTO_INCREMENT, name CHAR(20), ...);
DESC MyClass;
RENAME TABLE old TO new;
DROP TABLE name;
TRUNCATE TABLE name; -- 高效清空
數據增刪改
INSERT INTO MyClass VALUES (1,'Tom',96.45);
UPDATE MyClass SET sex='f' WHERE name='hyq';
DELETE FROM MyClass WHERE id=1;
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE mytable;
批量替換字符串
UPDATE table SET col = REPLACE(col, '舊字符', '新字符') WHERE 條件;
-- 示例:去除回車換行
UPDATE jo1 SET 內容 = REPLACE(內容, CHAR(13)+CHAR(10), '');
字段操作
ALTER TABLE t ADD col INT DEFAULT 0;
ALTER TABLE t DROP COLUMN col;
ALTER TABLE t MODIFY col VARCHAR(60);
ALTER TABLE t CHANGE old_col new_col VARCHAR(20);
索引
CREATE INDEX idx_name ON table(col);
-- 大量導入前刪除索引,導入後重建,提速
查詢技巧
SELECT * FROM MyClass ORDER BY id LIMIT 0,2;
SELECT COUNT(*) FROM table;
SELECT @@VERSION;
SHOW VARIABLES LIKE 'character%';
編碼設置四級
- 服務器級:
my.ini default-character-set=utf8 character_set_server=utf8
- 庫級:
CREATE DATABASE db DEFAULT CHARSET utf8;
- 表級:
CREATE TABLE ... DEFAULT CHARSET=utf8;
- 列級:
col VARCHAR(20) CHARACTER SET utf8
常用模糊查詢/刪除
SELECT * FROM forum WHERE content LIKE '我%';
DELETE FROM forum WHERE id LIKE '%';