第四篇:SQL语法-DDL-数据定义语言

大年初一限定篇😀

(祝广大IT学习者、工作者0 error 0 warning!)


一,DDL数据库操作

(一)库的查询操作

1.列出所有已定义数据库

show databases;

2.查询当前所处数据库

select database();

(二)库的创建

(注:<尖括号>内的内容是可选项)

create database <if not exists> 数据库名 <default charset 字符集> <collate 排序规则>;

(三)库的删除

(注:<尖括号>内的内容是可选项)

drop database <if exists> 数据库名;

(四)库的使用(切换)

use 数据库名;

(五)测试

使用以上命令进行小练习~注意命令不要写错噢,每行命令末尾必须以分号结尾!


二,DDL表操作

(一)表的查询操作

 1.列出当前数据库所有表

show tables;

2.查询指定表的结构(不展示注释)

desc 表名;

3.查询指定表的建表语句(会展示注释)

show create table 表名;

(二)表的创建操作

下面是创建表的语法:

(注:<尖括号>内的内容,即绿色部分,是可选项

一个表可以写多行,除最后一行以外,其余行末尾要以英文逗号,结束

创建表语句的最后,这条sql语句的末尾要用分号;结束

数据类型用来定义对应的某行字段的数据类型,将在下篇博客详细介绍)

create table 表名(

        字段1 数据类型 <comment '对该字段的注释'>,

        字段2 数据类型 <comment '对该字段的注释'>,

        字段3 数据类型 <comment '对该字段的注释'>,

        ......

        字段4 数据类型 <comment '对该字段的注释'>

)<comment '对该表的注释'>;

使用案例展示:

(注,这里的int和varchar是数据类型,将在下篇博客详细介绍)

(三)表的修改操作

1.添加新字段 

(注:<尖括号>内的内容是可选项)

alter table 表名 add 字段名 类型(长度) <comment '注释'> <约束>;

2.修改指定字段的数据类型

alter table 表名 modify 字段名 新类型(长度);

3.修改指定字段的名字和数据类型

(注:<尖括号>内的内容是可选项)

alter table 表名 change 原字段名 新字段名 新类型(长度) <comment '注释'> <约束>;

4.删除指定字段

alter table 表名 drop 字段名;

5.修改指定表的表名

(实测rename之后可以不加to,可能与mysql的版本相关,不重要)

alter table 原表名 rename to 新表名;

6.表修改操作的命令总结

alter table 表名 add/modify/change/drop/rename to

(四)表的删除操作

(注,两个删除表的操作都会在删除表的同时把其中所存放的数据也删除)

1.删除指定表

(注:<尖括号>内的内容是可选项)

drop table <if exists> 表名;

2.重置(清空)指定表的数据并重新创建表

(注,这个操作比较容易误解

删除表的同时会清空其中的数据,这里的数据指的是具体的表内容而非表的字段,如“姓名 年龄 性别”这些都叫字段,此操作删除表时会保留字段

而后续学习的DML语句对数据进行增删改的语法所操作的数据,如“张三,20,男”这些都叫数据,此操作删除表时会清空数据

因此不要错误地理解成此操作之后整个表就完全一点内容都没有了!)

truncate table 表名;

(五)测试

下面给出一个博主自拟的小练习,通过这个练习来对DDL表操作的相关命令加以熟练——

在完成每一步操作之后,请用查询表结构的命令查看表格是否符合预期操作!

1.创建一个名为test的数据库,并在该库中创建一个名为users的表,其中包括4个字段,分别是:id int <编号>name varchar(20) <姓名>age int <年龄>

<小括号>中的内容是注释,需要在建表语句中体现

2.添加一个新字段:gend varchar(2) <性别>

<小括号>中的内容是注释,需要在建表语句中体现

3.修改名为gend的字段,修改后的新字段为gender varchar(1) <性别(该字段已修改)>

<小括号>中的内容是注释,需要在建表语句中体现

4.添加一个新字段:nickname varchar(20)

5.删除名为nickname的字段

6.修改名为users的表名为usernames,并列出所有表以验证操作是否成功

完整操作命令(不包含查询操作,请自行在每步操作后使用相应的查询命令验证操作正确性):

(注:前两句是连接数据库的操作,第二句是root数据库的默认密码)

mysql -u root -p;


root;


create database test;        //建库


use test;        //切换库


create table users(
id int comment '编号',
name varchar(20) comment '姓名',
age int comment '年龄'
);        //建表


alter table users add gend varchar(2) comment '性别';        //对表users添加字段


alter table users change gend gender varchar(1) comment '性别(该字段已修改)';

//对表users修改名为gend的字段


alter table users add nickname varchar(20);        //对表users添加字段


alter table users drop nickname;        //对表users删除字段


alter table users rename to usernames;        //修改表users的表名

show tables;        //列出当前数据库所有表,验证users表名是否更改

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

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

相关文章

基于Linux的HTTP代理服务器搭建与配置实战

在数字化世界中&#xff0c;HTTP代理服务器扮演着至关重要的角色&#xff0c;它们能够帮助我们管理网络请求、提高访问速度&#xff0c;甚至在某些情况下还能保护我们的隐私。而Linux系统&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了搭建HTTP代理服务器的理想选择。…

【C语言——打印乘法口诀表】

乘法表&#xff1a; 我们可以定义一个i控制行的变化&#xff0c;外加看上图的表得知我们需要用到循环结构&#xff0c;i是行需要不停的加加&#xff0c;因此&#xff0c;for循环比较好用&#xff0c;可以用两个嵌套的循环&#xff0c;外层循环即用到的i表示的是每一行的打印&am…

【从Python基础到深度学习】4. Linux 常用命令

1.配置root用户密码 root用户为系统默认最高权限用户&#xff0c;其他用户密码修改命令与root用户修改密码命令相同 sudo passwd root 2.添加用户&#xff08;henry&#xff09; sudo useradd -m henry -s /bin/bash 3.配置henry用户密码 Xshell下连接新用户&#xff08;hen…

15.Swift闭包

Swift 闭包 在 Swift 中&#xff0c;闭包是一种自包含的函数代码块&#xff0c;可以在代码中被传递和使用。闭包可以捕获并存储其所在上下文中的任意变量和常量的引用&#xff0c;这就是所谓的闭包的特性。闭包在 Swift 中被广泛用于函数式编程和异步编程&#xff0c;具有灵活…

二级C语言笔试9

(总分89.5,考试时间90分钟) 一、选择题 1. 下列对队列的叙述正确的是 。 A) 队列属于非线性表 B) 队列按“先进后出”原则组织数据 C) 队列在队尾删除数据 D) 队列按“先进先出”原则组织数据 2. 下列关于栈的描述中错误的是( )。 A) 栈是先进后出的…

weilai8游戏爬虫

#!/usr/bin/python # -*- coding: UTF-8 -*- #!/usr/bin/python # -*- coding: UTF-8 -*- import os,csv import re import random import time import requests from lxml import etreefrom urllib.parse import quote, unquotepage=98 sess = requests.Session()#创建一个ses…

linux系统上tomcat简介以及安装tomcat

tomcat简介以及安装 Tomcat简介安装环境安装jdk安装tomcat浏览器访问 Tomcat简介 Tomcat是一个开源的Web服务器和servlet容器&#xff0c;由Apache软件基金会开发和维护。它是一种流行的Java Web应用服务器&#xff0c;用于运行Java编写的Web应用程序。 Tomcat提供了一个轻量级…

基于javaEE的ssm仓库管理系统

仓库管理系统的重中之重是进销存分析这一板块&#xff0c;在这一板块中&#xff0c;顾名思义能够查询到近期的进货记录&#xff0c;包括每日的进货单据&#xff0c;单品推移(即某一商品的库存变化)&#xff0c;方便我们核对库存差异。同时也需要查询到每日的销售数据&#xff0…

hexo部署到gitee(码云)

引言 Hexo 是一个基于Node.js的静态博客框架&#xff0c;而 Gitee&#xff08;也被称为码云&#xff09;是一个国内的代码托管平台&#xff0c;支持 Git 版本控制系统&#xff0c;与 GitHub 类似。将 Hexo 部署到 Gitee Pages 可以让你的博客受益于 Gitee 的国内服务器&#xf…

Java多态原理

参考 虚方法 JVM杂记&#xff1a;对多态实现原理、虚方法表、虚方法、静态解析、动态链接的一些思考_多态和方法表的关系-CSDN博客 静态分派与动态分派 &#xff08;JVM&#xff09;Java虚拟机&#xff1a;静态分派 & 动态分派 原理解析 - 掘金 虚方法表 JVM 栈帧&am…

假期作业8

线程和进程服务器 线程 #include <myhead.h>#define SIP "192.168.0.114" #define SPORT 8888void *task(void *arg){printf("客户端连接\n");sleep(1);pthread_exit(NULL); }int main(int argc, const char *argv[]) {int sfd socket(AF_INET, S…

16.1 Spring框架_SpringIoC容器与Bean管理(❤❤)

16.1 Spring框架_SpringIoC容器与Bean管理 1. Spring1.1 SpringIoC1. IoC控制反转2. DI依赖注入1.2 Spring概念1. Spring含义2. 传统开发与SpringIoC开发模式比较2. IoC基础实现案例(❤❤)1. 传统方式2. IoC与DI方式3. bean管理1. xml方式(❤❤)1. bean的实例化方式

C++——二叉树

引入 map和set特性需要先铺垫二叉搜索树&#xff0c;而二叉搜索树也是一种树形结构 二叉搜索树的特性了解&#xff0c;有助于更好的理解map和set的特性 1.二叉搜索树的概念及优缺点 1.1二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或…

12.4 OpenGL顶点后处理:图元裁剪

图元裁剪 Primitive Clipping Primitive Clipping&#xff08;图元裁剪&#xff09;是图形渲染管线中的一个重要步骤&#xff0c;发生在顶点处理之后、光栅化之前。这个阶段主要目的是去除位于视体&#xff08;View Volume&#xff09;之外或者被用户自定义裁剪平面&#xff0…

【Spring和Spring Boot的区别——详细讲解】

Spring和Spring Boot的区别 1. 介绍2. Spring框架3. Spring Boot4. 结论 1. 介绍 Spring和Spring Boot都是现代Java开发中常用的技术和框架&#xff0c;它们之间的关系紧密&#xff0c;Spring Boot是建立在Spring之上的&#xff0c;它简化了Spring应用的创建和开发过程。下面是…

Python中使用opencv-python进行人脸检测

Python中使用opencv-python进行人脸检测 之前写过一篇VC中使用OpenCV进行人脸检测的博客。以数字图像处理中经常使用的lena图像为例&#xff0c;如下图所示&#xff1a; 使用OpenCV进行人脸检测十分简单&#xff0c;OpenCV官网给了一个Python人脸检测的示例程序&#xff0c;…

Backtrader 文档学习- Plotting - Plotting Date Ranges

Backtrader 文档学习- Plotting - Plotting Date Ranges 1.概述 1.9.31.x版本增加了绘制部分图形的功能。 可以使用策略实例中保留完整长度的时间戳数组的索引或者使用实际的datetime.date 或datetime.datetime 实例来限制需要绘制的内容。 仍然可以使用标准的cerebro.plot…

TCP Server工具类,BIO阻塞和非阻塞NIO

启动自定义代码的方式 WebServer Initialized Event //Component//ApplicationContext context 注入//PostConstruct//AsyncEventListener(ApplicationReadyEvent.class)Componentpublic class TcpServerListener implements ApplicationListener<WebServerInitializedEven…

静态时序分析:建立时间分析

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 在静态时序分析中&#xff0c;建立时间检查约束了触发器时钟引脚&#xff08;时钟路径&#xff09;和输入数据引脚&#xff08;数据路径&#xff09;之间的时序关系&#x…

android中实现设备尺寸适配

1、引言 设备尺寸适配的重要性想必就不用我多说了&#xff0c;在我发布的历史文章中我曾谈过Qt中的设备尺寸适配问题&#xff0c;那这里我就来教大家如何在android中做设备尺寸适配。在android中设备尺寸适配的方式有好几种&#xff0c;但我喜欢的还是使用获取设备真实尺寸然后…