[mysql]修改表和课后练习

目录

DDL数据定义语言

添加一个字段

添加一个字段到最后一个

添加到表中的第一个一个字段

选择其中一个位置:

修改一个字段:数据类型,长度,默认值(略)

重命名一个字段

删除一个字段

重命名表

删除表

清空表

DCL中事务相关内容

DCL中COMMIT和ROLLBACK的讲解

对比TRUNCATE TABLE 和DELETE FROM

创建管理表的课后练习

练习1

答案

练习2

解答


DDL数据定义语言

修改表

DESC myemp1

添加一个字段

添加一个字段到最后一个

ALTER TABLE myemp2

ADD phone_test VARCHAR(11) FIRST#默认添加到表中的最后一个字段

添加到表中的第一个一个字段

ADD phone_test VARCHAR(11) FIRST#FIRST

选择其中一个位置:

ALTER TABLE myemp2

ADD email_test varchar(45) AFTER phone_test;

 DESC myemp2

修改一个字段:数据类型,长度,默认值(略)

我们一般会修改数据类型吗,我们一般都不会做了,如果我们把邮箱写成字符串,或者把小数写成字符串类型,里面已经有小数的数据了,那么我们也不适合改,也不会成功,总之,数据类型我们改的不多

我们一般就只会修改长度

ALTER TABLE myemp2

MODIFY phone_test varchar(20)

默认值:
ALTER TABLE myemp2

MODIFY phone_test varchar(20) default ‘aaa’

就是没有指定这个字段的时候默认就是aaa

重命名一个字段

ALTER TABLE myemp2

CHANGE salary salary_test int(5)

ALTER TABLE myemp2

CHANGE salary_test salary varchar(12)

我们是可以发现,我们改名的时候是可以修改类型和长度的,所以在这个过程中也是存在MODIFY的行为.

删除一个字段

ALTER TABLE myemp2

DROP COLUMN email_test

重命名表

重命名有两种方式,大家记一个就行,第一个比较标准,建议记这个,第一个RENAME TABLE myemp2 TO myemp22

第二种修改

ALTER TABLE myemp22

RENAME TO myem12

删除表

DROP TABLE IF EXISTS myemp12

#如果存在就删除,不存在就算了.和之前我们如果不存在就创建是一样的关键词

那么大家会不会好奇,这个操作可以撤销,或者说回滚吗,不能我们如果删除是不能回滚的.那就得看你有没有日志文件了,就得跑路了

清空表

删除表DROP意味着不光将表结构删除了,将表数据也删除了.而我们的TRUNCATE TABLE只是将表内容删除,表结构还在.

TRUNCATE TABLE

DCL中事务相关内容

DCL中COMMIT和ROLLBACK的讲解

COMMIT:提交数据,一旦执行COMMIT数据就被永久保存内容,意味数据不可以回滚

ROLLBACK:回滚数据,一旦ROLLBACK撤销,就可以回滚到最近的一次COMMIT之后,如果COMMIT的之前就不能撤销了.

比如C1运行一次comitc2运行一次commit c3没有运行,那么c3就会被撤销

事务我们先不解释,那么我们先把这两个和

对比TRUNCATE TABLE 和DELETE FROM

相同点:都可以实现对表的数据删除,表结构还在

不同点:

TRUNCATE TABLE表数据全部清除,同时数据不可以回滚

DELECT FROM 一旦执行此操作,表数据可以全部清除.不带WHERE就可以全部清除,可以实现回滚,也可以不实现,我们就可以引入

DDL数据定义语言和DML数据操作语言

DDL的操作,创建表,删除表,创建数据库,删除数据库一旦运行,就不能撤回

DML的操作,默认情况下一旦执行也是不能回滚但是我们可以修改参数SET autocommit =FALSE,则执行DML操作就可以进行回滚,

也就是这个参数值只对DML生效

演示:

DELETE FROM 我们建立一个表

CREATE TABLE myemp3

AS

SELECT * FROM employees

我们先COMMIT一下

然后取消一下不能撤销关键词

SET autocommit =FALSE

删除一下表

DELETE FROM myemp3

我们查询之后就没有数据了

我们回滚一下再查询

发现回滚有效,是不是就ROLLBACK到我们COMMIT之后.

现在我们再进行一下TRUNCATE TABLE

实际DDL有一个自动的COMMIT操作,这个操作不会收到关键词 AUTOCOMMIT影响

因为他只影响DML

所以使用DDL一定要谨慎.

DCL中和事务相关的内容我们就说到这,剩下的我们下篇再继续说事务的事

那么大家对DCL和DML,DDL的区别大家就应该明白了,如果我们想删除一个表,你是要使用TRUNCATE,还是DELECT FROM表.由于TRUNCATE比DELETE(由于要备份)的速度快,而且使用的系统和事务资源扫,但TRUNCATE无事务部且不触发TRIGGER,有可能造成事故,对于实际项目中,核心数据如果用TRUNCATE 删除了那就非常危险,所以我们还是使用DELECT比较好,就算因为备份会导致占用资源.

创建管理表的课后练习

DCL数据控制语言和DDL数据定义语言的课后练习

练习1

#1. 创建数据库test01_office,指明字符集为utf8。并在此数据库下执行下述操作 #2. 创建表dept01 /* 字段     类型 id NAME */ INT(7) VARCHAR(25)

#3. 将表departments中的数据插入新表dept02中

#4. 创建表emp01 /* 字段         类型 id INT(7) first_name VARCHAR (25) last_name VARCHAR(25) dept_id INT(7) */

#5. 将列last_name的长度增加到50

#6. 根据表employees创建emp02

#7. 删除表emp01

#8. 将表emp02重命名为emp01

#9.在表dept02和emp01中添加新列test_column,并检查所作的操作

#10.直接删除表emp01中的列 department_i

这里的难度会比查询中低很多,只要你知道关键词就一定可以做出来,但是之前查询就算你知道

SELECT PASSWORD('mysql') FROM DuaL

SELECT ENCODE('mysql','你好'),DECODE(ENCODE('mysql','你好'),'你好') FROM DuaL

DCL数据控制语言和DDL数据定义语言的课后练习

答案

#1. 创建数据库test01_office,指明字符集为utf8。并在此数据库下执行下述操作

CREATE DATABASE  test01_office

USE test01_office

 #2. 创建表dept01 /* 字段     类型 id NAME */ INT(7) VARCHAR(25)

 CREATE TABLE dept01 (id INT(7),`NAME` VARCHAR(25))

#3. 将表departments中的数据插入新表dept02中

CREATE TABLE dept02

AS

SELECT *

FROM atguigudb.departments

#4. 创建表emp01 /* 字段         类型 id INT(7) first_name VARCHAR (25) last_name VARCHAR(25) dept_id INT(7) */

CREATE TABLE emp01(id INT(7), first_name VARCHAR (25) ,last_name VARCHAR(25) ,dept_id INT(7))

#5. 将列last_name的长度增加到50

ALTER TABLE emp01

MODIFY last_name VARCHAR(50)

#6. 根据表employees创建emp02

CREATE TABLE emp02

AS

SELECT *

FROM atguigudb.employees

#7. 删除表emp01

DROP TABLE emp01

#8. 将表emp02重命名为emp01

RENAME TABLE emp02 TO emp01

#ALTER TABLE emp002 RENAME TO emp01

#9.在表dept02和emp01中添加新列test_column,并检查所作的操作

ALTER TABLE dept02

ADD COLUMN test_column VARCHAR(12);

ALTER TABLE emp01

ADD COLUMN test_column VARCHAR(12)

#10.直接删除表emp01中的列 department_id

desc emp01;

ALTER TABLE emp01

DROP COLUMN department_id

练习2

# 1、创建数据库 test02_market

 # 2、创建数据表 customers

# 3、将 c_contact 字段移动到 c_birth 字段后面

# 4、将 c_name 字段数据类型改为 varchar(70)

 # 5、将c_contact字段改名为c_phone

# 6、增加c_gender字段到c_name后面,数据类型为char(1)

 # 7、将表名改为customers_info

 # 8、删除字段c_city

解答

# 1、创建数据库 test02_market

CREATE DATABASE test02__market

USE test02__market

 # 2、创建数据表 customers

CREATE TABLE customers(

c_num int,

 c_name varchar(50),

 c_contact varchar(50),

 c_city varchar(50),

  c_birth date)

 # 3、将 c_contact 字段移动到 c_birth 字段后面

 ALTER TABLE customers

 CHANGE  c_phone c_contact varchar(50)  AFTER c_birth

 DESC customers

 #注意只有AFTER没有BEFORE

ADD SELECT c_contact1 FROM c_contact1BEFORE c_birth

# 4、将 c_name 字段数据类型改为 varchar(70)

 ALTER TABLE customers

MODIFY c_name varchar(70)

 DESC customers

 # 5、将c_contact字段改名为c_phone

 ALTER TABLE customers

CHANGE c_contact c_phone varchar(70)

 DESC customers

 # 6、增加c_gender字段到c_name后面,数据类型为char(1)

  ALTER TABLE customers

ADD c_gender CHAR(1) AFTER c_name

 # 7、将表名改为customers_info

 RENAME TABLE customers TO customers_info

 # 8、删除字段c_city

 ALTER TABLE customers_info

 DROP COLUMN c_city

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苍穹外卖 商家接单、拒单

OrderController /*** 接单** param ordersConfirmDTO* return*/PutMapping("/confirm")ApiOperation("接单")public Result confirm(RequestBody OrdersConfirmDTO ordersConfirmDTO) {orderService.confirm(ordersConfirmDTO);return Result.success();…

对于IIC的理解

IIC是一种通信协议 具体特点: 1:同步传输(不会因为中断而影响数据传输,但是会多一根传输线) 2:半双工 (少一根线,但是一次只能收或者发送数据) 对于IIC有两种模式&am…

Python异常检测 - LSTM(长短期记忆网络)

系列文章目录 Python异常检测- Isolation Forest(孤立森林) python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子(LOF)算法 Python异常检测- DBSCAN Python异常检测- 单类支持向量机(…

常见Transformer位置编码

文章目录 概述绝对位置编码相对位置编码T5 BiasALiBiRoPE 参考资料 概述 相对于RNN这样的序列模型来说,Transformer可并行是一个很大的优势,但可并行性带来一个问题,由于不是从前到后,所以模型对于位置信息是不敏感的。于是在Tra…

【IEEE出版 | EI稳定检索】2024智能机器人与自动控制国际学术会议 (IRAC 2024,11月29-12月1日)

2024智能机器人与自动控制国际学术会议 (IRAC 2024) 2024 International Conference on Intelligent Robotics and Automatic Control 官方信息 会议官网:www.icirac.org 2024 International Conference on Intelligent Robotics and Autom…

Golang | Leetcode Golang题解之第535题TinyURL的加密与解密

题目: 题解: import "math/rand"type Codec map[int]stringfunc Constructor() Codec {return Codec{} }func (c Codec) encode(longUrl string) string {for {key : rand.Int()if c[key] "" {c[key] longUrlreturn "http:/…

特朗普当选或将引爆比特币市场,赔率与预测平台暗示胜算更高

11月5日消息,去中心化预测市场平台Polymarket数据显示,前总统特朗普在2024年美国大选中的获胜概率已攀升至61.8%。据悉,Polymarket通过用户下注来反映市场对各类事件的预期。不同于传统民调,这类平台更关注资金流向和市场情绪的变…

pdf添加目录标签python(手动配置)

先安装对应的库: pip install pypdf 代码分为两个部分,一部分是config.py,代码如下: offset=10 catgorys=[("第一章",12),("第二章",45), ] 需要自己手动更改offset,和目录列表 下面是主要代码: import pypdf # import sys from config import…

影响神经网络速度的因素- FLOPs、MAC、并行度以及计算平台

影响神经网络速度的四个主要因素分别是 FLOPs(浮点操作数)、MAC(内存访问成本)、并行度以及计算平台。这些因素共同作用,直接影响到神经网络的计算速度和资源需求。 1. FLOPs(Floating Point Operations&a…

Streamlit 入门使用指南及与 FastAPI 的配合使用

Streamlit 入门使用指南及与 FastAPI 的配合使用 Streamlit 是一个用于构建数据应用的快速 Web 应用框架,它特别适合数据科学家和机器学习工程师,无需复杂的前端开发知识即可创建交互式应用。结合 FastAPI,可以轻松构建后端服务并将其与 Str…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十六章 C++入门

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识,但是迟迟没有进行一个完整的实践(之前这个项目开发到一半,很多东西没学搁置了,同时原先的项目中也有很多的问题),所以现在准备从零开始做一个基于SpringBootVue的…

【系统架构设计师】2022年真题论文: 论软件维护方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2022年 试题2)解题思路软件维护的类型软件维护的方法软件维护方法的应用案例论文素材参考真题题目(2022年 试题2) 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满…

基于Matlab的语音识别

一、引言 语音识别技术是让计算机识别一些语音信号,并把语音信号转换成相应的文本或者命令的一种高科技技术。语音识别技术所涉及的领域非常广泛,包括信号处理、模式识别、人工智能等技术。近年来已经从实验室开始走向市场,渗透到家电、通信…

如何在 IntelliJ IDEA 中调整 `Ctrl+/` 快捷键生成注释的位置

前言 在使用 IntelliJ IDEA 编写代码时,注释是代码可读性和维护性的重要组成部分。IDEA 提供了快捷键 Ctrl/ 用于快速生成单行注释。然而,默认情况下,使用此快捷键生成的注释会出现在行首,导致注释与代码之间存在较大的空格&…

分布式和微服务系统区别

一、分布式是更广泛的概念,指将计算分布在多个物理节点上的系统。 适用于需要高可用性、高性能、可扩展性的系统。 应用场景:分布式数据库—数据高可用存储、分布式缓存—提升数据访问速度 分布式计算框架—大规模数据计算、分布式文件系统—海量数据的…

Next.js 版本从 15 降级至 14 的操作指南

清除node_modules文件夹:为确保安装环境的整洁性,请先删除node_modules文件夹。 更新package.json文件:在package.json中,将react、react-dom和next的版本号分别修改为18.xx、18.xx(注意:react-dom的版本通…

源鲁杯 2024 web(部分)

[Round 1] Disal F12查看: f1ag_is_here.php 又F12可以发现图片提到了robots 访问robots.txt 得到flag.php<?php show_source(__FILE__); include("flag_is_so_beautiful.php"); $a$_POST[a]; $keypreg_match(/[a-zA-Z]{6}/,$a); $b$_REQUEST[b];if($a>99999…

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮

前提条件 安装 ADB&#xff1a;确保你已经在计算机上安装了 Android SDK&#xff08;或单独的 ADB&#xff09;。并将其添加到系统环境变量中&#xff0c;以便你可以在命令行中运行 adb。 USB调试&#xff1a;确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 &#xff08;1&#xff09;还原数据库-bak、btn文件 &#xff08;2&#xff09;附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…