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

MySQL 基礎知識速查手冊:建表、資料型別、約束、DDL 操作全覽

     編輯:MySQL 綜合教學

MySQL 基礎知識速查手冊:建表、資料型別、約束、DDL 操作全覽

整理自實戰筆記,涵蓋建表語法、支援的資料型別、表結構修改、刪除、重命名,以及五大約束(NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK)的建立與修改範例,適合開發快速查閱。

一、建表基礎範例

CREATE TABLE test (
  test_id     INT,
  test_price  DECIMAL,
  test_name   VARCHAR(255) DEFAULT 'Xxx',
  test_desc   TEXT,
  test_img    BLOB,
  test_date   DATETIME
);

二、MySQL 支援的資料型別分類

類別型別
整數TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
浮點/定點FLOAT, DOUBLE, DECIMAL(DEC)
日期時間DATE, TIME, DATETIME, TIMESTAMP, YEAR
字串CHAR, VARCHAR, BINARY, VARBINARY
大物件TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
集合/枚舉ENUM('v1','v2'...), SET('v1','v2'...)

三、複製表結構與數據

CREATE TABLE hehe AS SELECT * FROM user_info;

四、表結構修改 (ALTER TABLE)

-- 新增欄位
ALTER TABLE hehe ADD hehe_id INT;
ALTER TABLE hehe ADD aaa VARCHAR(25), bbb VARCHAR(25);

-- 修改欄位型別
ALTER TABLE hehe MODIFY hehe_id VARCHAR(255);
ALTER TABLE hehe MODIFY bbb INT;

-- 刪除欄位
ALTER TABLE hehe DROP COLUMN column_name;

-- 重命名表
ALTER TABLE hehe RENAME TO wawa;

-- 重命名欄位並修改型別
ALTER TABLE wawa CHANGE bbb ddd INT;

五、刪除表

DROP TABLE 表名;

六、五大約束完整範例

1. NOT NULL

CREATE TABLE hehe (
  hehe_id   INT NOT NULL,
  hehe_name VARCHAR(25) DEFAULT 'xyz' NOT NULL,
  hehe_gender VARCHAR(28) NULL
);
-- 增加/移除 NOT NULL
ALTER TABLE hehe MODIFY hehe_gender VARCHAR(30) NOT NULL;
ALTER TABLE hehe MODIFY hehe_name VARCHAR(3) NULL;

2. UNIQUE

-- 列級
CREATE TABLE unique_test (test_id INT NOT NULL, test_name VARCHAR(30) UNIQUE);
-- 表級
CREATE TABLE unique_test (
  test_id INT NOT NULL,
  test_name VARCHAR(30),
  test_pass VARCHAR(30),
  UNIQUE(test_name),
  CONSTRAINT test_uk UNIQUE(test_pass)
);
-- 修改
ALTER TABLE unique_test ADD UNIQUE(test_name, test_pass);

3. PRIMARY KEY

CREATE TABLE pk_test (pk_id INT PRIMARY KEY, name VARCHAR(255));
CREATE TABLE pk_test2 (id INT NOT NULL, name VARCHAR(29), CONSTRAINT pk_test PRIMARY KEY(id));
-- 刪除/新增
ALTER TABLE test DROP PRIMARY KEY;
ALTER TABLE test ADD PRIMARY KEY(test_id, test_name);

4. FOREIGN KEY

CREATE TABLE teacher (
  teacher_id INT AUTO_INCREMENT PRIMARY KEY,
  teacher_name VARCHAR(255)
);
CREATE TABLE student (
  student_id INT AUTO_INCREMENT PRIMARY KEY,
  student_name VARCHAR(255),
  java_teacher INT REFERENCES teacher(teacher_id)
);

5. CHECK (MySQL 8.0.16+ 強制執行)

CREATE TABLE test (
  test_id INT AUTO_INCREMENT PRIMARY KEY,
  test_age INT NOT NULL,
  CHECK (test_age > 0 AND test_age < 120)
);

七、常用查詢語法速查

  • SHOW DATABASES; / SHOW TABLES; / DESCRIBE 表名;
  • SELECT DATABASE(); 查看當前庫
  • USE db_name; 切換庫
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved