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

MySQL 資料庫基本操作入門:建庫、建表、CRUD、修改結構與查詢

     編輯:MySQL 綜合教學

MySQL 資料庫基本操作入門:建庫、建表、CRUD、修改結構與查詢

以公司員工表為例,系統演示 MySQL 核心 DDL/DML 操作,含字符集設定、約束定義、資料操作與結構變更。

一、建立資料庫與選擇

CREATE DATABASE accompany CHARACTER SET utf8 COLLATE utf8_general_ci;
SHOW DATABASES;
USE accompany;

二、建立員工表

CREATE TABLE employee (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name CHAR(3) NOT NULL DEFAULT '',
  age TINYINT NOT NULL DEFAULT 0,
  email VARCHAR(30) NOT NULL DEFAULT '',
  tel CHAR(11) NOT NULL DEFAULT '',
  salary DECIMAL(7,2) NOT NULL DEFAULT 5000.55,
  riqi DATE NOT NULL DEFAULT '2015-01-01'
) CHARSET=utf8;

欄位型別說明:

  • CHAR(3):定長 3 字符,不足補空格,適合固定長度代碼
  • VARCHAR(30):變長,實際長度+1/2 字節存長度
  • DECIMAL(7,2):精確小數,總位數 7、小數 2 位(薪資必用)
  • DATE:日期型別,格式 YYYY-MM-DD
  • AUTO_INCREMENT:自增主鍵,插入時自動分配

三、資料操作(CRUD)

1. 插入資料

INSERT INTO employee (id, name, age, email, tel, salary, riqi)
VALUES (1, '林俊傑', 32, 'linjunjie@qq.com', '18819463269', 10000.00, '2015-03-25');

-- 批量插入
INSERT INTO employee (name, age, email, tel, salary, riqi) VALUES
('羅志祥', 33, 'luozhixiang@qq.com', '18819463211', 9000.00, '2015-03-01'),
('周杰倫', 35, 'jaychou@qq.com', '18819463222', 12000.00, '2015-02-15');

2. 查詢資料

SELECT * FROM employee;
SELECT name, salary FROM employee WHERE age > 30;
SELECT * FROM employee ORDER BY salary DESC LIMIT 5;

3. 更新資料

UPDATE employee SET salary = 9500.00 WHERE name = '羅志祥';

4. 刪除資料

DELETE FROM employee WHERE id = 2;

四、修改表結構(DDL)

1. 修改欄位型別/屬性(不改名)

ALTER TABLE employee MODIFY name CHAR(6) NOT NULL DEFAULT '';

2. 修改欄位名稱與型別

ALTER TABLE employee CHANGE name emp_name CHAR(6) NOT NULL DEFAULT '';

3. 新增欄位

ALTER TABLE employee ADD department VARCHAR(20) NOT NULL DEFAULT '' AFTER email;

4. 刪除欄位

ALTER TABLE employee DROP department;

5. 修改表名

ALTER TABLE employee RENAME TO staff;

五、字符集與中文亂碼處理

建表指定 CHARSET=utf8,若插入中文報錯 Incorrect string value,執行:

SET NAMES gbk;  -- 臨時會話層面
-- 或永久修改 my.cnf [mysqld] 區段:
character_set_server=utf8
collation_server=utf8_general_ci
init_connect='SET NAMES utf8'

六、查詢進階

-- 條件查詢
SELECT * FROM employee WHERE salary > 8000 AND age < 35;

-- 聚合
SELECT AVG(salary) AS avg_sal, MAX(age) AS max_age FROM employee;

-- 分組
SELECT department, COUNT(*) AS cnt FROM employee GROUP BY department;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved