MySQL 篇-深入了解 DDL 语言(一)

 🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍
   

 

文章目录

        1.0 MySQL 说明

        2.0 DDL 语言

        2.1 DDL 语言 - 定义数据库

        2.1.1 创建数据库操作

        2.1.2 查看数据库操作

        2.1.3 使用数据库操作

        2.1.4 删除数据库操作

        2.2 DDL 语言 - 定义表格

        2.2.1 创建表格操作

        2.2.2 查询表格操作

        2.2.3 删除表格操作

        2.2.4 修改表格操作


        1.0 MySQL 说明

        MySQL 是一种关系型数据库管理系统,它支持使用 SQL(Structured Query Language)来管理和操作数据库。SQL 是一种标准化的数据库查询语言,包括 DDL、DML、DQL、DCL 和 TCL等不同类型的语句。

        2.0 DDL 语言

        DDL 是数据定义语言(Data Definition Language)的缩写,是一种用于定义数据库结构和模式的语言。DDL 包括创建、修改和删除数据库表、视图、索引等数据库对象的语句。常见的 DDL 语句包括 CREATE、ALTER 和 DROP 等。因此,DDL 不是一种独立的编程语言,而是用于管理数据库结构的语言。简单来说, DDL 就是对数据库、表进行增加、删除、查询、修改

        2.1 DDL 语言 - 定义数据库

        用 DDL 语言来对数据库的操作主要有一下四点:创建数据库、查询当前的数据库、使用指定的数据库、删除数据库。

        2.1.1 创建数据库操作

创建数据库的 SQL 语句为:

create database [ if not exists ] 数据库名;

        对于 [ if not exists ] ,翻译为:"如果改数据库不存在" 。这段代码可写可不写,没有强制要求。主要区别是,若没有加上这段代码且存在该数据库,则会报错;若加上这段代码且存在该数据库。则不会报错。

        已知已经存在 db01 这个数据库了,通过 create database db01; 再来创建时,会报错。如果加上 if not exists ,那么及时创建相同的数据库也不会报错,当然也不可能创建一个一摸一样的数据库。

        2.1.2 查看数据库操作

查看全部数据库的 SQL 语句:

 show databases;

        需要注意的是,这里的 databases 记得加上 s 且该后面结尾加上 ";" 。 

查看的结果为:

        在红色框里面的数据库是 MySQL 自带的数据库,万万不可对这四个数据库进行任何危险操作。否则 MySQL 出现问题,需要重新安装了。

        除了这个查看全部数据库操作之外,还有查看当前使用数据库操作。

 查看当前数据库的 SQL 语句:

select database();

        这里的 database 是没有加上 s 的且注意是加上 () 。

操作结果为:

        当前使用的数据库为 db01 。

        2.1.3 使用数据库操作

使用数据库的 SQL 语句:

use 数据库名;

        简单来说,就是选择指点的数据库。

操作结果为:

        2.1.4 删除数据库操作

删除数据库的 SQL 语句:

drop database if exists 数据库名;

        若存在该数据库,删除不会报错;如果没有加上 if exists 这段代码,那么当不存在该数据库而要删除该数据库时,会报错。

操作结果为:

        删除该数据库后,查看全部数据时,不存在 db01 这个库了。显然是删除成功了。

        2.2 DDL 语言 - 定义表格

        在对表进行操作之前,需要先选择数据库。DDL 来定义表格的操作有:创建表格、查询表格、修改表格、删除表格。

        2.2.1 创建表格操作

        1)在创建表格之前,先来简单了解约束

        约束概念:约束是作用与表中字段上的规则,用于限制存储在表中的数据。

        约束目的:保证数据中数据的正确性、有效性和完整性。

约束类型如下:

        2)在创建表格之前,再来简单了解数据类型

        数据类型可以简单理解为,该字段需要存储空间的大小。总共分为三大类:数值类型、字符串类型、日期时间类型。

数值类型如图:

字符串常见类型如图:

         两者区别:举例子 char(10) 与 varchar(10) ,对于 char(10) 来说,不管空间是否占满,都要消耗 10 个字节大小的空间。而对于 varchar(10) 来说,若空间没有占满 10 个字节大小,就会按照消耗实际存储空间大小。

日期时间类型如图:

3)创建表格的 SQL 语句:

create table 表名(字段 1 字段类型 [约束] [ comment 字段1注释 ],......字段 n 字段类型 [约束] [ comment 字段n注释] 
) [comment 表注释];

实际例子演示: 

create table tb_user(id tinyint unsigned auto_increment primary key comment '唯一标识',username varchar(20) not null unique comment '用户名',name varchar(20) not null comment '名字',age tinyint unsigned comment '年龄',gender char(1) default '男' comment '性别,默认为男性'
)comment '用户表';

操作结果为:

        这就可以得到一个表格。之后就可以在表格中添加数据了。

        2.2.2 查询表格操作

查询当前该数据库中的全部表的 SQL 语句:

-- 查看表
show tables;

操作结果为:

查询该表的结构的 SQL 语句:

-- 查看表的结构
desc 表名;

操作结果为:

        注意查询两者的区别:一个是查询所有的表、另一个是查询指定表的结构

        2.2.3 删除表格操作

删除表格的 SQL 语句为:

-- 删除表
drop table 表名;

        2.2.4 修改表格操作

1)添加字段的 SQL 语句:

alter table 表名 add 字段名 类型 [约束];

 2)修改字段类型的 SQL 语句:

alter table 表名 modify 字段名 新数据类型;

3)修改字段名和字段类型的 SQL 语句:

alter table 表名 change 旧字段名 新字段名 类型 [约束];

4)删除字段的 SQL 语句:

alter table 表名 drop column 字段名;

5)修改表名的 SQL 语句:

rename table 旧表名 to 新表名;

 结合以上操作举个修改例子:

-- 增加表中的列
alter table tb_user add qq char(10) comment 'QQ号';-- 修改字段类型
alter table tb_user modify qq char(22);-- 修改字段名和字段类型
alter table tb_user change qq qq_name char(20);-- 删除表中的指定的字段
alter table tb_user drop column qq_name;-- 修改表中的名字
rename table tb_user to tb_user2;
rename table tb_user2 to tb_user;

 

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

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

相关文章

PHM设备健康管理工厂案例

PHM(Prognostics and Health Management)设备健康管理在工厂应用中有许多成功的案例。以下是一些常见的工厂案例: 1.GE航空发动机:GE航空发动机利用PHM技术对发动机进行实时监测和健康管理,帮助航空公司提前预知发动机…

【PHP设计模式00】23种设计模式实战

【写在前面】 最近写一些关于PHP设计模式的文章,对常用设计模式进行总结,其中参考了关于设计模式的书籍、前辈的博客,以及自己的实际工作经验与体会。才疏学浅,如有疏漏,敬请交流。 所谓设计模式,就是特定环境下同类问题的一种解决方案,与语言无关,随着各种各样…

挑战30天学完Python:Day22 爬虫

🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没…

LeetCode第二题: 两数相加

文章目录 题目描述示例 解题思路 - 迭代法Go语言实现 - 迭代法算法分析 解题思路 - 模拟法Go语言实现 - 模拟法算法分析 解题思路 - 优化模拟法主要方法其他方法的考虑 ‍ 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方…

2024.2.25 模拟实现 RabbitMQ —— 网络通信设计(服务器)

目录 引言 约定应用层的通信协议 自定义应用层协议 Type Length PayLod 实现 Broker Server 类 属性 与 构造 启动 Broker Server 停止 Broker Server 处理客户端连接 读取请求 与 写回响应 根据请求计算响应 清除 channel 引言 生产者 和 消费者 都是客户端&…

Onlyfans 地址错误、无法支付、年龄验证等问题解决方案!!!

很多客户在 Onlyfans 绑卡时,出现了地址错误,年龄验证,无法支付等各种问题。 出现这个问题的原因: 一是用国内邮箱注册了, 二是 ip 有问题,会导致出现年龄验证,或无法支付 Onlyfans 等问题。…

OpenHarmony 分布式开发实战——线上菜单

简介 分布式菜单demo 模拟的是多人聚餐点菜的场景,不需要扫码关注公众号等一系列操作,通过分布式数据库可以方便每个人可及时查看到订单详情,数量,总额等;效果如下 demo效果 工程目录 完整的项目结构目录如下 ├─…

linux系统---httpd

目录 Internet的起源 一、http协议——超文本传输协议 1.http相关概念 二、HTTP请求访问的完整过程 1、 建立连接 2、 接收请求 3、 处理请求 常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS 3.1 常见的HTTP方法 3.2 GET和POST比较 4、访问资源 …

【postgresql】数据表id自增与python sqlachemy结合实例

需求: postgresql实现一个建表语句,表名:student,字段id,name,age, 要求:每次添加一个数据id会自动增加1 在PostgreSQL中,您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

MongoDB之客户端工具与核心概念及基本类型篇

MongoDB之客户端工具与核心概念及基本类型篇 文章目录 MongoDB之客户端工具与核心概念及基本类型篇1. MongoDB是什么?1. 关于MongoDB2. 相关客户端工具1. MongoDB Compass2. Studio 3T3. Navicat for MongoDB4. NoSQL Manager for MongoDB Professional 2.MongoDB相关概念2.1 …

4.测试教程 - 用例篇

文章目录 1.测试用例的基本要素2.测试用例的给我们带来的好处3.测试用例的设计方法3.1基于需求进行测试用例的设计3.1.1功能需求测试分析3.1.2非功能需求测试分析 3.2具体的设计方法3.2.1等价类3.2.2边界值3.2.3错误猜测法3.2.4判定表3.2.5场景设计法3.2.6因果图3.2.7因果图的需…

Python 鼠标模拟

鼠标模拟即:通过python 进行模拟鼠标操作 引入类库 示例如下: import win32api import win32con import time 设置鼠标位置 设置鼠标位置为窗口中的回收站。 示例如下: # 设置鼠标的位置 win32api.SetCursorPos([30, 40]) 双击图标 设置…

springboot+vue前后端分离适配cas认证的跨域问题

0. cas服务搭建参考:CAS 5.3服务器搭建_cas-overlay-CSDN博客 1. 参照springsecurity适配cas的方式, 一直失败, 无奈关闭springssecurity认证 2. 后端服务适配cas: 参考前后端分离项目(springbootvue)接入单点登录cas_前后端分离做cas单点登录-CSDN博客 1) 引入maven依赖 …

如何系统地自学 Python

设定学习目标 确定自己学习 Python 的目的和用途,这一步很重要,比如是为了编写脚本、开发网站、进行数据分析等。设定清晰的学习目标,把目标拆分为一个个阶段的小目标,通过完成一个个小目标,得到正反馈,激…

SD-WAN解决企业组网中网络卡顿问题

网络卡顿已成为企业组网中一大难题,特别是随着办公应用系统的内网服务器或云端部署,员工对网络的依赖日益增加。面对网络卡顿问题,我们不得不深入思考如何提升工作效率并改善员工体验。本文将深入探讨企业组网中的网络问题,并介绍…

DeepMind基础世界模型Genie:一张草图即为一个世界,通用AI智能体要来了?

一张草图即为一个世界!Google DeepMind 推出了首个以无监督方式从未经标注的互联网视频中训练而来的生成交互环境模型——Genie。该模型可以通过文本、合成图像、照片甚至草图来生成无数种可玩(动作可控)的虚拟世界。 据介绍,Geni…

网站被降权?可能是包含敏感词

随着互联网的快速发展,越来越多的企业开始认识到网站建设和维护的重要性。然而,在网站运营的过程中,我们往往会遭遇一些头疼的问题,比如说,网站可能会遭受降权的困扰。为了解决这一难题,我们将专注探讨一个…

使用管道和system V进行进程间通信

进程通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程…

[CountDownLatch实现等待TcpServer启动完毕后再发射事件]

背景: 有时候,我们希望NettyServer启动时不能说卡住主线程。 也不能说:直接就启动一个线程,不然没办法发射出“服务器启动”这个事件。 这时就可以使用此类执行完毕后,通知下主线程。 1)TcpServer.java package org.e…

投资生涯的核心密码:构建交易逻辑体系

首先,我们需要明确一点,交易中究竟有没有确定性? 确定性是指在某一种形式、或有若干条件时,价格必然会上涨或下跌,也可以决定上涨或下跌的程度。 我认为,没有。迄今为止还没有一个理论能发现即使确定的东西…