第9章:创建和管理表

news2025/2/24 18:34:38

一、数据库的创建修改和删除

1.SQL的分类

DDL:数据定义语言 create创建、alter修改、drop删除、rename重命名、truncate清空

DML:数据操作语言 insert、delete、update、select

DCL:数据控制语言 commit提交、rollback回滚、savepoint保存点、grant权限、revoke回收权限

2.数据的存储过程

3.标识符命名规则

①数据库名、表名不能超过30字符,变量名限制29字符

②使用A-Z,a-z,0-9,_共63个字符

③对象名中间不能包含空格

④在同一个mysql软件中数据库不能重名。在同一个库中,表不重名。同一个表中,字段不能重名

⑤如果字段有保留字,在sql语句使用`着重号引起来

⑥保持在多个表的相同的字段名和类型的一致性

4.如何创建数据库

如果数据库不存在那么创建成功

create database if not exists 数据库名;

5.管理数据库

①查看当前连接的所有数据库

show databases;

②切换数据库

use 数据库名;

③查看当前数据库的表格

show tables;

④查看当前使用的数据库

select database() from dual;

⑤查看指定的数据库下的表格

show tables from 数据库名;

6.删除数据库

drop database if exists 数据库名

如果存在删除成功,如果不存在默默结束,不会报错。

二、创建数据表

1.MySQL常用的数据类型

 2.创建数据表方式1:

create table if not exists test(
id int,
emp_name varchar(15),
hire_date date
);

①查看表结构

desc test;

②查看创建表的语句

show create table 表名

 3.创建数据表方式2:基于现有表,表中的数据也会复制过来

create table test2
as 
select employee_id,last_name,salary
from employees;

①查看表结构

desc test2;

 

应用:把查询的结果存放到另一张表中,查询语句的别名是新创建表的名称

4.练习:创建一个表emp_copy,实现对employees表的复制,包括数据

create table emp_copy
as
select *
from employees

5.练习:创建一个表emp_blank,实现对employees表的复制,不包括数据

create table emp_copy
as
select *
from employees
where 0

三、数据表(修改、重命名、删除、清空)

1.修改表

alter table

①添加一个字段

alter table test

add salary double(10,2)

②重命名一个字段

alter table test

change salary sal double(10,2)

④删除一个字段

alter table 表名

drop column 列名

2.重命名表

rename table 表名

to 新表名

3.删除表

drop table if exists 表名;

4.清空表

truncate table 表名;

四、DCL的commit和rollback的使用

1. commit:

提交数据。一旦执行commit数据永久保存在数据库中,意思着数据不可以回滚

2. rollback

回滚数据。一旦执行rollback可以实现数据的回滚。

3.对比truncate table 和 delete from

①相同点:对表中所有数据的删除,保留表结构。

②不同点:

truncate table 数据全部删除,数据不能回滚

delete from 数据全部删除,可以回滚

truncate table 比delete速度快,且使用的系统和事务日志资源少,但truncate无事务且不触发trigger,有可能造成事故。不建议使用truncate

4.DDL和DML的说明

①DDL不可回滚,执行完后会执行一次commit

②DML默认不回滚。执行之前设置了 set autocommit = false,可以实现回滚。到最近的commit之后

5.演示—引擎是InnoDB

①delete—回滚到最近的commit之后

commit;
set autocommit=false;
delete from emp_copy;
select * from emp_copy;
rollback;
select * from emp_copy;

②truncate—不能回滚

commit;
set autocommit=false;
truncate table emp_copy;
select * from emp_copy;
rollback;
select * from emp_copy;

6.MySQL8.0的新特性:DDL的原子化

要么执行成功,要么有一个失败后回滚。

五、命名规范

1.表名和字段名用小写字母或数字。用字母开头,不要用数字。单词之间用_

emp_name,level3_name

2.禁用关键字

六、练习

练习一:

#1创建数据库test01_office,指明字符集为utf8。

create database if not exists test01_office character set utf8

#2创建表dept01

create table dept01(

id int(7),

name varchar(25)

);

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

create table dept02

as

select *

from atguigudb.departments

#4创建表emp01

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

where 0

#7. 删除表emp01

drop table emp01

#8. 将表emp02重命名为emp01

rename table emp02 to emp01

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

alter table dept02

add test_column int;

alter table emp01

add test_column int;

show create table emp01;

show create table dept02;

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

alter table emp01

drop column department_id

练习二:

# 1创建数据库test02_market

create database if not exists 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

modify c_contact varchar(50) after c_birth;

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

alter table customers

modify c_name varchar(70)

# 5将c_contact字段名改为c_phone

alter table customers

change c_contact c_phone varchar(50)

# 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

 

练习三:

# 1 创建数据库test03_company

create database if not exists test03_company;

# 2 创建表offices

create table offices(

officeCode int,

city varchar(30),

address varchar(50),

country varchar(50),

postalCode varchar(25)

);

# 3 创建表employees

create table employees(

empNum int,

lastName varchar(50),

firstName varchar(50),

mobile varchar(25),

code int,

jobTitle varchar(50),

birth date,

note varchar(255),

sex varchar(5)

);

# 4、将表employees的mobile字段修改到code字段后面

alter table employees

modify mobile varchar(25) after code;

# 5、将表employees的birth字段改名为birthday

alter table employees

change birth birthday date;

# 6、修改sex字段,数据类型为char(1)

alter table employees

modify sex char(1);

# 7、删除字段note

alter table employees

drop column note;

# 8、增加字段名favoriate_activity,数据类型为varchar(100)

alter table employees

add column favoriate_activity varchar(100);

# 9、将表employees的名称修改为 employees_info

rename table employees to employees_info

 

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

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

相关文章

Spot CEO:我们为什么选择Babylon.js而不是Three.js

为现代网络开发令人兴奋的事情之一是底层平台的快速发展。 WebAssembly、WebGL、WebGPU、Web Worker 等正在解锁以前典型 Web 产品无法想象的体验。 在过去的几年里,我们看到像 Figma 这样的产品利用这一点创造了极具吸引力的业务和产品。 推荐:用 NSDT设…

前端-01Html5基本知识

1 基本 1.1 第一个前端程序 内容 <html><head><title>我的网页</title></head><body>Hello,我的第一个网页</body> </html>使用浏览器打开 1.2 工具安装 浏览器 谷歌浏览器 清缓存 ctrlshiftdelete vscode 生成浏览器文…

cubic 的 tcp friendliness 与拐点控制

TCP CUBIC 应该是迄今为止综合表现最优秀的算法&#xff0c;其中有两个亮点&#xff0c;一个是 RTT 无关性&#xff0c;另一个是可扩展性。RTT 无关性表现在 CUBIC 的 cwnd 表达式中没有 RTT 因子&#xff0c;而可扩展性则来自于曲线本身&#xff1a; 随着 BDP 增加&#xff0…

音视频技术开发周刊 | 292

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功&#xff0c;微软是OpenAI的重要投资者&#xff0c;它将ChatGPT植入必应搜索&#…

【16】SCI易中期刊推荐——计算机 | 人工智能领域(中科院2区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【IO】零拷贝、mmap、sendfile

文章目录 前言一、普通IO二、mmap三、sendfile1. Linux2.1的sendfile2. Linux2.4的sendfile 四、总结与扩展1. 结论2. 解释、扩展 参考 前言 概念&#xff1a; 没有发生CPU拷贝数据&#xff0c;都是DMA&#xff08;直接内存访问&#xff09;拷贝 优势&#xff1a; 减少内核态…

《算经》中的百钱买百鸡问题,你会做吗?试下看看(39)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 你知道我国历史上有个王朝叫北魏吗&#xff1f; 北魏&#xff08;386年—534年&#xff09;&#xff0c;南北朝时期北…

HashMap 简述

文章目录 前言一、HashMap的数据结构二、HashMap存储数据的大致过程1 哈希值2 什么是哈希冲突?3 为何有两种数据结构? 三、HashMap常用知识总结 前言 HashMap 是开发中常用的一种数据结构,通常用做返回值,计算比对等,会经常用到; 一、HashMap的数据结构 jdk8之后,数据结构是…

时至今日,Pascal系列Turbo Pascal 5.0依旧是我心中永远的神

从DOS时代到Windows时代&#xff0c;从桌面应用到Web应用&#xff0c;每一个时代都有它特定的编程工具 在我看来&#xff0c;DOS时代的编程语言&#xff0c;Pascal必占一席之地。 尤其是Turbo Pascal系列的最后一个版本——Turbo Pascal 5.0&#xff0c;更是我心目中永不褪色的…

nginx企业级高性能配置优化

一、基础配置优化 1、CPU亲和性优化 1.1、推荐直接将配置项设置成auto (worker_cpu_affinity)&#xff0c;即采用了Nginx推荐的CPU绑核策略方式。 1.2、手动绑定&#xff0c;将worker线程数量与CPU核心数一一绑定方式设置&#xff0c;设置成auto Nginx会自动识别并按照推荐策略…

New Bing 全面开放?我看未必

前段时间大家应该都被ChatGPT刷屏了&#xff0c;其实就回答来说New Bing 才是最厉害的&#xff0c;因为它底层使用了ChatGPT 并且可以支持联网查询数据&#xff0c;回答中还能支持看到出处&#xff0c;方便确认其真实性。 New Bing 是微软基于 OpenAI ChatGPT 技术开发的新一代…

vue3项目搭建

一、安装 vue3.0 脚手架 &#xff08;1&#xff09;node安装&#xff08;前端开发环境&#xff09; 打开node官网:https://nodejs.org/zh-cn/ 下载node并安装&#xff08;安装vue3建议node在10.0版本以上&#xff09;。 输入node -v可显示node版本 &#xff08;2&#xff09;…

使用思维链(Chain-of-thoughts)提示在大型语言模型中引出推理

语言模型(LM)在NLP领域的发展速度非常快&#xff0c;特别是在大型语言模型(LLM)方面&#xff1a;当语言模型具有大量参数或权重/系数时&#xff0c;它们被称为“大型”。这些“大型”语言模型拥有处理和理解大量自然语言数据的能力。 LLM被用于一系列自然语言任务&#xff0c;…

【Java EE】-Servlet(三) MessageWall

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;前后端交互接口协商&#xff0c;约定好&#xff0c;使用什么数据格式传输&…

变现 起航篇! 手把手交你用chatgpt快速生成视频!

Chatgpt 很多同学都用的非常熟练了&#xff0c;但是都停留在文字阶段&#xff0c;有没有更好玩的用法&#xff0c;可以深度的利用chatgpt做一些事情呢&#xff1f; 今天菜哥就找一个方法可以快速利用chatgpt制作视频&#xff0c;整个过程大概3分钟&#xff0c;非常有趣&#xf…

浪涌保护器的工作类型及其应用

所有电路系统中的电气设备都需要浪涌保护器的保护支持。这主要取决于器件的内部电路如何能够处理电压波动。如果器件出现输入电压波动&#xff0c;则会导致器件损坏&#xff0c;因为电源电压的波动可能对器件有害。在本文中&#xff0c;我们将了解什么是浪涌保护器&#xff0c;…

【源码+个人总结】Spring 的 三级缓存 解决 循环依赖

Spring可以通过以下方法来避免循环依赖&#xff1a; 构造函数注入&#xff1a;使用构造函数注入来注入依赖项&#xff0c;这是一种比较安全的方式&#xff0c;因为在对象创建时就会注入依赖项&#xff0c;可以避免循环依赖。 Setter方法注入&#xff1a;使用Setter方法注入依赖…

云开发谁是卧底线下小游戏发牌助手微信小程序源码

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/87614365 云开发谁是卧底线下小游戏源码&#xff0c;发牌助手微信小程序源码。 “谁是卧底OL”是一个非常有趣&#xff0c;风靡全国的比拼语言表述能力、知识面与想象力的游戏。 谁是卧底OL是一款由开发…

Notepad++下载安装NppFTP插件

文章目录 一、Notepad内下载安装NppFTP插件1.打开Notepad——插件——插件管理2.找到NppFTP插件——点击安装3.安装完成 二、直接下载安装NppFTP插件1.网盘下载2.将下载好的NppFTP插件放入到Notepad\plugins的插件目录下3.重启Notepad 三、Notepad下载总结 一、Notepad内下载安…

【刷题】142. 环形链表 II

142. 环形链表 II 一、题目描述二、示例三、实现3.1 方法13.2 方法2 142. 环形链表 II 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 nex…