linux个人心得24 (mysql③,AI排版尝试)
一、MySQL 数据导入mysql 客户端表格操作场景核心命令关键说明基本导入方式 1重定向mysql -u [用户名] -p[密码] [目标数据库名] [文件名.sql]最常用直接执行.sql 文件目标库需预先创建基本导入方式 2source1.mysql -u [用户名] -p2.USE [目标数据库名];3.source /完整路径/文件名.sql;登录后执行需写.sql 文件完整路径导入到新建数据库1.CREATE DATABASE new_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;2.mysql -u root -p new_database mydatabase_backup.sql先建库指定字符集再导入备份文件导入全库备份文件mysql -u root -p all_databases_backup.sql备份文件含 CREATE DATABASE 语句无需指定目标库从压缩包直接导入gunzip mydatabase_backup.sql.gzmysql -u root -p new_database无需解压通过管道直接导入效率更高二、MySQL 备份 导入最佳实践表格操作类型命令示例核心关键点导出单个库mysqldump -u user -p dbname backup.sql基础备份方式仅导出指定库数据 结构仅导出结构mysqldump -u user -p --no-data dbname schema.sql只复制表结构不含数据生产环境备份mysqldump -u user -p --single-transaction --routines dbname backup.sql保证 InnoDB 数据一致性不锁表同时导出存储过程 / 函数备份并压缩mysqldump -u user -p dbnamegzip backup.sql.gz压缩后节省存储空间建议生产环境使用导入数据mysql -u user -p dbname backup.sql目标数据库需预先创建字符集需与备份文件匹配从压缩包导入gunzip backup.sql.gzmysql -u user -p dbname跳过解压步骤直接导入适合大文件三、MySQL 创建表常用约束表格约束名称关键字核心作用示例应用employees 表主键约束PRIMARY KEY唯一标识每行记录隐含 NOT NULLUNIQUE一张表仅一个主键id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT非空约束NOT NULL列值不能为 NULL插入 / 更新时必须赋值first_name VARCHAR(50) NOT NULL唯一约束UNIQUE列值唯一可多个 NULL结合 NOT NULL 则无 NULL 且无重复email VARCHAR(100) NOT NULL UNIQUE默认值约束DEFAULT插入时未指定值则用默认值hire_date DATE NOT NULL DEFAULT (CURRENT_DATE)检查约束CHECK列值需满足指定条件MySQL8.0.16 支持salary DECIMAL(10,2) NOT NULL CHECK (salary 3000.00)外键约束FOREIGN KEY关联主从表保证引用完整性支持级联更新 / 删除CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE SET NULL ON UPDATE CASCADE四、约束关联补充说明表格补充项说明AUTO_INCREMENT非约束是列属性通常与主键搭配插入时自动递增仅 INT/BIGINT 类型可用ON DELETE SET NULL外键规则主表记录删除时从表关联字段设为 NULL需从表字段允许 NULLON UPDATE CASCADE外键规则主表关联字段更新时从表关联字段同步更新级联更新五、示例表创建语句sql-- 1. 创建部门表主表 CREATE TABLE departments ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL UNIQUE ); -- 2. 创建员工表含所有常用约束 CREATE TABLE employees ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT 员工ID, 主键, 自动递增, employee_number VARCHAR(10) NOT NULL UNIQUE COMMENT 员工编号, 必须提供且不能重复, first_name VARCHAR(50) NOT NULL COMMENT 员工的名字, 不能为空, last_name VARCHAR(50) NOT NULL COMMENT 员工的姓氏, 不能为空, email VARCHAR(100) NOT NULL UNIQUE COMMENT 电子邮箱, 不能为空且不能重复, phone_number VARCHAR(20) COMMENT 联系电话, 可以为空, hire_date DATE NOT NULL DEFAULT (CURRENT_DATE) COMMENT 入职日期, 不能为空, 默认为当前日期, salary DECIMAL(10, 2) NOT NULL CHECK (salary 3000.00) COMMENT 月薪, 不能为空, 且必须大于等于3000, department_id INT UNSIGNED COMMENT 所属部门ID, 外键, status VARCHAR(10) NOT NULL DEFAULT active CHECK (status IN (active, on_leave, terminated)) COMMENT 员工状态, 默认为active, -- 表级别外键约束 CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE SET NULL ON UPDATE CASCADE );
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2501276.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!