net start mysql # 啟動 net stop mysql # 停止 netstat -na | findstr 3306 # 檢查端口監聽
mysql -u root -p123456 db_name # 登入 status; 或 \s # 查看運行環境 USE new_dbname; # 切換庫 SHOW DATABASES; # 列出所有庫 SHOW TABLES; # 列出當前庫所有表 SHOW CREATE TABLE tbl_name; # 顯示建表語句 DESC tbl_name; # 表結構描述
| 操作 | 語法範例 |
|---|---|
| 建庫/刪庫 | CREATE DATABASE db; DROP DATABASE IF EXISTS db; |
| 建表/刪表 | CREATE TABLE t (id INT, name CHAR(20)); DROP TABLE t; |
| 插入 | INSERT INTO t (id,name) VALUES (1,'zhangsan'); |
| 查詢 | SELECT * FROM t; SELECT id,name FROM t WHERE id=1 ORDER BY id DESC; |
| 更新 | UPDATE t SET name='lisi' WHERE id=1; |
| 刪除 | DELETE FROM t WHERE id=3; TRUNCATE TABLE t; -- 重置自增 ID |
| 用戶與權限 | CREATE USER u IDENTIFIED BY 'p'; GRANT ALL ON db.t TO u@'%'; |
| 表結構變更 | ALTER TABLE t ADD col INT AFTER name; ALTER TABLE t CHANGE old new INT; ALTER TABLE t RENAME TO t2; |
| 引擎切換 | SHOW CREATE TABLE t; ALTER TABLE t ENGINE=InnoDB; |
-- 建表帶外鍵 CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, nikename VARCHAR(20) NOT NULL UNIQUE); CREATE TABLE articles (id INT PRIMARY KEY AUTO_INCREMENT, content LONGTEXT, userid INT, CONSTRAINT fk_user FOREIGN KEY (userid) REFERENCES users(id) ON DELETE SET NULL); -- 多表查詢 SELECT a.id,a.content,u.* FROM users u, articles a WHERE u.id=10 AND a.userid=u.id ORDER BY a.id DESC;
ERROR 1366 (HY000): Incorrect string value: '\xB9\xD8\xD3\xF0' for column 'username'
mysql> STATUS; Server characterset: latin1 Db characterset: latin1 Client characterset: gbk
伺服器與庫預設 latin1,客戶端 gbk,導致中文寫入錯誤。
my.ini[client] default-character-set=gbk
[mysqld] default-character-set=gbkdb.optdefault-character-set=gbk
default-collation=gbk_chinese_cijdbc:mysql://ip/db?useUnicode=true&characterEncoding=gbkCREATE DATABASE db CHARACTER SET gbk;SET NAMES gbk; -- 或 utf8ALTER TABLE users CHARACTER SET gbk; -- 庫/表級 TRUNCATE TABLE users; -- 清空舊數據 ALTER TABLE users MODIFY username CHAR(20) CHARACTER SET gbk; -- 欄位級 INSERT INTO users VALUES (88,'中文'); -- 驗證成功
<%@ page contentType="text/html;charset=utf-8" %>SET NAMES 'UTF8'; SET CHARACTER SET UTF8;