SQL语句(一)—— DDL
目录
一、SQL 基础知识
(一)SQL 通用语法
(二)SQL 分类
二、DDL —— 数据库操作
1、查询所有数据库
2、查询当前数据库
3、创建数据库
4、删除数据库
5、切换数据库
三、DDL —— 表操作
(一)查询创建
1、查询当前数据库所有表
2、查看指定表结构
3、查询指定表的建表语句
4、创建表结构
(二)数据类型
1、数值类型
2、字符串类型
3、日期时间类型
(三)修改
1、添加字段
2、修改数据类型
3、修改字段名和字段类型
4、删除字段
5、修改表名
(四)删除
1、删除表
2、删除指定表,并重新创建表
SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。
一、SQL 基础知识
(一)SQL 通用语法
在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。
① SQL语句可以单行或多行书写,以分号结尾。
② SQL语句可以使用空格/缩进来增强语句的可读性。
③ MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
④ 注释:单行注释为 “-- 注释内容” 或 “# 注释内容”;多行注释为 “/* 注释内容 */”
(二)SQL 分类
SQL语言,根据其功能,主要分为四类:DDL、DML、DQL、DCL。
1、DDL:全称为 Data Definition Language,即数据定义语言。用来定义数据库对象(数据库、表、字段)
2、DML:全称为 Data Manipulation Language,即数据操作语言。用来对数据库表中的数据进行增删改。
3、DQL:全称为Data Query Language,即数据查询语言。用来查询数据库中表的记录。
4、DCL:全称为Data Control Language,即数据控制语言。用来创建数据库用户、控制数据库的访问权限。
二、DDL —— 数据库操作
1、查询所有数据库
show databases;
2、查询当前数据库
select datebase();
3、创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
这条指令的基本形式是 create database 数据库名,方括号中的部分可加可不加。
if not exists:同一个数据库服务器中,不能创建两个名称相同的数据库,否则会报错。可以通过 if not exists 参数来解决这个问题,数据库不存在,则创建该数据库,如果存在,则不创建。
default charest 字符集:如果不指定,则使用默认的字符集utf8mb4,建议使用这个。
create database my123;
4、删除数据库
drop database [ if exists ] 数据库名 ;
如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。
drop database my123;
5、切换数据库
use 数据库名 ;
我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。 比如,切换到itcast数据库,执行如下SQL:
use itcast;
三、DDL —— 表操作
(一)查询创建
1、查询当前数据库所有表
show tables;
比如,我们可以切换到 sys 这个系统数据库,并查看系统数据库中的所有表结构。
use sys;
show tables;
2、查看指定表结构
desc 表名;
通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息。
3、查询指定表的建表语句
show create table 表名 ;
通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
4、创建表结构
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;
注意:[...] 内为可选参数,最后一个字段后面没有逗号,因为这就是一条SQL语句,一条SQL语句只有一个逗号。
比如,我们创建一张表 tb_user,对应的结构如下,那么建表语句为:
create table tb_user(id int comment '编号',name varchar(50) comment '姓名',age int comment '年龄',gender varchar(1) comment '性别'
) comment '用户表';
(二)数据类型
在上述的建表语句中,我们在指定字段的数据类型时,用到了int,varchar,那么在MySQL中除了以上的数据类型,还有哪些常见的数据类型呢?
接下来,我们详细介绍一下MySQL的数据类型。 MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
1、数值类型
对表格进行归纳,前 5 个数据类型 tinyint、smallint、mediumint、int/integer、bigint 表示整型数据,仅仅是取值范围不同。接下来 2 个数据类型 float、double 表示浮点型数据。
最后一个 decimal 是精确的浮点型数据,其中的 M 表示小数的位数有多少位,D 表示小数点后面有多少位。例如,decimal(10,2),即小数的整体位数是 10 位,小数点后面有 2 位。
同时,float 与 double 也可以对位数进行规定,如double(4,1),但是我们常用的精确的浮点型数据类型还是decimal。
同时如果希望是无符号数,则可在数据类型后面加上 unsigned,如 age tinyint unsigned。
2、字符串类型
char 与 varchar 都可以描述字符串。char 表示定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关,例如char(10)。而 varchar 表示变长字符串,指定的长度为最大占用长度,例如varchar(10)。
char 中未占用的字符,会用空格来补位;varchar 则是存多少个字符就占用多少个空间。即varchar在规定具体长度的同时,还需要根据当前字符串修改长度,所以相对而言char的性能会更高一些,用空间换时间。
还有两个就是blob与text,只是前缀的不同导致长度的不同,其前缀为tiny、无、medium、long。blob中存储的文本形式是二进制形式的、而 text 中的就是文本。
3、日期时间类型
--例如:
-- 1). 生日字段 birthdaybirthday date-- 2). 创建时间 createtimecreatetime datetime
(三)修改
1、添加字段
alter table 表名 add 字段名 类型 [ comment 注释 ] [ 约束 ];
其中 “alter table 表名” 是选中具体的表,“add 字段名 类型” 是具体的操作,“comment 注释” 是给代码添加注释。代码中方括号的部分可以省略。
添加字段的意思,就是在一张表中,再加一列。如为 emp 表增加一个新的字段”昵称”为 nickname,类型为varchar(20)。代码与执行结果如下:
alter table emp add nickname varchar(20) comment '昵称';
2、修改数据类型
alter table 表名 modify 字段名 新数据类型;
3、修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型 (长度) [ comment 注释 ] [ 约束 ];
将 emp 表的 nickname 字段修改为 username,类型为varchar(30)。代码与执行结果如下:
alter table emp change nickname username varchar(30) comment '昵称';
4、删除字段
alter table 表名 drop 字段名;
将 emp 表的字段 username 删除,代码与执行结果如下:
alter table emp drop username;
5、修改表名
alter table 表名 rename to 新表名;
将emp表的表名修改为 employee,具体代码如下:
alter table emp rename to employee;
(四)删除
1、删除表
drop table [ if exists ] 表名;
可选项 if exists代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。
如果tb_user表存在,则删除tb_user表,具体代码如下:
drop table if exists tb_user;
2、删除指定表,并重新创建表
truncate table 表名;
注意: 在删除表的时候,表中的全部数据也都会被删除;这个操作就是将这张表进行重置。
相关文章:
SQL语句(一)—— DDL
目录 一、SQL 基础知识 (一)SQL 通用语法 (二)SQL 分类 二、DDL —— 数据库操作 1、查询所有数据库 2、查询当前数据库 3、创建数据库 4、删除数据库 5、切换数据库 三、DDL —— 表操作 (一)查…...
ROS2 高级组件中的webots介绍
前言 这一篇文章主要是和大家分享一下关于ROS2 高级组件中的webots,会介绍关于webots的知识点,以及如何安装和测试环节,最后就是利用 webots 实现一个差速轮式机器人的运动仿真。 正文内容 webots 引入和学习资料 webots 是来自瑞士的 Cy…...
SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照
前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …...
Java 基础-29-final关键字-详解
在Java编程语言中,final是一个非常重要的关键字,它用于不同的上下文中以表示某些东西是不可变的。本文将详细介绍final关键字的各种用法和其应用场景。 1. final变量 当你将一个变量声明为final时,这意味着一旦给这个变量赋值后,…...
从数据透视到AI分析,用四层架构解决运维难题
在数字化转型的浪潮中,企业 IT 系统已从单一架构演变为多云、多设备、多应用的复杂生态。传统监控工具因覆盖不全、响应滞后、分析能力弱而逐渐失效。Site24x7 以“全栈覆盖 智能协同”为核心,构建了一套四层递进式监控架构,实现从基础设施到…...
大智慧前端面试题及参考答案
如何实现水平垂直居中? 在前端开发中,实现元素的水平垂直居中是一个常见的需求,以下是几种常见的实现方式: 使用绝对定位和负边距:将元素的position设置为absolute,然后通过top、left属性将其定位到父元素的中心位置,再使用负的margin值来调整元素自身的偏移,使其水平垂…...
PyQt学习记录
PyQt学习记录 要在界面上 创建一个控件,就需要在程序代码中 创建 这个 控件对应类 地一个 实例对象。 在Qt系统中,控件(widget)是 层层嵌套 的,除了最顶层的控件,其他的控件都有父控件。 几个函数 函数mo…...
人工智能赋能管理系统,如何实现智能化决策?
随着信息技术的飞速发展,人工智能(AI)已经成为推动各行各业变革的重要力量。在企业管理领域,人工智能技术的引入为管理系统的智能化决策提供了强有力的支持。本文将深入探讨人工智能如何赋能管理系统,实现智能化决策&a…...
【深度学习新浪潮】DeepSeek近期的技术进展及未来动向
一、近期技术进展 模型迭代与性能提升 DeepSeek-V3-0324版本更新:2025年3月24日发布,作为V3的小版本升级,参数规模达6850亿,采用混合专家(MoE)架构,激活参数370亿。其代码能力接近Claude 3.7,数学推理能力显著提升,且在开源社区(如Hugging Face)上线。DeepSeek-R1模…...
存储型XSS漏洞解析
一、存储型XSS漏洞的核心原理 定义与攻击流程 存储型XSS(Stored XSS)是一种将恶意脚本永久存储在服务器端(如数据库、文件系统)的跨站脚本攻击方式。其攻击流程分为四步: 注入阶段:攻击者通过输入点&…...
Python实现 MCP 客户端调用(高德地图 MCP 服务)查询天气工具示例
文章目录 MCP 官网GithubMCP 仓库简介架构高德地图 MCP 客户端示例python-sdk 客户端java-sdk 客户端 MCP 官网 https://modelcontextprotocol.io/introduction Github python-sdk:https://github.com/modelcontextprotocol/python-sdkjava-sdk:https…...
Flink介绍——实时计算核心论文之S4论文总结
PE对象的构成与功能 我们先来看下S4是怎么抽象流式计算的。 S4将所有的计算过程抽象为一个个Processing Element(处理元素)对象,简称为PE对象。 每一个PE对象,都有四部分组成,分别是: 功能(F…...
第二十四章:Python-folium库实现中国地图绘制
一、folium库简介 hchinamap库是一个专门用于绘制中国地图的R包,它通过与Highmaps图表库的结合,提供了一种简单的方式来绘制中国及其各省市自治区的地图。虽然hchinamap库是为R语言设计的,但在Python中也可以通过类似的库(如matpl…...
云巅之上:数字文明的重构与超越
序章:算力新纪元 2024年初春,当SpaceX的星舰将首批云计算节点送入近地轨道时,地球上的数字原住民们正通过云端AI助手规划着一天的行程。这场静默的革命已悄然进入新阶段——云计算不再只是工具,而是成为数字文明的"第六元素…...
蓝桥杯高频考点——高精度(含C++源码)
高精度 前言高精度加法例题思路及代码solution 1(初阶版 40分)solution 2(完全体 AC) 高精度乘法例题思路及代码solution 1(TLE 但是代码很清晰)solution 1的问题solution 2(优化 AC)…...
程序化广告行业(52/89):程序化创意深度剖析
程序化广告行业(52/89):程序化创意深度剖析 大家好!我一直对程序化广告领域充满热情,在学习过程中发现其中有很多有趣又实用的知识。今天写这篇博客,就是希望能和大家一起学习进步,深入探索程序…...
selenium和pytessarct提取古诗文网的验证码(python爬虫)
代码实现的主要功能: 浏览器自动化控制 验证码图像获取与处理 OCR验证码识别 表单自动填写与提交 登录状态验证 异常处理与资源清理 1. 浏览器初始化与页面加载 driver webdriver.Chrome() driver.get("https://www.gushiwen.cn/user/login.aspx?fro…...
封装可拖动弹窗(vue jquery引入到html的版本)
vue cli上简单的功能,在js上太难弄了,这个弹窗功能时常用到,保存起来备用吧 备注:deepseek这个人工智障写一堆有问题的我,还老服务器繁忙 效果图: html代码: <div class"modal-mask&qu…...
JavaScript重难点突破:期约与异步函数
同步和异步 同步(Synchronous) 定义:任务按顺序依次执行,前一个任务完成前,后续任务必须等待。 特点:阻塞性执行,程序逻辑直观,但效率较低 异步(Asynchron…...
Spring事务的传播机制
目录 Spring 中事务的实现编程式事务(了解即可):声明式事务(利用注解自动开启和提交事务):事务回滚注意事项: Spring 事务传播机制:1.Propagation.REQUIRED:7.Propagation.NESTED:Propagation.NESTED和1.Pr…...
LlamaIndex实现RAG增强:融合检索(Fusion Retrieval)与混合检索(Hybrid Search)
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
什么是向量搜索Vector Search?
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
【接口重复请求】axios通过AbortController解决页面切换过快,接口重复请求问题
处理网络请求时,我们经常会遇到需要中途取消请求的情况,比如用户在两个tab之间反复横跳的场景,如果每个接口都从头请求到结束,那必然会造成很大的服务压力。 AbortController是一个Web API,它提供了一个信号对象&…...
GitHub与Gitee各是什么?它们的区别与联系是什么?
李升伟 整理 GitHub 介绍 GitHub 是一个基于 Git 的代码托管平台,主要用于版本控制和协作开发。它支持多人协作,提供代码托管、问题跟踪、代码审查、项目管理等功能。GitHub 是全球最大的开源社区,许多知名开源项目都在此托管。 主要功能&…...
OpenCV图像形态学:原理、操作与应用详解
一、引言 图像形态学(Image Morphology)是图像处理领域的一个重要分支,它基于集合论、格论、拓扑学和随机函数理论,主要用于分析和处理图像的几何结构。形态学操作通过特定的结构元素(Structuring Element)…...
ubuntu git cola gui
直接的方法, samba, win 里用 tortoiseSVN 需要先在命令行,运行 git 命令,看到操作提示, 按照提示做 然后右键看 git diff 其它的方法 linux下可视化git工具git-cola安装与使用(HTTP方式)_git…...
RTX5080 安装torch,torchvision ,torchaudio 指南
一、前置准备 5080 显卡 是sm120 架构,只有torch的preview版本可以使用,而且该版本仅支持cuda12.8. 请你放弃下载以及使用低版本cuda cudnn torch 的想法。 请你学习conda 创建环境,激活环境,在虚拟环境里使用pip ,…...
ubuntu开发mcu环境
# 编辑 vim或者vscode # 编译 arm-none-eabi # 烧写 openocd 若是默认安装,会在/usr/share/openocd/scripts/{interface,target} 有配置接口和目标版配置 示例: openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg 启动后,会…...
《UNIX网络编程卷1:套接字联网API》第5章 TCP客户服务器程序示例
《UNIX网络编程卷1:套接字联网API》第5章 TCP客户/服务器程序示例 5.1 本章目标与示例程序概述 本章通过一个完整的TCP回射(Echo)客户/服务器程序,深入解析TCP套接字编程的核心流程与关键问题。示例程序的功能为:客户…...
花洒洗澡完毕并关闭后过段时间会突然滴水的原因探究
洗澡完毕后的残留水 在洗澡的过程中,我们通常会使用到大量的水。这些水会通过花洒管子到达花洒顶喷流出。由于大顶喷花洒的喷头较大,关闭后里面的存水会更多。 气压失衡后的滴水 当花洒关闭后,内部的水管和花洒头中仍存有一定量的水。由于…...
子组件使用:visible.sync=“visible“进行双向的绑定导致该弹窗与其他弹窗同时显示的问题
问题描述:最近写代码时遇到了一个问题:点击A弹窗后关闭,继续点击B弹窗,这时会同时弹窗A、B两个弹窗。经过排查后发现在子组件定义时使用了:visible.sync"visible"属性进行双向的数据绑定 <template> <el-dial…...
TTL 值 | 在 IP 协议、ping 工具及 DNS 解析中的作用
注:本文为 “TTL” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 TTL 值的意义 2007-10-18 11:33:17 TTL 是 IP 协议包中的一个值,用于标识网络路由器是否应丢弃在网络中停留时间过长的数据包。数据包可能因多种原因在一定时间内…...
代码调试:VS调试实操
1.什么是BUG? BUG原意是“虫子”,在计算机领域是指未被发现的错误,又叫程序漏洞 2.什么是调试? 当你在写完代码时需要去找代码中的问题,这个过程就叫调试 我们必须承认有这个问题并且去修复问题,可以透…...
IGMP(Internet Group Management Protocol)与组播技术深度解析
一、组播技术核心概念 1. 组播 vs 单播/广播 传输类型目标地址网络负载典型应用场景单播单一明确IP随接收者数量线性增长网页浏览、文件下载广播全网段(如255.255.255.255)强制全网设备处理ARP请求、DHCP发现组播D类地址(224.0.0.0~239.255…...
JWT(JSON Web Token)
目录 一 JWT简单介绍 二、JWT 的组成结构 1 Header(头部) 2 Payload(载荷) 三、JWT 工作原理 好文分享 session、cookie、token 详解_token session cookie-CSDN博客 一 JWT简单介绍 概念:是一种开放标准&#…...
深入理解多线程编程:从基础概念到实战应用
二进制信号量:线程同步的基础 什么是二进制信号量? 二进制信号量是一种特殊的信号量,其值只能是0或1。它是最简单的线程同步机制之一,常用于线程间的简单协调。 #include <semaphore.h>sem_t sem; // 声明二进制信号量 se…...
【STM32设计】基于STM32的智能门禁管理系统(指纹+密码+刷卡+蜂鸣器报警)(代码+资料+论文)
本课题为基于单片机的智能门禁系统,整个系统由AS608指纹识别模块,矩阵键盘,STM32F103单片机,OLED液晶,RFID识别模块,继电器,蜂鸣器等构成,在使用时,用户可以录入新的指纹…...
【MVP 和 MVVM 相比 MVC 有哪些优化点?】
MVP 和 MVVM 相比 MVC 的优化及原因 1. MVC 的痛点 在传统 MVC 模式中: 视图(View)和模型(Model)直接交互:View 可能直接监听 Model 的变化(如观察者模式),导致耦合。…...
蓝桥云客 刷题统计
刷题统计 问题描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题? 输入格式 输入一行包含三个整数 a, b 和 …...
【28BYJ-48】STM32同时驱动4个步进电机,支持调速与正反转
资料下载:待更新。。。。 先驱动起来再说,干中学!!! 1、实现功能 STM32同时驱动4个步进电机,支持单独调速与正反转控制 需要资源:16个任意IO口1ms定时器中断 目录 资料下载:待更…...
【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【代码篇】A题解题全流程(持续更新)
【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【代码篇】A题解题全流程(持续更新) 环境配置: 显存>24GBPyTorch 2.3.0Python 3.12(ubuntu22.04)CUDA 12.1autoDL服务器平台,(好处:可以分享镜像&…...
迅为RK3568开发板驱动开发指南helloworld驱动实验-驱动的基本框架
Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,块导出符号,模块作者信息等几部分组成,其中模块参数,模块导出符号,模块作者信息是选的部分…...
Spring Boot 3.4.3 基于 JSqlParser 和 MyBatis 实现自定义数据权限
前言 在企业级应用中,数据权限控制是保证数据安全的重要环节。本文将详细介绍如何在 Spring Boot 3.4.3 项目中结合 JSqlParser 和 MyBatis 实现灵活的数据权限控制,通过动态 SQL 改写实现多租户、部门隔离等常见数据权限需求。 一、环境准备 确保开发环境满足以下要求: …...
软件工程面试题(二十三)
1、public class Test {public static void add(Integer i){int val=i.intValue(); val+=3; i=new Integer(val); } public static void main(String[] args) {Integer i=new Integer(0); add(i); System.out.println(i.intValue());...
spring boot 集成redis 中RedisTemplate 、SessionCallback和RedisCallback使用对比详解,最后表格总结
对比详解 1. RedisTemplate 功能:Spring Data Redis的核心模板类,提供对Redis的通用操作(如字符串、哈希、列表、集合等)。使用场景:常规的Redis增删改查操作。特点: 支持序列化配置(如String…...
leetcode-热题100(3)
leetcode-74-搜索二维矩阵 矩阵最后一列升序排序,在最后一列中查找第一个大于等于target的元素 然后在该元素所在行进行二分查找 bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {int n matrixSize;int m matrixColSize[0];in…...
【大模型系列篇】大模型基建工程:使用 FastAPI 构建 SSE MCP 服务器
今天我们将使用FastAPI来构建 MCP 服务器,Anthropic 推出的这个MCP 协议,目的是让 AI 代理和你的应用程序之间的对话变得更顺畅、更清晰。FastAPI 基于 Starlette 和 Uvicorn,采用异步编程模型,可轻松处理高并发请求,尤…...
基于大模型预测风湿性心脏病二尖瓣病变的多维度诊疗研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型技术概述 2.1 大模型的原理与架构 2.2 在医疗领域的应用现状 三、术前评估与预测 3.1 患者数据收集与分析 3.1.1 临床数据收集 3.1.2 影像数据处理 3.2 大模型预测模型建立 3.2.1 数据预处理 3.…...
5.模型训练-毕设篇
vgg: base_model_vgg13 models.vgg13(pretrainedTrue) base_model_vgg13.classifier[-1] nn.Linear(4096, num_classes) base_model_vgg13.to(device)(b_img_rgb.to(device)).shapebase_model_vgg13 models.vgg13(pretrainedTrue) 作用:加载预训练的…...
[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议
第一步:先理解最基础的关系(类比快递) 假设你要给朋友寄快递: Wi-Fi:相当于“公路和卡车”,负责把包裹从你家运到快递站。 TCP/UDP:相当于“快递公司的运输规则”。 TCP:顺丰快递&…...