沈阳网站seo公司,私人网站如何建,欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址,缤纷网站免费做服装文章目录 一、表的基本操作1.1 创建表1.2 修改表结构1.2.1 添加列1.2.2 删除列1.2.3 修改列1.2.4 重命名列1.2.5 添加约束 1.3 删除表1.4 查询表结构1.5 重命名表1.6 复制表1.6.1 仅复制结构1.6.2 复制结构及数据 1.7 清空表数据 二、数据完整性约束2.1 主键约束2.2 唯一约束2.… 文章目录 一、表的基本操作1.1 创建表1.2 修改表结构1.2.1 添加列1.2.2 删除列1.2.3 修改列1.2.4 重命名列1.2.5 添加约束 1.3 删除表1.4 查询表结构1.5 重命名表1.6 复制表1.6.1 仅复制结构1.6.2 复制结构及数据 1.7 清空表数据 二、数据完整性约束2.1 主键约束2.2 唯一约束2.3 非空约束2.4 外键约束2.5 检查约束 三、索引管理3.1 创建索引3.2 删除索引 四、高级表功能4.1 分区表4.1.1 按范围分区4.1.2 管理分区 4.2 视图4.2.1 创建虚拟表4.2.2 删除视图 4.3 触发器4.3.1 自动执行业务逻辑4.3.2 删除触发器 4.4 存储过程与函数4.4.1 存储过程示例4.4.2 函数示例 4.5 定时任务4.5.1 创建每日备份事件4.5.2 删除事件 五、事务管理5.1 事务控制 六、备份与恢复6.1 使用mysqldump备份6.2 恢复数据 七、性能优化7.1 优化存储空间7.2 查询分析 八、存储引擎与字符集8.1 切换存储引擎8.2 设置UTF-8编码 九、权限管理9.1 授权访问9.2 撤销权限 十、日志管理10.1 启用二进制日志10.2 监控慢查询 一、表的基本操作
1.1 创建表
使用 CREATE TABLE 语句定义表结构包含列名、数据类型和约束条件。
语法
CREATE TABLE table_name (column1 datatype constraints,column2 datatype constraints,...
);示例
CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,first_name VARCHAR(50) NOT NULL,salary DECIMAL(10, 2)
);1.2 修改表结构
通过 ALTER TABLE 调整表结构支持添加/删除/修改列、重命名列、添加约束等操作。
1.2.1 添加列
ALTER TABLE employees ADD department VARCHAR(50);1.2.2 删除列
ALTER TABLE employees DROP COLUMN department;1.2.3 修改列
ALTER TABLE employees MODIFY salary DECIMAL(12, 2);1.2.4 重命名列
ALTER TABLE employees CHANGE hire_date start_date DATE;1.2.5 添加约束
ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary 0);1.3 删除表
使用 DROP TABLE 永久删除表及数据
DROP TABLE employees; -- 不可恢复1.4 查询表结构
查看表结构信息
DESCRIBE employees; -- 或 SHOW COLUMNS FROM employees;1.5 重命名表
修改表名
RENAME TABLE employees TO staff;1.6 复制表
1.6.1 仅复制结构
CREATE TABLE employees_copy LIKE employees;1.6.2 复制结构及数据
CREATE TABLE employees_copy AS SELECT * FROM employees;1.7 清空表数据
快速清空数据并重置自增列
TRUNCATE TABLE employees; -- 不可逆操作二、数据完整性约束
2.1 主键约束
唯一标识记录
CREATE TABLE orders (order_id INT PRIMARY KEY,...
);2.2 唯一约束
确保列值唯一
ALTER TABLE employees ADD UNIQUE (email);2.3 非空约束
禁止空值
CREATE TABLE users (username VARCHAR(50) NOT NULL,...
);2.4 外键约束
跨表数据一致性
ALTER TABLE orders
ADD FOREIGN KEY (user_id) REFERENCES users(id);2.5 检查约束
自定义数据条件
ALTER TABLE products
ADD CHECK (stock_quantity 0);三、索引管理
3.1 创建索引
加速查询
CREATE INDEX idx_last_name ON employees(last_name);3.2 删除索引
释放存储空间
DROP INDEX idx_last_name ON employees;四、高级表功能
4.1 分区表
4.1.1 按范围分区
CREATE TABLE sales (...)
PARTITION BY RANGE (YEAR(sale_date)) (PARTITION p2020 VALUES LESS THAN (2021),PARTITION p2021 VALUES LESS THAN (2022)
);4.1.2 管理分区
动态调整分区
ALTER TABLE sales ADD PARTITION (PARTITION p2022 VALUES LESS THAN (2023));4.2 视图
4.2.1 创建虚拟表
CREATE VIEW high_salary_view AS
SELECT * FROM employees WHERE salary 10000;4.2.2 删除视图
DROP VIEW high_salary_view;4.3 触发器
4.3.1 自动执行业务逻辑
CREATE TRIGGER update_timestamp
BEFORE UPDATE ON orders
FOR EACH ROW SET NEW.updated_at NOW();4.3.2 删除触发器
DROP TRIGGER update_timestamp;4.4 存储过程与函数
4.4.1 存储过程示例
CREATE PROCEDURE RaiseSalary(IN emp_id INT, IN amount DECIMAL)
BEGINUPDATE employees SET salary salary amount WHERE id emp_id;
END;4.4.2 函数示例
CREATE FUNCTION GetEmployeeName(emp_id INT)
RETURNS VARCHAR(100)
BEGINRETURN (SELECT CONCAT(first_name, , last_name) FROM employees WHERE id emp_id);
END;4.5 定时任务
4.5.1 创建每日备份事件
CREATE EVENT daily_backup
ON SCHEDULE EVERY 1 DAY
DO BEGIN-- 备份逻辑
END;4.5.2 删除事件
DROP EVENT daily_backup;五、事务管理
5.1 事务控制
START TRANSACTION;
UPDATE accounts SET balance balance - 100 WHERE id 1;
UPDATE accounts SET balance balance 100 WHERE id 2;
COMMIT; -- 或 ROLLBACK;六、备份与恢复
6.1 使用mysqldump备份
mysqldump -u root -p mydb employees backup.sql6.2 恢复数据
mysql -u root -p mydb backup.sql七、性能优化
7.1 优化存储空间
OPTIMIZE TABLE employees;7.2 查询分析
EXPLAIN SELECT * FROM employees WHERE last_name Smith;八、存储引擎与字符集
8.1 切换存储引擎
ALTER TABLE employees ENGINE InnoDB;8.2 设置UTF-8编码
ALTER TABLE employees CONVERT TO CHARACTER SET utf8mb4;九、权限管理
9.1 授权访问
GRANT SELECT, INSERT ON employees TO user1localhost;9.2 撤销权限
REVOKE DELETE ON employees FROM user1localhost;十、日志管理
10.1 启用二进制日志
SET GLOBAL log_bin ON;10.2 监控慢查询
SHOW VARIABLES LIKE slow_query%;