【MySQL】入门篇—SQL基础:数据定义语言(DDL)
数据定义语言(DDL,Data Definition Language)是SQL(结构化查询语言)的一部分,主要用于定义和管理数据库的结构。
DDL允许用户创建、修改和删除数据库及其对象(如表、索引、视图等)。以下是一些DDL在实际应用中的重要性和场景:
-
创建数据库和表:在应用程序开发初期,需要设计和创建数据库结构以存储数据。例如,电商平台需要创建用户、商品和订单等表来管理数据。
-
修改数据库结构:随着业务需求的变化,可能需要调整数据库结构,比如添加新字段、修改数据类型或删除不再需要的列。
-
删除数据库和表:在不再需要某个数据库或表时,可以将其删除以释放资源。例如,当一个项目结束时,相关的测试数据库可能会被删除。
掌握DDL的基本操作是数据库管理员和开发者的基本技能。接下来,我们将通过具体示例详细介绍DDL的主要命令:创建(CREATE)、修改(ALTER)和删除(DROP)。
1. 创建数据库和表
1.1 创建数据库
创建数据库是指在数据库管理系统中创建一个新的数据库实例。每个数据库可以包含多个表和其他对象。创建数据库的语法相对简单,通常只需要指定数据库的名称。
示例:创建数据库
-- 创建一个名为 'my_database' 的数据库
CREATE DATABASE my_database;-- 选择使用该数据库
USE my_database;
-
CREATE DATABASE my_database;:此命令创建一个名为my_database的数据库。数据库是存储数据的容器,通常一个应用程序会有一个或多个数据库。 -
USE my_database;:选择当前使用的数据库。之后的所有操作(如创建表、插入数据等)都将在my_database中进行。
1.2 创建表
创建表是指在数据库中定义一个新的数据结构,用于存储特定类型的数据。每个表由行和列组成,行表示记录,列表示属性。表的设计需要考虑数据的完整性和约束条件。
示例:创建用户表
-- 创建一个名为 'users' 的表
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, -- 用户ID,主键,自动递增username VARCHAR(50) NOT NULL, -- 用户名,非空email VARCHAR(100) NOT NULL UNIQUE -- 邮箱,非空且唯一
);
-
CREATE TABLE users (...):创建一个名为users的表。 -
id INT PRIMARY KEY AUTO_INCREMENT:定义一个名为id的列,数据类型为整数(INT),作为主键并自动递增。主键确保每条记录的唯一性。 -
username VARCHAR(50) NOT NULL:定义一个名为username的列,数据类型为变长字符串,最大长度为50,且不能为空(NOT NULL)。 -
email VARCHAR(100) NOT NULL UNIQUE:定义一个名为email的列,数据类型为变长字符串,最大长度为100,且不能为空且唯一(UNIQUE),确保没有重复的邮箱地址。
2. 修改数据库和表
2.1 修改表结构
修改表结构是指对已存在的表进行更改,以适应新的业务需求。这可能包括添加新列、修改现有列的属性或删除不再需要的列。
示例:向表中添加新列
-- 向 'users' 表中添加一个新列 'created_at'
ALTER TABLE users ADD created_at DATETIME DEFAULT CURRENT_TIMESTAMP;
-
ALTER TABLE users:指定要修改的表为users。 -
ADD created_at DATETIME DEFAULT CURRENT_TIMESTAMP:添加一个名为created_at的新列,数据类型为日期时间(DATETIME),默认值为当前时间戳(CURRENT_TIMESTAMP)。这个列用于记录用户创建的时间。
2.2 修改现有列
修改现有列是指更改表中已存在列的定义,例如改变数据类型或约束条件。这通常是在业务需求变化时进行的调整。
示例:修改列的数据类型
-- 修改 'username' 列的长度
ALTER TABLE users MODIFY username VARCHAR(100) NOT NULL;
-
MODIFY username VARCHAR(100) NOT NULL:将username列的数据类型修改为最大长度100的变长字符串,并保持非空约束。这种修改可能是因为我们希望允许更长的用户名。
2.3 删除列
删除列是指从表中移除一个不再需要的列。这通常是在数据结构优化或业务需求变化时进行的。
示例:从表中删除列
-- 从 'users' 表中删除 'created_at' 列
ALTER TABLE users DROP COLUMN created_at;
-
DROP COLUMN created_at:从users表中删除名为created_at的列。如果我们不再需要记录用户创建时间,可以使用此命令进行删除。
3. 删除数据库和表
3.1 删除表
删除表是指从数据库中完全移除一个表及其所有数据。此操作是不可逆的,执行后无法恢复。
示例:删除表
-- 删除 'users' 表
DROP TABLE users;
-
DROP TABLE users;:删除名为users的表及其所有数据。此操作不可逆,执行后无法恢复,因此在执行之前应确保该表的数据不再需要。
3.2 删除数据库
删除数据库是指从数据库管理系统中移除一个数据库及其所有表和数据。此操作也不可逆,需谨慎使用。
示例:删除数据库
-- 删除 'my_database' 数据库
DROP DATABASE my_database;
-
DROP DATABASE my_database;:删除名为my_database的数据库及其所有表和数据。删除数据库会清空所有数据,因此需谨慎操作。
结论
数据定义语言(DDL)是管理数据库结构的关键工具。通过创建、修改和删除数据库及其对象,开发者和数据库管理员能够灵活地设计和维护数据存储结构。掌握DDL的基本命令对于有效地管理和优化数据库至关重要。
相关文章:
【MySQL】入门篇—SQL基础:数据定义语言(DDL)
数据定义语言(DDL,Data Definition Language)是SQL(结构化查询语言)的一部分,主要用于定义和管理数据库的结构。 DDL允许用户创建、修改和删除数据库及其对象(如表、索引、视图等)。…...
电影评论网站开发:Spring Boot技术详解
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评论网站的开发全过程。通过分析电影评论网站管理的不足,创建了一个计算机管理电影评论网站的方案。文章介绍了电影评论网站的系统分析部分&…...
20240817 全志 笔试
文章目录 1、选择题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.151.161.171.181.191.202、填空题2.12.23、问答题3.14、编程题4.14.2岗位:NO2510 嵌入式软件设计工程师(珠海/广州/西安/深圳) 题型:20 道选择题,2 道填空题,1 道问答题,2 道编程题 1、选择题 1.…...
laravel 查询数据库
数据库准备 插入 三行 不同的数据 自行搭建 laravel 工程 参考 工程创建点击此处 laravel 配置 数据库信息 DB_CONNECTIONmysql #连接什么数据库 DB_HOST127.0.0.1 # 连接 哪个电脑的 ip (决定 电脑 本机) DB_PORT3306 # 端口 DB_DATABASEyanyu…...
【Codeforces】CF 2009 F
Firefly’s Queries #前缀和 #数据结构 #数学 题目描述 Firefly is given an array a a a of length n n n. Let c i c_i ci denote the i i i’th cyclic shift ∗ ^{\text{∗}} ∗ of a a a. She creates a new array b b b such that b c 1 c 2 ⋯ c n b c…...
GTP4聊天记录中letax保存为word
别的不说,GPT4用来看代码很是很爽的,可以让他直接恢复出函数中的数学公式,有的时候为了做笔记,GPT4回复的答案,复制出来使markdown、letax等格式,为了更好的记笔记,可以使用下面的工具将复制…...
vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&am…...
空间解析几何5-空间圆到平面的距离【附MATLAB代码】
目录 理论公式 matlab代码 理论公式 matlab代码 function [dis,P,Q,L]Circle2PlaneDistance(T,R,n,Pn) % output % dis 为最短距离,P为距离最短时圆上的点 Q为P对应的投影点 L为最小值有几个 % input % T为园心到基坐标系的变换矩阵 R为圆半径 n为平面的单位法向…...
[已解决] pycharm添加本地conda虚拟环境 + 配置解释器 - pycharm找不到conda可执行文件
目录 问题: 方法: 补充:创建conda虚拟环境 参考文档:pycharm找不到conda可执行文件怎么办?-CSDN 问题: 1.显示:未为项目配置 Python 解释器 2.想在pycharm中使用本地创建的虚拟环境 方法&a…...
SENT - Single Edge Nibble Transmission for Automotive
SENT 总线的特征和优势 SENT 总线是一种数字信号传输协议,具有更高的传输精度和速度;SENT 总线是单线传输数据,减少信号线,降低成本。加上电源和地线,总共 3 线;SENT 总线具有更强大的诊断功能;…...
2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)
目录 前言阅读前必看 第七章 面向对象技术(下)7.3 设计模式(固定4分)7.3.1 设计模式的要素7.3.2 创建型设计模式7.3.2.1 Abstract Factory(抽象工厂)7.3.2.2 Builder(生成器)7.3.2.3…...
未来人工智能的发展对就业市场的影响 人工智能在生活中的相关
人工智能(Artificial Intelligence),英文缩写为AI.是新一轮科技革命和产业变革的重要驱动力量, 是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学. 人工智能的发展对就业市场的影响主要…...
Oracle EBS 中财务模块
Oracle E-Business Suite (EBS) 提供了全面的财务管理解决方案,涵盖了企业财务活动的各个方面。以下是EBS中主要的财务模块及其功能概述: 总账(General Ledger, GL):Oracle EBS 中 GL 模块的财务流程概览-CSDN博客 总账…...
基于SSM公廉租房维保系统的设计
管理员账户功能包括:系统首页,个人中心,业主管理,维修单位管理,房屋信息管理,维修申报管理,维修完成,房屋维护管理 业主账号功能包括:系统首页,个人中心&…...
【AI大模型】深入Transformer架构:解码器部分的实现与解析
目录 🍔 解码器介绍 🍔 解码器层 2.1 解码器层的作用 2.2 解码器层的代码实现 2.3 解码器层总结 🍔 解码器 3.1 解码器的作用 3.2 解码器的代码分析 3.3 解码器总结 学习目标 🍀 了解解码器中各个组成部分的作用. &#…...
前端html js css 基础巩固3
一个这样的首页 滑动显示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&l…...
如在下载自己的需要的rmp包呢
下载地址:https://pkgs.org/和https://rpmfind.net/linux/rpm2html/search.php 根基自己的需要进行下载使用。...
Android TextView实现一串文字特定几个字改变颜色
遇到一个需求,让Android端实现给定一个字符串指定下标的几个字颜色与其他字颜色不一致。 主要是用ForegroundColorSpan这个API来传入颜色值,用SpannableString来设置指定索引下标的字的颜色值。 这里通过给定一个输入文字描述框,要求输入指定…...
桃子叶片病害分类检测数据集(猫脸码客 第221期)
桃子叶片病害分类检测数据集 一、引言 桃子作为世界上广泛种植的果树之一,其叶片的健康状况直接关系到果实的产量和品质。然而,桃子叶片易受多种病害的侵袭,这些病害不仅影响叶片的光合作用,还可能导致果实减产、品质下降&#…...
Vue--》掌握自定义依赖引入的最佳实践
在现代前端开发中,vue凭借其灵活性和高效性,已成为开发者们的宠儿,然而随着项目的复杂度提升,如何高效地管理和引入依赖,尤其是自定义引入依赖,成为了许多开发者面临的一大挑战。无论是为了优化加载速度&am…...
2605.VGGT-Omega 论文解读: 3D重建的Scaling Law, Register Attention效率革命 | Oxford+Meta CVPR26 Oral
VGGT-Omega: Scaling Feed-Forward 3D Reconstruction Jianyuan Wang, Minghao Chen, Shangzhan Zhang, Nikita Karaev, Johannes Schonberger, et al. Visual Geometry Group, Oxford Meta AI | CVPR 2026 Oral | arXiv 2605.15195 Paper | Project Page 一句话总结 VGGT-Om…...
echarts中heatmap鼠标滚动禁用缩放,向下滚动
配置如下效果如下...
Claude端到端测试设计:从零搭建可审计、可回放、可量化的AI服务测试流水线(含开源Schema校验工具)
更多请点击: https://codechina.net 第一章:Claude端到端测试设计 端到端测试是验证Claude模型在真实用户交互链路中行为一致性的关键手段。它覆盖从原始提示输入、上下文管理、流式响应生成,到输出解析与业务校验的全路径,确保模…...
微信聊天图片丢了别慌!保姆级教程:找回并解密DAT文件(支持新旧版微信路径)
微信DAT图片恢复实战:从文件定位到批量解密的完整指南 微信聊天记录中的图片突然消失?别急着放弃!那些看似无法打开的DAT文件里,可能藏着您的重要回忆或工作资料。本文将带您深入微信存储机制,手把手完成从文件定位到…...
用ESP32-C3的PWM做个RGB呼吸灯吧:从配置结构体到色彩渐变(乐鑫ESP-IDF实战)
ESP32-C3 RGB呼吸灯实战:从PWM配置到色彩渐变算法 当智能家居的灯光不再只是简单的开关控制,而是能像呼吸般自然渐变时,整个空间的氛围立刻变得生动起来。ESP32-C3凭借其出色的LED PWM控制器(LEDC)外设,为开…...
保姆级教程:手把手教你搞定ESXi 6.7安装前的BIOS设置(VT-x/VT-d/AES全开)
从零开始:ESXi 6.7安装前的BIOS设置终极指南当你第一次接触企业级虚拟化平台时,那种既兴奋又忐忑的心情我完全理解。作为过来人,我记得自己第一次在Dell PowerEdge服务器上安装ESXi时,光是搞清楚BIOS里那些晦涩的选项就花了整整一…...
ncmdumpGUI终极指南:3分钟搞定网易云音乐NCM文件转换
ncmdumpGUI终极指南:3分钟搞定网易云音乐NCM文件转换 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐的NCM加密格式而烦恼吗&…...
终极Windows键盘重映射解决方案:SharpKeys完全指南
终极Windows键盘重映射解决方案:SharpKeys完全指南 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys 还在…...
OpenClaw 源码解析(六):openclaw agent 如何触发一次 Agent 运行?
1. 本期要解决的问题 前几期我们已经从项目整体结构、CLI 命令体系、配置加载、Gateway 运行机制等角度理解了 OpenClaw 的基础框架。到了这一期,可以进一步进入 OpenClaw 最核心的使用动作:用户在终端中执行一条 openclaw agent --message "...&q…...
Godot4地图分层绘制实战:从图层混乱到专业场景管理的避坑指南
Godot4地图分层绘制实战:从图层混乱到专业场景管理的避坑指南当你第一次在Godot4中完成一个复杂场景的TileMap绘制时,那种成就感无与伦比。但随着场景复杂度提升,你是否遇到过这些头疼问题:角色明明站在树后却被树叶遮挡ÿ…...
