最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL基礎(chǔ)增刪查改操作詳解

 更新時(shí)間:2026年01月29日 14:28:00   作者:君愛學(xué)習(xí)  
本文詳細(xì)介紹了MySQL數(shù)據(jù)庫的基礎(chǔ)增刪查改(CRUD)操作,包括數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建、刪除和修改,以及數(shù)據(jù)的插入、查詢、更新和刪除,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

以下是 MySQL 數(shù)據(jù)庫基礎(chǔ)的增刪查改(CRUD)操作詳解:

一、數(shù)據(jù)庫操作

  1. 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;  -- 不存在時(shí)才創(chuàng)建
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 刪除數(shù)據(jù)庫
DROP DATABASE db_name;
DROP DATABASE IF EXISTS db_name;  -- 存在時(shí)才刪除
  1. 選擇/切換數(shù)據(jù)庫
USE db_name;

二、數(shù)據(jù)表操作

  1. 創(chuàng)建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,        -- 主鍵,自增
    username VARCHAR(50) NOT NULL UNIQUE,     -- 非空,唯一
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100),
    age INT DEFAULT 18,                       -- 默認(rèn)值
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 刪除表
DROP TABLE table_name;
DROP TABLE IF EXISTS table_name;
  1. 修改表結(jié)構(gòu)
-- 添加列
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
-- 修改列
ALTER TABLE users MODIFY COLUMN email VARCHAR(150);
-- 重命名列
ALTER TABLE users CHANGE COLUMN phone mobile VARCHAR(20);
-- 刪除列
ALTER TABLE users DROP COLUMN mobile;
-- 添加索引
CREATE INDEX idx_username ON users(username);
-- 刪除索引
DROP INDEX idx_username ON users;

三、數(shù)據(jù)操作(CRUD)

  1. 插入數(shù)據(jù)(Create)
-- 插入單條數(shù)據(jù)(指定列)
INSERT INTO users (username, password, email, age) 
VALUES ('john_doe', '123456', 'john@example.com', 25);
-- 插入單條數(shù)據(jù)(所有列)
INSERT INTO users VALUES (NULL, 'jane_doe', '654321', 'jane@example.com', 30, NOW(), NOW());
-- 插入多條數(shù)據(jù)
INSERT INTO users (username, password, email) 
VALUES 
    ('alice', 'pass123', 'alice@example.com'),
    ('bob', 'pass456', 'bob@example.com'),
    ('charlie', 'pass789', 'charlie@example.com');
  1. 查詢數(shù)據(jù)(Read)
-- 查詢所有列
SELECT * FROM users;
-- 查詢指定列
SELECT id, username, email FROM users;
-- 條件查詢
SELECT * FROM users WHERE age > 20;
SELECT * FROM users WHERE username = 'john_doe';
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
SELECT * FROM users WHERE email LIKE '%@example.com';
-- 邏輯運(yùn)算符
SELECT * FROM users WHERE age > 20 AND email LIKE '%@example.com';
SELECT * FROM users WHERE age < 18 OR age > 60;
-- 排序
SELECT * FROM users ORDER BY age DESC;        -- 降序
SELECT * FROM users ORDER BY created_at ASC;  -- 升序
-- 限制返回?cái)?shù)量
SELECT * FROM users LIMIT 10;                 -- 前10條
SELECT * FROM users LIMIT 5, 10;              -- 跳過5條,取10條
-- 去重
SELECT DISTINCT age FROM users;
-- 分組統(tǒng)計(jì)
SELECT age, COUNT(*) as count FROM users GROUP BY age;
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;
-- 聚合函數(shù)
SELECT COUNT(*) as total_users FROM users;
SELECT AVG(age) as avg_age FROM users;
SELECT MAX(age) as max_age FROM users;
SELECT MIN(age) as min_age FROM users;
SELECT SUM(age) as total_age FROM users;
  1. 更新數(shù)據(jù)(Update)
-- 更新單個(gè)字段
UPDATE users SET email = 'new_email@example.com' WHERE id = 1;
-- 更新多個(gè)字段
UPDATE users SET 
    email = 'updated@example.com',
    age = 26,
    updated_at = NOW()
WHERE username = 'john_doe';
-- 基于現(xiàn)有值更新
UPDATE users SET age = age + 1 WHERE age < 30;
-- 批量更新
UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01';
  1. 刪除數(shù)據(jù)(Delete)
-- 刪除指定記錄
DELETE FROM users WHERE id = 1;
-- 刪除多條記錄
DELETE FROM users WHERE age > 100;
-- 清空表(刪除所有記錄)
DELETE FROM users;
TRUNCATE TABLE users;  -- 更快,不能回滾

四、高級(jí)查詢技巧

  1. 連接查詢
-- 內(nèi)連接
SELECT u.username, o.order_id, o.amount
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- 左連接
SELECT u.username, o.order_id
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
-- 右連接
SELECT u.username, o.order_id
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;
  1. 子查詢
-- WHERE子句中的子查詢
SELECT * FROM users 
WHERE age > (SELECT AVG(age) FROM users);
-- FROM子句中的子查詢
SELECT avg_age_table.age_group, COUNT(*)
FROM (SELECT 
    CASE 
        WHEN age < 20 THEN '少年'
        WHEN age BETWEEN 20 AND 40 THEN '青年'
        ELSE '中老年'
    END as age_group
    FROM users) as avg_age_table
GROUP BY age_group;
  1. 聯(lián)合查詢
SELECT username, email FROM active_users
UNION
SELECT username, email FROM inactive_users;

五、事務(wù)處理

-- 開始事務(wù)
START TRANSACTION;
-- 執(zhí)行操作
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
-- 提交或回滾
COMMIT;  -- 確認(rèn)更改
-- 或
ROLLBACK;  -- 撤銷更改

六、實(shí)用技巧

  1. 備份數(shù)據(jù)
-- 創(chuàng)建表備份
CREATE TABLE users_backup AS SELECT * FROM users;
-- 插入備份數(shù)據(jù)
INSERT INTO users_backup SELECT * FROM users WHERE created_at > '2024-01-01';
  1. 批量操作
-- 批量插入(提高性能)
INSERT INTO users (username, email) VALUES 
('user1', 'user1@example.com'),
('user2', 'user2@example.com'),
('user3', 'user3@example.com');
  1. 使用CASE表達(dá)式
SELECT 
    username,
    age,
    CASE 
        WHEN age < 18 THEN '未成年'
        WHEN age BETWEEN 18 AND 60 THEN '成年'
        ELSE '老年'
    END as age_group
FROM users;

注意事項(xiàng)

  1. WHERE條件:UPDATE和DELETE操作一定要加WHERE條件,除非確實(shí)要操作所有記錄
  2. 事務(wù)處理:重要操作使用事務(wù),確保數(shù)據(jù)一致性
  3. 索引使用:頻繁查詢的字段建議添加索引
  4. SQL注入:應(yīng)用程序中要使用參數(shù)化查詢防止SQL注入
  5. 性能優(yōu)化:大數(shù)據(jù)量時(shí)注意查詢性能,避免SELECT *

到此這篇關(guān)于MySQL - 基礎(chǔ)增刪查改的文章就介紹到這了,更多相關(guān)mysql增刪查改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

永福县| 定日县| 天等县| 三门峡市| 勃利县| 新沂市| 乌拉特前旗| 博客| 霞浦县| 焦作市| 安宁市| 庆阳市| 盘锦市| 宣恩县| 富平县| 双牌县| 什邡市| 牡丹江市| 兴仁县| 红原县| 盱眙县| 芷江| 潜江市| 马山县| 兴隆县| 沙坪坝区| 潞西市| 如皋市| 积石山| 太仓市| 汕头市| 邢台市| 潞西市| 克山县| 习水县| 旌德县| 沾化县| 岚皋县| 星子县| 咸宁市| 呼图壁县|