【MySQL】不允许你不会SQL语句之DDL

news2024/12/25 0:39:48

目录

前言:

一.DDL数据库语句

1.1语句讲解

1.2总结

二.DDL表语句

2.1语句讲解

2.2总结

三.DDL字段语句

3.1语句讲解

3.2总结

四.MySQL数据类型

五.结尾


前言:

  在从零到一入门MySQL一篇中,我们对数据库已经有了一定的了解,接下来让我们学习SQL语句吧!

  如果你对数据库的创建,查找,删除;表的创建,字段的增删不清楚,看完本篇,你一定有所收获!

一.DDL数据库语句

1.1语句讲解

  DDL是数据定义语言,用来对数据库、表、字段进行操作。

show databases;

  这句代码是让命令行窗口显示服务器里一共有多少个数据库,请看下图:

  MySQL系统软件下载后,里面默认有四个系统数据库。

create database if not exists 数据库名 default charset utf8mb4;

  这句代码是创建一个数据库的DDL语句。其中的if not exists 和 default charset utf8mb4是可以省略的。

  if not exists的作用是,如果存在test这个数据库,这句代码什么都不执行,不存在就创建test数据库。

  下滑线部分表示数据库创建成功。

  补充:数据库中有些字符用3个字节不够表示,utf8的大小是3个字节,utf8mb4是4个字节大小。

use 数据库名;

  这句代码的作用是指定使用数据库

  在一般情况下,对一个数据库里的表、字段进行多步操作后,已经忘了自己所处的数据库,使用这句代码:

select database();

  这句代码可以指出现在处在哪个数据库。

drop database if exists 数据库名;

  这句代码是删除数据库的代码,if exists可以省略,意思是如果存在test数据库就删除,否则不执行任何操作。

1.2总结

  DDL语句对数据库的操作有如下:


二.DDL表语句

2.1语句讲解

  数据库的数据模型里,数据库里包含表,所以在讲表的知识,先创建一个数据库先。

show tables;

  查询当前使用数据库里包含的所有

  由于是新建的数据库,所以是空表Empty。

create table employee(
id int comment '编号',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄'
)comment '员工表';

  这是创建表的代码,我们来慢慢分析,别怕!

  首先create table是创建表的意思,这个表名是employee
  接着id、gender、age是表格的字段名int、char(1)、tinyint是数据类型
  最后comment这一部分是注释,可以省略。

  每一个字段与另一个字段之间用逗号隔开,最后一个不加逗号。

desc 表名;

  这句代码可以显示表的字段名,字段的数据类型

  但是看不到注释,虽然我们知道id可能是编号的意思,但是什么编号就不知道了,普通人?门诊号?还有一种查表的语句:

show create table 表名;

  这句代码的意思是,展示创建表时的语句

alter table 表名 rename to 新表名;

  这句代码的意思是选择原先的表名,成新的表名

drop table if exists 表名;

  这句代码是用来删除指定表名的,if exists可以省略,它的意思同前面用到的地方意思是一样的。

  删完之后,test数据库里就没有表了,所以再次显示表的信息时为空。 

truncate table 表名;

  这句代码也是用来删除表的,但它会重新创建一个相同类型的没有数据的表,但表的结构还在。

  比如前面emp这个表不是使用drop而是使用truncate的话,那在show tables的时候,还能看到emp表。

2.2总结

  DDL语句对表的操作有如下:


三.DDL字段语句

3.1语句讲解

  对表中的字段进行操作,也是DDL语句有的属性。接下来我们就来学习对字段的操作吧~

  突然觉得这个表在创建的时候,没有添加一个信息,想增加一个字段,可以这样做:

alter table 表名 add 字段名 数据类型 [comment '注释'];

  比如想加一个表示薪资的字段:

   老板发现工资用int表示,工资给太高了,想给个小一点的整型表示,于是:

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

  这样就可以改掉原先字段的数据类型了,老板很是开心~

  后来老板发现,这个薪资不能直接用数字表现出来,用等级的话隐蔽性会更好,这就需要更换整个字段

alter table 表名 change 旧字段 新字段 新数据类型 [comment '注释']; 

  此时,老板的想法达成了。

alter table emp drop 字段名;

  这段代码的意思是删除指定表的字段名。 

3.2总结

  以下是DDL语句对字段的操作:

  讲到这里,DDL语句的基本操作就讲完啦!可能读者很好奇tinyint、smallint、char(1)这些是什么,我们接下来看。

四.MySQL数据类型

  SQL里的数据类型和其它编程语言有点区别,但也有相似的地方,它分为三类,我们直接看图吧。

 整型

  数值类型是其中的一种类型,tinyint的大小是一个字节的整型,相当于C语言里的char类型。

  smallint相当于C里的shortbigint相当于C里的long long类型。特殊一点的是mediumint占三个字节大小

  浮点类型和C是一样的,有两点特别的是:decimal和控制浮点数小数点保留位数的方式。

  这里得引入两个概念,精度和标度

  • 精度是浮点数总共有多少位数,比如3.14的精度是3。
  • 标度是浮点数有多少个小数位,6.1的标度是1。

  如何表示三位数,一个小数位呢?首先总共有四个有效位,其次是一个小数位,是这样表示的double(4,1)。


  在字符串类型里,有char和varchar,学过C语言的读者会联想到表示字符串用char arr[元素个数]数组表示。

  在MySQL用char(元素个数)表示定长数组,varchar(元素个数)表示可变数组。注意不是方括号

  blob是表示二进制数据的数据类型,text是表示文本数据的数据类型;

  二进制数据类型的有软件包、音频呀这些。一般不会用数据库存储的。

  tinyblob一个字节、blob两个字节、mediumblob三个字节、longblob四个字节、text一样的,博主不赘述了。


  表示日期时间的数据类型:

  date是表示年月日--- yyyy--mm--dd

  time是表示时分秒--- hh--mm--ss

  year是表示年--- yyyy

  datetime表示年月日,时分秒

  timestamp表示的也是年月日,时分秒,不同于datetime的是timestamp是时间戳,由于数值溢出的原因,在2038年会失效,也叫Unix千年臭虫。


五.结尾

  好啦,到这里就讲完SQL语句里的DDL语言,还讲了MySQL中的数据类型与其它编程语言有一定联系,也有区别。

  下面我们将会继续学习SQL语句的另一个分类DML,点点关注不迷路~

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

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

相关文章

Linux 设备树手动反编译 dtb 生成 源文件dts

验证平台 win10 64 位 VMware Workstation Pro 16 ubuntu 20.04 dtc 工具: 来自 linux-6.3.5 中的 scripts/dtc/ 安装 dtc 工具 其实可以通过安装 dtc 软件包,但不建议这么做,最好通过编译Linux 最新的内核,获取这个 dtc 工具…

利用Web Serial API实现Vue与单片机串口通信

一、Web Serial API介绍 Web Serial API 是一项 Web 技术,用于在浏览器中访问串行端口设备(如 Arduino、传感器等)并与之通信。它提供了一组 JavaScript 接口,使得 Web 应用程序可以通过 USB 串行端口连接到硬件设备,并…

华为OD机试真题 Java 实现【报数游戏】【2022Q4 100分】

一、题目描述 100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff…

【JavaSE】Java基础语法(四十五):TCP UDP 全解

文章目录 1. TCP发送数据2. TCP接收数据【应用】3. TCP程序练习4. TCP程序文件上传练习【应用】5. UDP发送数据6. UDP接收数据【应用】7. UDP通信程序练习【应用】8. UDP三种通讯方式 1. TCP发送数据 Java中的TCP通信 Java对基于TCP协议的的网络提供了良好的封装,使…

chatgpt赋能python:Python删除文件目录

Python删除文件目录 Python是一种高级编程语言,广泛应用于开发各种类型的应用程序。Python的许多功能使其成为开发者的首选编程语言之一。在这篇文章中,我们将讨论如何使用Python删除文件和目录。 文件和目录的区别 在开始之前,让我们了解…

16_Linux内核启动流程

目录 链接脚本vmlinux.Ids Linux内核入口stext mmap_switched函数 start_kernel函数 rest_init函数 init进程 链接脚本vmlinux.Ids 要分析Linux启动流程,同样需要先编译一下Linux源码,因为有很多文件是需要编译才会生成的。首先分析Linux内核的连接脚本文件arch/arm/kem…

【Python】Python系列教程-- Python3 字符串(十一)

文章目录 前言Python3 字符串Python 访问字符串中的值Python 字符串更新Python 转义字符Python 字符串运算符Python 字符串格式化Python三引号f-stringUnicode 字符串Python 的字符串内建函数 前言 往期回顾: Python系列教程–Python3介绍(一&#xff…

计算机网络-网络层1.0

传输单位 网络层将分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,传输单位为数据报 路由器 完成路由选择和分组转发 路由选择:按照分布式算法,根据从相邻路由器所得到的的关于整个网络拓扑的变化情况&#xff0…

操作系统第二章​练习题

第一部分 教材习题(P84) 1、什么是前趋图?为什么要引入前趋图?​ 前趋图:是用于描述程序段或进程之间执行的先后顺序的有向无循环图。 引入的原因:为了更好的描述程序的顺序和并发执行的情况。 试画出下面4条语句的前趋图&#…

LeetCode 2559 统计范围内的元音字符串数

LeetCode 2559 统计范围内的元音字符串数 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/count-vowel-strings-in-ranges/description/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目:…

Vue3小兔鲜:组合式写法入门

Vue3&#xff1a;组合式写法入门 Date: May 11, 2023 认识Vue3 1. Vue3组合式API体验 通过 Counter 案例 体验Vue3新引入的组合式API <script> export default {data(){return {count:0}},methods:{addCount(){this.count}} } </script><script setup> imp…

【JavaSE】Java基础语法(四十四):XML解析

文章目录 1. 概述2.标签的规则3. 语法规则【应用】4. xml解析【应用】 1. 概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域…

【分布族谱】高斯分布和逆高斯分布的关系

文章目录 高斯分布逆高斯分布简介通过高斯分布构造逆高斯分布 高斯分布 正态分布&#xff0c;又称Gauss分布&#xff0c;其概率密度函数入下图所示 正态分布 N ( μ , σ ) N(\mu, \sigma) N(μ,σ)受到期望 μ \mu μ和方差 σ 2 \sigma^2 σ2的调控&#xff0c;其概率密度函…

基于SpringBoot+Vue的医疗服务系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

Qt for Android环境配置(联合Android Studio)

目录 1.安装JDK2.安装Android Studio并下载必要组件3.安装QtCreator并配置 Official Doc 1.安装JDK Oracle JDK Download 配置环境变量&#xff1a; 2.安装Android Studio并下载必要组件 Android Studio Download 下图中&#xff0c;31.0.0是当前Qt必需的&#xff0c;3…

chatgpt赋能python:Python制作抽奖——让你的活动更有趣

Python制作抽奖——让你的活动更有趣 在活动中&#xff0c;抽奖环节常常是一大亮点。而用Python制作抽奖程序&#xff0c;则可以更灵活、更实用地完成这个环节。接下来我们将介绍Python制作抽奖的方法&#xff0c;并且说明如何让你的抽奖环节更加有趣。 Python制作抽奖的方法…

【Linux网络服务】Nginx优化

Nginx网页优化 一、配置Nginx网页缓存时间1.1设置方法 二、隐藏Nginx版本号2.1方法一&#xff1a;修改配置文件2.2方法二&#xff1a;修改源码文件&#xff0c;重新编译 三、修改用户与组四、日志切割五、连接超时六、更改进程数七、网页压缩八、配置防盗链九、Linux内核参数优…

华为OD机试真题 Java 实现【素数之积】【2022Q4 100分】

一、题目描述 RSA加密算法在网络安全世界中无处不在&#xff0c;它利用了极大整数因数分解的困难度&#xff0c;数据越大&#xff0c;安全系数越高。 给定一个32位正整数&#xff0c;请对其进行因数分解&#xff0c;找出是哪两个素数的乘积。 二、输入描述 一个正整数num …

基于物理信息的神经网络(Physics-informed Neural Networks;PINNs)Part-1(简单介绍)

【摘要】 基于物理信息的神经网络&#xff08;Physics-informed Neural Networks&#xff0c;简称PINNs&#xff09;&#xff0c;是一类用于解决有监督学习任务的神经网络&#xff0c;它不仅能够像传统神经网络一样学习到训练数据样本的分布规律&#xff0c;而且能够学习到数学…

段的概念-汇编复习(3)

本文小节讨论内容&#xff1a;"段地址x16偏移地址物理地址”的本质含义,段 的 概 念 "段地址x16偏移地址物理地址”的本质含义 注意&#xff0c;这里讨论的是 8086CPU 段地址和偏移地址的本质含义&#xff0c;而不是为了解决具体的问题而在本质含义之上引申出来的更…