MySQL基础-----SQL语句之DDL语句

news2024/11/15 10:57:31

目录

前言

 开启登录数据库

一、数据库操作 

1.查询所有数据库

 2.切换使用数据库

3.查询当前使用的数据库

4.创建数据库 

创建一个hello数据库, 使用数据库默认的字符集。

 创建一个itheima数据库,并且指定字符集

 5.删除数据库

 二、表操作

1.查询当前数据库所有表

2.查看指定表结构 

3.查询指定表的建表语句

4.创建表-建表语句

 5.创建表-数据类型

数值类型 

字符串类型 

日期时间类型 

 6.表操作-修改

01.添加字段

02.修改数据类型 

03.修改字段名和字段类型

 04.删除字段

05.修改表名

7.表操作-删除

删除表

删除指定表, 并重新创建表


前言

        上一期我们简单介绍了MySQL数据库的相关内容以及SQL语句的分类,那么本期我们开始学习SQL语句中的ddl语句部分,DDL语句即Data  Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段),下面我会通过数据库和表的操作来演示。

 开启登录数据库

        cmd 管理员进入,然后用指令开启MySQL服务器net start mysql  

        然后就是登录等等操作,在上一期就讲解过了这里就不多说了(上一期链接:MySQL入门------数据库与SQL概述-CSDN博客)。

一、数据库操作 

1.查询所有数据库

show databases; 

 2.切换使用数据库

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。

use 数据库名称;

3.查询当前使用的数据库

select database(); 

 

4.创建数据库 

创建一个hello数据库, 使用数据库默认的字符集。

 create database hello;

 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。

 可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。

 create database if not exists hello;

 创建一个itheima数据库,并且指定字符集

create database itheima default charset utf8mb4;

 5.删除数据库

drop database [ if exists ] 数据库名字;

如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。 

 二、表操作

1.查询当前数据库所有表

show tables; 

比如,我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构。 

use sys;

show tables;

2.查看指定表结构 

desc 表名; 

 通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息。

3.查询指定表的建表语句

show create table 表名;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。 

4.创建表-建表语句

 create table 表名(

        字段1 类型 [comment 注释],

        字段2 类型 [comment 注释],

        字段3 类型 [comment 注释],

        ……

) [comment 注释];

注意: [...] 内为可选参数, 后一个字段后面没有逗号

 5.创建表-数据类型

在上述的建表语句中,我们在指定字段的数据类型时,用到了int ,varchar,那么在MySQL中除了以上的数据类型,还有哪些常见的数据类型呢? 接下来,我们就来详细介绍一下MySQL的数据类型。

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型 

类型

大小

有符号(SIGNED)范围

无符号(UNSIGNED)范围

描述

TINYINT

1byte

(-128,127)

(0,255)

小整数值

SMALLINT

2bytes

(-32768,32767)

(0,65535)

大整数值

MEDIUMINT

3bytes

(-8388608,8388607)

(0,16777215)

大整数值

INT/INTEGER

4bytes

(-2147483648,

2147483647)

(0,4294967295)

大整数值

BIGINT

8bytes

(-2^63,2^63-1)

(0,2^64-1)

极大整数值

FLOAT

4bytes

(-3.402823466 E+38,

3.402823466351 E+38)

0 和 (1.175494351 E-

38,3.402823466 E+38)

单精度浮点数值

DOUBLE

8bytes

(-1.7976931348623157

E+308,

1.7976931348623157

E+308)

0 和

(2.2250738585072014

E-308,

1.7976931348623157

E+308)

双精度浮点数值

DECIMAL

 

依赖于M(精度)和D(标度) 的值

依赖于M(精度)和D(标度)的值

小数

值(精

确定点数)

要根据实际情况去选择恰当的数据类型,比如年龄不会出现负数,所以要选择无符号类型。

字符串类型 

类型

大小

描述

CHAR

0-255 bytes

定长字符串(需要指定长度)

VARCHAR

0-65535 bytes

变长字符串(需要指定长度)

TINYBLOB

0-255 bytes

不超过255个字符的二进制数据

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为 大占用长度 。相对来说,char的性能会更高些。 

日期时间类型 

类型

大小

范围

格式

描述

DATE

3

1000-01-01 至 9999-12-31

YYYY-MM-DD

日期值

TIME

3

-838:59:59 至 838:59:59

HH:MM:SS

时间值或持续时间

YEAR

1

1901 至 2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00 至

9999-12-31 23:59:59

YYYY-MM-DD

HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:01 至

2038-01-19 03:14:07

YYYY-MM-DD

HH:MM:SS

混合日期和时间值,时间戳

 下面创建一个emp员工表,要求如下:

  1. 编号(纯数字)
  2. 员工工号 (字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)

建表语句如下:

create table emp(
    id int comment '编号',
    num varchar(10) comment '编号',
    name varchar(10) comment '名字',
    gender char(1) comment '性别',
    age tinyint unsigned comment '年龄',
    idcard char(18) comment '身份证',
    entrydate date comment '入职时间'
) comment '员工表';

SQL语句编写完毕之后,就可以在MySQL的命令行中执行SQL,然后也可以通过 desc 指令查询表结构信息: 

表结构创建好了,里面的name字段是varchar类型, 大长度为10,也就意味着如果超过10将会报错,如果我们想修改这个字段的类型 或 修改字段的长度该如何操作呢?接下来再来讲解DDL语句中,如何操作表字段。 

 6.表操作-修改

01.添加字段

alter table emp add 字段名 类型 [comment '注释'];

案例:下面在上面emp表的基础上添加一个老板名字的字段 

 alter table emp add emloyer varchar(10) comment '老板';

02.修改数据类型 

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

案例:把上面老板的数据类型由varchar(10)改为varchar(20)

alter table emp modify emloyer varchar(20);

03.修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例 : 将emp 表的emloyer 字段修改为 username ,类型为 varchar(30)
alter table emp change emloyer username varchar(30) comment '昵称';

 04.删除字段

 ALTER TABLE 表名 DROP 字段名;

案例 : 将emp 表的字段 username 删除

 alter table emp drop username;

05.修改表名

ALTER TABLE 表名 RENAME TO 新表名;
案例 : 将emp 表的表名修改为 employee

 alter table emp rename to employee;

7.表操作-删除

删除表

DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作 ( 如果不
加该参数项,删除一张不存在的表,执行将会报错 )
案例 :
如果 tb_user 表存在,则删除 tb_user
删除指定表, 并重新创建表

其中的数据被全部删除了,只保留下表结构

TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

以上就是本期的全部内容了,我们下次见!

 分享一张壁纸:

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

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

相关文章

递归与递推(蓝桥杯 c++)

目录 题目一&#xff1a; 代码&#xff1a; 题目二: 代码&#xff1a; 题目三&#xff1a; 代码&#xff1a; 题目四&#xff1a; 代码&#xff1a; 题目一&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> using namespace std; int …

deep learning with pytorch(一)

1.create a basic nerual network model with pytorch 数据集 Iris UCI Machine Learning Repository fully connected 目标:创建从输入层的代码开始&#xff0c;向前移动到隐藏层&#xff0c;最后到输出层 # %% import torch import torch.nn as nn import torch.nn.funct…

Vue开发实例(五)修改项目入口页面布局

修改项目入口 一、创建新入口二、分析代码&#xff0c;修改入口三、搭建项目主页面布局1、Container 布局容器介绍2、创建布局3、布局器铺满屏幕4、创建Header页面5、加入Aside、Main和Footer模块 一、创建新入口 创建新的入口&#xff0c;取消原来的HelloWorld入口 参考代码…

图像分割 - 凸包(图像的轮廓)

1、前言 之前的文章 绘制几何图形的轮廓,介绍了矩形包围框和圆形包围框。 虽然这两种包围框以及足够逼近图形的边缘,但为了保持几何形状(矩形和圆形),其实与图形的真实轮廓贴合度较差,为了更贴近图形轮廓,这里介绍凸包。 凸包:图形最外层的端点,将端点连接起来,围…

[C++]AVL树怎么转

AVL树是啥 一提到AVL树&#xff0c;脑子里不是旋了&#xff0c;就是悬了。 AVL树之所以难&#xff0c;并不是因为结构难以理解&#xff0c;而是因为他的旋转。 AVL树定义 平衡因子&#xff1a;对于一颗二叉树&#xff0c;某节点的左右子树高度之差&#xff0c;就是该节点的…

训练2布线 玛露希尔

前言 这不是雕刻 是布线纹理绘制blender材质渲染 2D 3D 起手式 八点眼 侧峰线 三角鼻(三面鼻) 下颚角 额, 嘴 线 法令环 橄榄嘴

linux高级编程:线程(二)、进程间的通信方式

线程&#xff1a; 回顾线程&#xff08;一&#xff09;&#xff1a; 1.线程间通信问题 线程间共享同一个资源&#xff08;临界资源&#xff09; 互斥&#xff1a; 排他性访问 linux系统 -- 提供了Posix标准的函数库 -- 互斥量&#xff08;互斥锁&#xff09; 原子操作&#x…

内存管理 -----分段分页

分段 分段&#xff1a;程序的分段地址空间&#xff0c;分段寻址方案 两个问题 分段 &#xff1a;是更好分离和共享 左边是有序的逻辑地址&#xff0c;右边是无序的物理地址&#xff0c;然后需要有一种映射的关系&#xff08;段关联机制&#xff09; 各个程序的分配相应的地址…

Pygame教程01:初识pygame游戏模块

Pygame是一个用于创建基本的2D游戏和图形应用程序。它提供了一套丰富的工具&#xff0c;让开发者能够轻松地创建游戏和其他图形应用程序。Pygame 支持许多功能&#xff0c;包括图像和声音处理、事件处理、碰撞检测、字体渲染等。 Pygame 是在 SDL&#xff08;Simple DirectMed…

181基于matlab的利用LMS算法、格型LMS算法、RLS算法、LSL算法来估计线性预测模型参数a1和a2

基于matlab的利用LMS算法、格型LMS算法、RLS算法、LSL算法来估计线性预测模型参数a1和a2&#xff1b;预测信号由二阶线性预测模型产生。2.利用LMS算法和RLS算法将一个叠加有噪声的信号实现噪声消除&#xff0c;恢复原始信号。有22页试验分析文档。&#xff08;包括程序在内&…

通过MNIST手写数字识别任务快速入门深度学习(事无巨细版)

什么是深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个研究方向。 深度学习通过对样本数据的内在规律和特征的提取与抽象,在不同维度和层次上进行处理,让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 相比于初期的…

【算法科目】2024年第二届全国大学生信息技术认证挑战赛 题解

图像压缩 曾经看到过&#xff0c;这是一道洛谷原题&#xff0c;很可惜我没做过&#xff0c;有点看不懂就没尝试。 原题链接&#xff1a;B3851 [GESP202306 四级] 图像压缩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 因数分解 直接枚举就行了&#xff0c;从2开始找因子&a…

python中的类与对象(3)

目录 一. 类的多继承 二. 类的封装 三. 类的多态 四. 类与对象综合练习&#xff1a;校园管理系统 一. 类的多继承 在&#xff08;2&#xff09;第四节中我们介绍了什么是类的继承&#xff0c;在子类的括号里面写入要继承的父类名。上一节我们只在括号内写了一个父类名&…

Latex中如何调整算法伪代码\begin{algorithm}的字体大小?

在LaTeX中&#xff0c;要调整algorithm环境&#xff08;通常与algorithmic、algorithmicx、algorithm2e等包一起使用来编写伪代码&#xff09;中的字体大小&#xff0c;你可以使用\small、\footnotesize、\tiny等命令来减小字体大小&#xff0c;或者使用\large、\Large、\LARGE…

简单实现文字滚动效果-CSS版本

先看看效果 话不多说直接上代码 <template><div class"main"><div class"scroll-region"><div class"swiper-scroll-content"><span class"list-btn" v-for"(item, index) in overviewList" :…

【重温设计模式】命令模式及其Java示例

命令模式的介绍 在我们的编程世界中&#xff0c;设计模式如同一盏指路明灯&#xff0c;它们是前人智慧的结晶&#xff0c;为我们照亮了解决复杂问题的路径。 其中&#xff0c;命令模式是一种行为设计模式&#xff0c;其主要的目标是将操作封装到对象中。这种模式的一个显著特点…

基于springboot+vue的图书电子商务网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

数据修改

Oracle 目录 数据修改 将员工编号的 7369 的员工工资修改为 810&#xff0c;佣金改为 100 将工资最低的员工工资修改为公司的平均工资 将所有在 1981 年雇佣的员工的雇佣日期修改为今天&#xff0c;工资增长 20% 数据的更新操作 Oracle从入门到总裁:https://blog.csdn.n…

学习人工智能的方法及方向!

目录 一、第一部分&#xff1a;了解人工智能 二、人工智能学习路线图 三、职业规划 四、未来展望 五、总结 在这个信息爆炸的时代&#xff0c;想要系统性地学习人工智能&#xff08;AI&#xff09;并找到对应方向的工作&#xff0c;你需要一个明确的学习路径和职业规划。本…

【latex】\IEEEpubid版权声明与正文内容重叠

问题描述 撰写IEEE Trans论文时&#xff0c;出现版权声明文字\IEEEpubid与正文内容重叠的问题&#xff1a; 原因分析&#xff1a; 在使用模板时&#xff0c;不小心将以下命令删除了&#xff1a; \IEEEpubidadjcol 解决方案&#xff1a; 在需要换页的位置附近添加以上命令&…