[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,一经查实,立即删除!

相关文章

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:/…

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

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

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

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

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

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

基于Matlab的语音识别

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

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

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

源鲁杯 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…

Oracle视频基础1.3.6练习

1.3.6 以下是您的需求清单&#xff08;不含解决方案&#xff09;&#xff1a; 检查数据库启动情况等待会话结束&#xff0c;进行正常关机等待事务全部提交后再关机查看 alert 日志文件查看后台跟踪文件查看用户跟踪文件 检查数据库启动情况 ps -ef | grep oracle ipcs clear…

【大数据学习 | HBASE】hbase的原理与组成结构

1. hbase的简述 hbase作为google的大数据三篇比较重要的论文之一&#xff0c;它的起源叫做bigtable&#xff0c;意思非常简单就是大表的意思&#xff0c;是一个分布式存储很多数据的大型表格系统&#xff0c;它是对于hdfs中的数据不能直观查询和随机读写的病痛的一个补充和完善…

苍穹外卖Bug集合

初始化后端项目运行出现以下问题 以上报错是因为maven和jdk版本不符合&#xff0c;需要将jdk改成17&#xff0c;mavne改成3.9.9

【C++篇】在秩序与混沌的交响乐中: STL之map容器的哲学探寻

文章目录 C map 容器详解&#xff1a;高效存储与快速查找前言第一章&#xff1a;C map 的概念1.1 map 的定义1.2 map 的特点 第二章&#xff1a;map 的构造方法2.1 常见构造函数2.1.1 示例&#xff1a;不同构造方法 2.2 相关文档 第三章&#xff1a;map 的常用操作3.1 插入操作…

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代&#xff0c;太空旅游成为了一个让人热血沸腾的话题。想象一下&#xff0c;坐在一颗漂浮的太空舱里&#xff0c;手中端着饮料&#xff0c;眺望着无尽的星辰大海&#xff0c;简直就像科幻电影中的情节一样。不过&#xff0c;这不仅仅是一个空洞的…

程序中怎样用最简单方法实现写excel文档

很多开发语言都能找到excel文档读写的库&#xff0c;但是在资源极其受限的环境下开发&#xff0c;引入这些库会带来兼容性问题。因为一个小功能引入一堆库&#xff0c;我始终觉得划不来。看到有项目引用的jar包有一百多个&#xff0c;看着头麻&#xff0c;根本搞不清谁依赖谁。…

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜&#xff1a;解法一&#xff1a;解法二&#xff1a; CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中&#xff0c;允许未经认证的远程攻击者通过特定 API 端…

解决虚拟机启动报:此主机支持AMD-V,但AMD-V处于禁用状态

首先要知道你自己使用的主板型号&#xff0c;如果是京东购买的&#xff0c;可以直接上京东去问客服。如果没有订单号&#xff0c;如果能提供正确的主板型号&#xff0c;他们应该也是会帮忙解答的。 您好&#xff0c;AMD 平台与 Intel 平台以及部分新老主板开启虚拟化的步骤和细…