mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍

2023-05-16

mysql表中数据表的各种操作,创建表、添加各类约束、查看表结构、修改和删除表。这次带你捋清楚,从头再走一遍。

实验目的

创建、修改和删除表,掌握数据表的基本操作。

实验结果

创建数据库company,按照以下两个表结构在company数据库中创建两个数据表officesemployees

表1(offices):

图片

表2(employees):

图片

实验过程

1、登录数据库

PS C:\Users\22768> mysql -uroot -p
Enter password: *************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.29 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

2、创建数据库

创建数据库company

mysql> create database company;
Query OK, 1 row affected (0.01 sec)

mysql>

3、进入数据库

切换到我们新创建的数据库中;

mysql> use company;
Database changed
mysql>

4、创建表一

创建数据表offices

mysql> create table offices (officeCode int not null unique, city varchar(50) not null, address varchar(50) not null, country varchar(50) not null, postalCode varchar(15) not null, primary key (officeCode));
Query OK, 0 rows affected (0.06 sec)

mysql> desc offices;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| officeCode | int         | NO   | PRI | NULL    |       |
| city       | varchar(50) | NO   |     | NULL    |       |
| address    | varchar(50) | NO   |     | NULL    |       |
| country    | varchar(50) | NO   |     | NULL    |       |
| postalCode | varchar(15) | NO   |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

mysql>

5、创建表二

创建数据库employees

mysql> create table employees (employeeNumber int not null primary key auto_increment, lastname varchar(50) not null, firstname varchar(50) not null, mobile varchar(25) not null, officeCode int not null, jobTitle varchar(50) not null, birth datetime, note varchar(255), sex varchar(5), constraint office_fk foreign key(officeCode) references offices(officeCode));
Query OK, 0 rows affected (0.05 sec)

mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastname       | varchar(50)  | NO   |     | NULL    |                |
| firstname      | varchar(50)  | NO   |     | NULL    |                |
| mobile         | varchar(25)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| jobTitle       | varchar(50)  | NO   |     | NULL    |                |
| birth          | datetime     | YES  |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | varchar(5)   | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql>

6、mysql字段移动

将数据表employeesmobile字段修改到officeCode字段后面;

mysql> alter table employees modify mobile varchar(25) after officeCode;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>  desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastname       | varchar(50)  | NO   |     | NULL    |                |
| firstname      | varchar(50)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| mobile         | varchar(25)  | YES  |     | NULL    |                |
| jobTitle       | varchar(50)  | NO   |     | NULL    |                |
| birth          | datetime     | YES  |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | varchar(5)   | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql>

7、mysql字段修改

将数据表employeesbirth字段改名为employee_birth

mysql> alter table employees change birth employee_birth datetime;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastname       | varchar(50)  | NO   |     | NULL    |                |
| firstname      | varchar(50)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| mobile         | varchar(25)  | YES  |     | NULL    |                |
| jobTitle       | varchar(50)  | NO   |     | NULL    |                |
| employee_birth | datetime     | YES  |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | varchar(5)   | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql>

8、mysql修改字段类型

将数据表sex字段的数据类型,改成char(1),非空约束;

mysql> alter table employees modify sex char(1) not null;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastname       | varchar(50)  | NO   |     | NULL    |                |
| firstname      | varchar(50)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| mobile         | varchar(25)  | YES  |     | NULL    |                |
| jobTitle       | varchar(50)  | NO   |     | NULL    |                |
| employee_birth | datetime     | YES  |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | char(1)      | NO   |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql>

9、mysql删除字段

删除数据表employees中的note字段;

mysql> alter table employees drop note;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employees;
+----------------+-------------+------+-----+---------+----------------+
| Field          | Type        | Null | Key | Default | Extra          |
+----------------+-------------+------+-----+---------+----------------+
| employeeNumber | int         | NO   | PRI | NULL    | auto_increment |
| lastname       | varchar(50) | NO   |     | NULL    |                |
| firstname      | varchar(50) | NO   |     | NULL    |                |
| officeCode     | int         | NO   | MUL | NULL    |                |
| mobile         | varchar(25) | YES  |     | NULL    |                |
| jobTitle       | varchar(50) | NO   |     | NULL    |                |
| employee_birth | datetime    | YES  |     | NULL    |                |
| sex            | char(1)     | NO   |     | NULL    |                |
+----------------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)

mysql>

10、mysql增加字段

在数据表employees中新增字段favoriate_activity,并设置数据类型为varchar(100)

mysql> alter table employees add favoriate_activiry varchar(100);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employees;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| employeeNumber     | int          | NO   | PRI | NULL    | auto_increment |
| lastname           | varchar(50)  | NO   |     | NULL    |                |
| firstname          | varchar(50)  | NO   |     | NULL    |                |
| officeCode         | int          | NO   | MUL | NULL    |                |
| mobile             | varchar(25)  | YES  |     | NULL    |                |
| jobTitle           | varchar(50)  | NO   |     | NULL    |                |
| employee_birth     | datetime     | YES  |     | NULL    |                |
| sex                | char(1)      | NO   |     | NULL    |                |
| favoriate_activiry | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql>

11、mysql删除表

删除数据表offices

需要注意的是数据表offices中存在着外键,所以我们删除该数据表的时候,需要先删除外键关系,然后再删除这个数据表方可。

(1)mysql删除外键

先看下外键的名字叫啥;

mysql> show create table employees\G;
*************************** 1. row ***************************
       Table: employees
Create Table: CREATE TABLE `employees` (
  `employeeNumber` int NOT NULL AUTO_INCREMENT,
  `lastname` varchar(50) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `officeCode` int NOT NULL,
  `mobile` varchar(25) DEFAULT NULL,
  `jobTitle` varchar(50) NOT NULL,
  `employee_birth` datetime DEFAULT NULL,
  `sex` char(1) NOT NULL,
  `favoriate_activiry` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`employeeNumber`),
  KEY `office_fk` (`officeCode`),
  CONSTRAINT `office_fk` FOREIGN KEY (`officeCode`) REFERENCES `offices` (`officeCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

可以看到外键名字是office_fk,然后我们删除employees数据表的外键约束office_fk

mysql> alter table employees drop foreign key office_fk;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table employees\G;
*************************** 1. row ***************************
       Table: employees
Create Table: CREATE TABLE `employees` (
  `employeeNumber` int NOT NULL AUTO_INCREMENT,
  `lastname` varchar(50) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `officeCode` int NOT NULL,
  `mobile` varchar(25) DEFAULT NULL,
  `jobTitle` varchar(50) NOT NULL,
  `employee_birth` datetime DEFAULT NULL,
  `sex` char(1) NOT NULL,
  `favoriate_activiry` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`employeeNumber`),
  KEY `office_fk` (`officeCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

可以看到employees数据表中的外键已经删除了,然后我们再返回来删除数据表offices

(2)mysql删除数据表

mysql> drop table offices;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| employees         |
+-------------------+
1 row in set (0.00 sec)

mysql>

我们删除了数据表之后查询确实只有一个表了。

12、mysql修改存储引擎

employees数据表的存储引擎修改为myisam

(1)查看数据表employees现在的存储引擎是什么;

mysql> show create table employees\G;
*************************** 1. row ***************************
       Table: employees
Create Table: CREATE TABLE `employees` (
  `employeeNumber` int NOT NULL AUTO_INCREMENT,
  `lastname` varchar(50) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `officeCode` int NOT NULL,
  `mobile` varchar(25) DEFAULT NULL,
  `jobTitle` varchar(50) NOT NULL,
  `employee_birth` datetime DEFAULT NULL,
  `sex` char(1) NOT NULL,
  `favoriate_activiry` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`employeeNumber`),
  KEY `office_fk` (`officeCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

(2)修改数据表的存储引擎;

mysql> alter table employees engine=myisam;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>

(3)再次查看数据表的存储引擎;

mysql> show create table employees\G;
*************************** 1. row ***************************
       Table: employees
Create Table: CREATE TABLE `employees` (
  `employeeNumber` int NOT NULL AUTO_INCREMENT,
  `lastname` varchar(50) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `officeCode` int NOT NULL,
  `mobile` varchar(25) DEFAULT NULL,
  `jobTitle` varchar(50) NOT NULL,
  `employee_birth` datetime DEFAULT NULL,
  `sex` char(1) NOT NULL,
  `favoriate_activiry` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`employeeNumber`),
  KEY `office_fk` (`officeCode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

13、mysql修改表名

将数据表employees的数据表名修改成employees_info

mysql> alter table employees rename employees_info;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| employees_info    |
+-------------------+
1 row in set (0.00 sec)

mysql>

至此,本文结束。

更多内容请转至VX公众号 “运维家” ,获取最新文章。

------ “运维家” ------

------ “运维家” ------

------ “运维家” ------

系统运维工程师面试,运维工程师优秀员工提名词,tr运维工程师,特来电运维工程师工作日常,IT运维工程师高级;
智能制造运维工程师培训课程,远程办公的运维工程师,迈瑞医疗运维工程师工资待遇,后台运维工程师是做什么的;
风力运维工程师怎样,浪潮云运维工程师,医疗设备运维工程师证书样本,运维工程师男朋友,运维工程师暴躁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍 的相关文章

随机推荐

  • ROS☞通过两种方法提取.bag中的图像数据

    以下两种环境均在Ubuntu16 04环境下测试成功 第一种方法 ROS 从rosbag中提取图像 xff08 by launch文件 xff09 1 新建launch文件 xff08 文件在哪无所谓 xff0c 可以在catkin ws的
  • Git基础教程(二)

    使用Git删除文件 1 直接删除 可以使用rm命令删除文件 xff0c 如 xff1a rm welcome html 然后查看一下状态 xff1a 然后发现welcome html的状态为deleted xff0c 如果你真的想在git管
  • Git基础教程(三)

    Git分支 在git中使用分支非常简单 xff0c 只需要使用Git branch命令即可 xff1a git branch test 新建test分支 此时使用git branch查看一下分支 xff1a 此时的确多了一个分支 xff0c
  • Git基础教程(四)

    工作做到一半需要临时切换到别的任务 1 先commit当前的进度 简单的做法先保存当前的修改 然后切换到有问题的分级 xff0c 先完成别的功能 xff0c 然后切换回原来做到一半的develop分支 xff0c 执行reset命令 xff
  • jupyter notebook matplotlib绘制动态图并显示在notebook中

    有些时候matplotlib 的绘图没法显示在notebook中 xff0c 或者显示不了 这与backend有关 首先启动你的notebook xff0c 输入 pylab 查看你的matplotlib后端 xff0c 我的输出为 xff
  • 主机连接wifi,如何设置虚拟机上网方式

    主机是windows系统 xff08 win7 xff0c win10 xff09 xff0c 如果使用wifi上网 xff0c 虚拟机如何设置 xff1f xff1f 首先打开主机网络 xff08 如下所示 xff09 xff1a 1 点
  • VS2015断点调试方法

    备注 xff1a 部分图片 xff08 打马赛克的 xff09 转自百度 xff0c 侵删 xff01 果真被和谐了 xff0c 大家还是看这个网页吧 xff1a https jingyan baidu com album e75057f2
  • FreeRTOS 源代码的编程标准与命名约定

    一 编程标准 xff08 Coding Standard xff09 FreeRTOS 源代码遵守 MISRA Motor Industry Software Reliability Association 规范 与 MISRA 标准有出入
  • 特征匹配中OpenCV Dmatch类的用法解析以及非常详细的ORB特征提取与匹配解析

    首先说明一点 xff0c 在SLAM中进行特征提取和匹配时 xff0c 需要注意使用的OpenCV版本 xff0c 在使用OpenCV2 x版本时 xff0c 可以创建特征对象如下所示 xff08 省略了参数表 xff09 xff1a OR
  • 单目视觉里程计的尺度问题的疑问?

    SLAM是个坑 经过一段时间对SLAM的了解 xff0c 原来是我理解有错误 xff0c 得到的尺度已经是统一的 xff0c 只是不知道它的真实尺度是多少 贴一个不错的视觉里程计简介的链接 xff1a https blog csdn net
  • 使用ORB_SLAM2的方式进行特征检测和提取

    比较opencv默认的方式和ORB SLAM2中对opencv进行重写的方式 xff0c 两个方法对图像特征提取结果的对比 为方便比较 xff0c 写在同一个文件中 主函数如下 xff1a include lt iostream gt in
  • 什么是归一化的平面坐标

    所谓的归一化的成像平面 xff0c 就是将三维空间点的坐标都除以Z 所有空间点坐标都转到了相机前单位距离处 xff0c 这个平面就叫归一化的平面 xff0c 之后再乘以焦距 f f f xff0c 让归一化平面回到成像平面 以一张别的博主做
  • 无人机编程实战第1讲——无人机简介

    目录 前言 一 飞控是什么 xff1f 二 扫盲行动 xff01 xff01 xff01 1 微控制器 2 传感器 3 处理 xff1f 4 无人机飞行姿态 总结 前言 随着开源无人机飞行控制器的不断发展 xff0c 越来越多优秀的代码与算
  • 阿里云Serverless kubernetes服务购买体验

    阿里云Serverless kubernetes服务购买体验 Serverless kubernetes是什么优点缺点体验步骤价格ECI的价格 xff1a ECS的价格 阿里云Serverless Kubernetes支持列表总结 Serv
  • python修改xml文件内容,不废话,拿来即用

    XML 被设计用来传输和存储数据 HTML 被设计用来显示数据 XML 指可扩展标记语言 xff08 eXtensible Markup Language xff09 可扩展标记语言 xff08 英语 xff1a Extensible Ma
  • mysql如何删除数据表,被关联的数据表如何删除呢

    删除数据表的时候 xff0c 表的定义和表中所有的数据均会被删除 因此 xff0c 在进行删除操作前 xff0c 最好对表中的数据做一个备份 xff0c 以免造成无法挽回的后果 mysql删除数据表分为两种情况 xff1b mysql删除没
  • mysql8.0新特性-自增变量的持久化

    在mysql8 0之前 xff0c 自增主键AUTO INCREMENT的值如果大于max primay key 43 1 xff0c 在mysql重启后 xff0c 会重置AUTO INCREMENT 61 max primay key
  • 双系统重装Ubuntu20.04及系统基本配置

    文章目录 前言Ubuntu20 04换源安装chrome浏览器安装OneNote安装Wechat QQ Dingtalk参考 前言 笔者从2019年9月份去长沙智能驾驶研究院开始接触ubuntu18 04 在2020年4月份做本科毕业设计的
  • 视觉 SLAM 十四讲 —— 第十三讲 建图

    视觉 SLAM 十四讲 第十三讲 建图 在前端和后端中 xff0c 我们重点关注同时估计相机运动轨迹与特征点空间位置的问题 然而 xff0c 在实际使用 SLAM 时 xff0c 除了对相机本体进行定位之外 xff0c 还存在许多其他的需求
  • mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍

    mysql表中数据表的各种操作 xff0c 创建表 添加各类约束 查看表结构 修改和删除表 这次带你捋清楚 xff0c 从头再走一遍 实验目的 创建 修改和删除表 xff0c 掌握数据表的基本操作 实验结果 创建数据库company xff