MySQL 表创建与数据导入导出

文章目录

  • 一、创建表
    • [1. 使用Navicat创建表](#1. 使用Navicat创建表)
    • [2. 使用命令行创建表](#2. 使用命令行创建表)
  • 二、导入数据
    • [1. 使用Navicat导入向导](#1. 使用Navicat导入向导)
    • [2. 插入单条数据](#2. 插入单条数据)
    • [3. 多行数据插入](#3. 多行数据插入)
    • [4. 从本地文件加载数据](#4. 从本地文件加载数据)
  • 三、导出数据
    • [1. 使用Navicat导出向导](#1. 使用Navicat导出向导)
    • [2. 使用命令行导出](#2. 使用命令行导出)

一、创建表

  • 创建表是数据库设计的第一步,可以通过可视化工具(如Navicat)或命令行来操作。

1. 使用Navicat创建表

  • 在Navicat中执行以下SQL语句,即可创建学生信息表:
sql 复制代码
CREATE TABLE `students` (
  `stu_id` bigint(10) DEFAULT NULL COMMENT '学生学号',
  `stu_name` varchar(255) DEFAULT NULL COMMENT '学生姓名',
  `gender` varchar(255) DEFAULT NULL COMMENT '学生性别',
  `age` int(10) DEFAULT NULL COMMENT '学生年龄',
  `major` varchar(255) DEFAULT NULL COMMENT '学生专业',
  `clazz` varchar(255) DEFAULT NULL COMMENT '学生班级',
  `year` bigint(20) DEFAULT NULL COMMENT '入学年份'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 使用命令行创建表

  • 如果习惯使用命令行,可以通过以下语句创建成绩表与科目表:
sql 复制代码
CREATE TABLE `scores` (
  `stu_id` bigint(10) DEFAULT NULL COMMENT '学生学号',
  `subject_id` int(10) DEFAULT NULL COMMENT '科目编号',
  `score` int(10) DEFAULT NULL COMMENT '考试分数',
  `type` varchar(255) DEFAULT NULL COMMENT '考试类型'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
sql 复制代码
CREATE TABLE `subjects` (
  `subject_id` int(10) DEFAULT NULL COMMENT '科目编号',
  `subject_name` varchar(255) DEFAULT NULL COMMENT '科目名称',
  `credit` int(10) DEFAULT NULL COMMENT '学分',
  `semester` int(10) DEFAULT NULL COMMENT '授课学期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

二、导入数据

  • 数据导入有多种方式,包括使用导入向导、插入语句或直接加载本地文件。

1. 使用Navicat导入向导

  • Navicat提供了直观的导入向导,支持多种格式(如CSV、Excel等)的数据导入,操作简单快捷。

2. 插入单条数据

  • 使用INSERT语句插入一条学生记录:
sql 复制代码
insert into students values(20250101,'张三','男',20,'计算机科学与技术','计科2501',2025);

3. 多行数据插入

  • 一次性插入多条数据,提高操作效率:
sql 复制代码
insert into students(id,name,gender,age,major,clazz,year) values(20250101,'张三','男',20,'计算机科学与技术','计科2501',2025)
,(20250102,'李四','女',20,'计算机科学与技术','计科2501',2025)
,(20250103,'王五','男',19,'计算机科学与技术','计科2501',2025)
,(20250201,'赵六','女',20,'软件工程','软工2502',2025)
,(20250202,'孙七','男',20,'软件工程','软工2502',2025)
,(20250301,'周八','女',20,'大数据技术','大数据2501',2025)
,(20250302,'吴九','男',19,'大数据技术','大数据2501',2025)
,(20250401,'郑十','女',20,'人工智能','智能2501',2025)
,(20250104,'钱十','男',20,'计算机科学与技术','计科2501',20)
,(20250203,'孙十','女',20,'软件工程','软工2502',2025);

4. 从本地文件加载数据

  • 使用LOAD DATA语句从文本文件导入数据:
sql 复制代码
load data local infile 'D:\\Desktop\\mysqlmd\\data\\students.txt' into table students fields terminated by ',';

三、导出数据

  • 数据导出同样支持可视化工具与命令行两种方式。

1. 使用Navicat导出向导

  • Navicat导出向导支持将表数据导出为SQL、CSV、Excel等格式,操作便捷。

2. 使用命令行导出

  • 通过mysqldump命令可将指定表导出为SQL文件:
sql 复制代码
# 不建议加密码,不安全
mysqldump -uroot -p stu students > /root/data/students.sql
相关推荐
倔强的石头_3 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横3 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二3 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab3 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
小猿姐3 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
ClouGence4 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
云技纵横4 天前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神4 天前
三、用户与权限管理
数据库·mysql
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql