当前位置: 首页 > news >正文

DDL 数据定义语言

DDL 数据定义语言

目录

    • 概述
    • 一、库的管理
      • 1、库的创建
      • 2、库的修改【一般不修改,容易出现错误】
      • 3、库的删除
    • 二、表的管理【重要】
      • 1、表的创建
      • 2、表的修改
      • 3、表的删除
      • 4、表的复制 【可以跨库复制】
    • 练习题

概述

数据定义语言
库和表的管理
一、库的管理
创建、修改、删除(删除的是整个表而不是数据)
二、表的管理
创建、修改、删除

创建:create
修改:alter
删除:drop

一、库的管理

1、库的创建

语法:

create databaseif not exists】 库名【 character set 字符集名称】;

案例:创建库Books

create database Books;

【补充】MySQL库中数据的存储路径
记录在电脑中的位置:D:\MySQLData\MySQL\MySQL Server 8.0\Data
在这里插入图片描述

2、库的修改【一般不修改,容易出现错误】

可以更改库的字符集

alter database books character set gbk;#utf8mb4

要修改库名的话需要进本地的data文件夹重命名来改,并重新启动MySQL80服务

3、库的删除

drop database books;
drop database if exists books;

二、表的管理【重要】

create database if not exists books;
use books;

1、表的创建

  • 语法:
      create table 表名(列名 列的类型【(类型对应的长度) 列的约束】,create table 表名(列名 列的类型【(类型对应的长度) 列的约束】,……,create table 表名(列名 列的类型【(类型对应的长度) 列的约束】);
    
  • 案例:创建表book
    create table book(id int,bName varchar(20),price double,authorid int,publishdate datetime);
    create table if not exists book(id int,bName varchar(20),price double,authorid int,publishdate datetime);
    desc book;
    
  • 案例:创建authors表
    create table authors(id int,au_name varchar(20),nation varchar(20));
    desc authors;
    

2、表的修改

  1. 修改列名
    alter table 表名 change 【column 】原列名 新列名 列的类型;
    
  2. 修改列的类型或约束
    alter table 表名 modify column 列名 要修改的列的类型;
    
  3. 添加列(默认将新列添加到所有列的后面)
    alter table 表名 add column 列名 列的类型;
    
    要添加到指定位置(不支持last)
    alter table 表名 add column 列名 列的类型 first;#将新列作为第一列
    alter table 表名 add column 列名 列的类型 after 字段名;#将新列  放在某一列的后面
    
  4. 删除列
    alter table 表名 drop column 列名;
    
  5. 修改表名
    alter table 原表名 rename to 新表名;
    
alter table 表名 add|drop|change|modify column 列名 【列的类型 约束】;
#案例:将book表中的publish列的名字修改为pubdate
alter table book change column publishdate pubdate datetime;
desc book;
#案例:将book表中的publish列的类型修改为timestamp
alter table book modify column pubdate timestamp;
desc book;
#案例:在authors表中添加年薪列annual,类型为double
alter table authors add column annual double;#必须加column
desc authors;
#案例:删除authors表中的annual列 
alter table authors drop column annual;
desc authors;
#注:删除列的时候无法使用if exists关键字
#案例:
alter table authors rename to book_author;
desc book_author;

3、表的删除

语法:

drop tableif not exists】 表名;

案例:删除作者的信息表

drop table book_author;
#添加容错性处理 
drop table if exists book_author;
show tables;#查看当前数据库的所有表 

通用的写法

drop database if exists 旧库名;
create database 新库名;drop table 旧表名;
create table 表名();

4、表的复制 【可以跨库复制】

create table authors(id int,au_name varchar(20),nation varchar(20));
insert into authors values(1,'村上春树','日本'),(2,'莫言','中国'),(3,'冯唐','中国'),(4,'金庸','中国');
select * from authors;
  1. 仅仅只能复制表的结构
     create table copy1 like authors;desc copy1;select * from copy1;
    
  2. 复制表的结构加数据
    create table copy2 select * from authors;
    desc copy2;
    select * from copy2;
    
  3. 只复制部分数据(可选部分字段)
    create table copy3 select id,au_name from authors where nation='中国';
    desc copy3;
    select * from copy3;
    

推广:仅仅复制某些字段(不加数据)

create table copy4 select id,au_name from authors where 1=2;
create table if not exists copy4 select id,au_name from authors where 0;
select * from copy4;

练习题

  1. 创建表 dept1
    nameNull?type
    idint(7)
    namevarchar(25)
    create database if not exists test;
    use test;
    create table dept1(id int(7),name varchar(25));
    desc dept1;
    
  2. 将表 departments 中的数据插入新表 dept2 中
    create table dept2 select * from myemployees.departments;
    select * from dept2;
    
  3. 创建表 emp5
    nameNull?type
    idint(7)
    First_nameVarchar (25)
    Last_nameVarchar(25)
    Dept_idint(7)
    create table emp5(id int(7),First_name varchar(25),Last_name varchar(25),Dept_id int(7));
    desc emp5;
    
  4. 将列 Last_name 的长度增加到 50
    alter table emp5 modify column Last_name varchar(50);
    desc emp5;
    
  5. 根据表 employees 创建 employees2
    create table employees2 like myemployees.employees;
    desc employees2;
    select * from employees2;
    
  6. 删除表 emp5
    drop table emp5;
    show tables;
    
  7. 将表 employees2 重命名为 emp5
    alter table employees2 rename to emp5;
    show tables;
    
  8. 在表 dept1 和 emp5 中添加新列 test_column,并检查所作的操作
    alter table dept1 add column test_column int;
    alter table emp5 add column test_column int;
    desc dept1;
    desc emp5;
    
  9. 直接删除表 emp5 中的列 test_column
    alter table emp5 drop column test_column;
    desc emp5;
    

相关文章:

DDL 数据定义语言

DDL 数据定义语言 目录概述一、库的管理1、库的创建2、库的修改【一般不修改,容易出现错误】3、库的删除二、表的管理【重要】1、表的创建2、表的修改3、表的删除4、表的复制 【可以跨库复制】练习题概述 数据定义语言 库和表的管理 一、库的管理 创建、修改、删除…...

设计模式概述

1. 概念 设计模式概念的提出:   设计模式最早于1977年在建筑设计行业中被 克里斯托夫亚历山大(Christopher Alexander) 在他的著作 《建筑模式语言:城镇、建筑、构造》 中提出。   软件工程界在1990年开始了设计模式话题的研…...

华为OD机试 - 箱子之形摆放(Python)| 真题+思路+考点+代码+岗位

箱子之形摆放 题目 有一批箱子(形式为字符串,设为str), 要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。 例如:箱子ABCDEFG,空地宽度为3,摆放结果如图: 则输出结果为: AFG BE CD 输入 输入一行字符串,通过空格分隔,前面部…...

第九章:创建用户和用户权限

Windows:创建用户:第一种方法创建用户:先点右上角的工具,然后点击AD用户和计算机双击skills.com打开目录,再双击Users,进入文件夹中在右框中右击空白处,新建用户填充好用户信息后点击下一步然后…...

如何制定人生目标

一、如何分解目标 人生终极目标并不一定要多详细精确,但一定要被分解,要分成长期目标、中期目标和一系列的短期目标,其中短期目标又可以分解为你能够马上操作的一个个的小目标。 二、目标制定的原则 目标制定遵循 SMART-W 原则: …...

用户认证概述

文章目录一、用户身份认证1.1 单一服务器模式1.2 SSO(Single Sign On)模式1.3 Token模式二、JWT令牌2.1 JWT 令牌说明2.2 JWT令牌的组成2.3 JWT 问题和趋势2.4 JWT 测试一、用户身份认证 1.1 单一服务器模式 一般过程如下: 用户向服务器发送…...

XQuery FLWOR + HTML

XML 实例文档 我们将在下面的例子中继续使用这个 "books.xml" 文档(与上一节中的文件相同)。 在您的浏览器中查看 "books.xml" 文件。 在一个 HTML 列表中提交结果 请看下面的 XQuery FLWOR 表达式: for $x in doc(&…...

MySQL用户管理

文章目录MySQL用户管理用户用户信息创建用户修改用户密码删除用户数据库的权限MySQL中的权限给用户授权回收权限MySQL用户管理 与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某…...

C++【模板初阶】

✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 No one saves us but ourselves, no one can and no one may. We ourselves must walk the path. 除了我们自己,没有人能拯救我们&#xf…...

华为OD机试 - 磁盘容量(Python)| 真题+思路+考点+代码+岗位

磁盘容量 题目 磁盘的容量单位常用的有M、G、T 他们之间的换算关系为1T =1024G,1G=1024M 现在给定n块磁盘的容量,请对他们按从小到大的顺序进行稳定排序 例如给定5块盘的容量 5 1T 20M 3G 10G6T 3M12G9M 排序后的结果为 20M 3G 3M12G9M 1T 10G6T 注意单位可以重复出现 上述…...

更专业、安全、可控!政企都选择WorkPlus私有化部署

现如今政企机构在信息化建设的过程中,内部的沟通协作都离不开即时通讯软件。但大多数企业使用的即时通讯软件都是Saas部署的,虽然使用Saas部署产品成本低,又方便快捷,但还是建议企业有条件最好使用私有化部署的即时通讯软件&#…...

[SDX12] X12 USB to LTE IPA概率不生效问题分析及优化策略

问题描述 在测试USB to LTE的流量过程中,发现IPA概率失效,正常可以跑到320Mbps,但是跑流1分钟左右会出现IPA失效及跑流掉坑的情况。 问题log dmesg log 3,1862,149793394,-;ipa ipa3_ioctl:3564 using obselete command: IPA_IOC_RM_ADD_DEPENDENCY 3,1863,149793549,-;ipa …...

mysql8.0(单表查询与多表拆线)

目录 单表查询 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工资和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和工作时间的新表&…...

用于汽车传感器的混合点云语义压缩:性能评估

Hybrid Point Cloud Semantic Compression for Automotive Sensors: A Performance Evaluation https://arxiv.org/pdf/2103.03819.pdf 在自动驾驶中,车辆与车辆之间的信息共享起着重要作用。在所有传感器中,激光雷达产生的3D点云的数据量通常较高。因…...

最流行十大在线客服系统排行榜-市场常见客服系统软件排行-2023最新

2023年榜单规则依据 在线客服系统十大品牌榜数据由CNPP品牌榜中榜大数据「研究院」和CN10排排榜技术「研究院」通过资料收集整理,并基于大数据统计及人为根据市场和参数条件变化的分析研究专业测评而得出,是大数据、云计算、数据统计真实客观呈现的结果&…...

算法笔记(六)—— 二叉树相关概念及经典算法题

二叉树的相关概念(判断方式) 1. 搜索二叉树:对每棵子树,左树比头小,右树比头大。 中序遍历,判断是否升序 2. 完全二叉树:最后一层满或从左到右遍满。 宽度遍历,如果有节点有右孩子…...

redux全网最详细教程

一.路由懒加载 关键点: lazy懒加载 Suspense组件(添加加载提示) utils文件夹 –LazyLoad.js //lazy懒加载 Suspense 组件(添加加载提示) import {lazy,Suspense} from react export default function LazyLoad(url)…...

华为OD机试 - 匿名信(Python)| 真题+思路+考点+代码+岗位

匿名信 题目 电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字减下来,剪拼成匿名信。 现在又一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。 但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注…...

【Python】编写代码实现指定下标值顺序进行正序和倒序排序算法编程

🎉🎉 在本次python文章中,主要通过定义一个排序方法,实现一组数列能够按照另一组数列指定的位置进行重新排序输出,默认正序排序,可通过True表示逆序输出 目录1、知识点2、数列和元组1)错误遍历方…...

Sitara™处理器的产品开发路线图

Sitara™处理器的产品开发路线图概述Evaluation Phase(评估阶段)Board Development Phase(硬件发展阶段,硬件设计人员应重点关注这个阶段)Software Development Phase(软件发展阶段)Product Phase/SW Lifecycle概述 一般情况下,会存在四个主要的发展阶段…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...