【数据库原理】创建与维护表,DDL数据定义语言
数据描述语言(数据定义语言)
就是管理数据库整个库,整个表,表的属性列的语句。
常用词儿就是数据库或表的增删改查:CREATE
创建、DROP
删除、ALTER
修改、SHOW
查看、USE
进入表。
表的字段控制:PRIMARY KEY
主键、FOREIGN KEY
外键、CONSTRAINT
约束;ADD
增加字段、RENAME
表的重命名、MODIFY
修改字段数据类型或约束、CHANGE
修改字段名
- mysql数据库与表命名规则:当前字符集中的任意字符,下划线和$。最长为64字符。
- 文件系统对命名大小写敏感,则加以区分。windows中my_table与MY_TABLE是同一个表。UNIX中算两个不同的表。
- 表结构:列即字段,每个字段存储不同性质的数据。每一行各个字段数据构成一条数据记录。【就是属性和元组】
- 字段名:可以使用中文、英文、数字、下划线、井号、美元符号及at符号。字段名不能重复。【属性,就是属性】
- 字段的数据类型:字符串类型,长度表示容纳字符的数目。整型类型,长度为显示宽度。二进制类型,长度表示最大字节数。浮点数和定点数,长度表示数据的总长度。
- MySQL数据类型:
bit
,二进制位。binary
,二进制字符串。varbinary
,可变长度二进制字符串。char
,固定长度字符串。varchar
,可变长度字符串。date
,日期年月日。datetime
,日期时间。tinyint
,1B的整型。decimal
,定点数。【常用的这些,tinyint只占1B,最大表示到255。var- 一般表示可变长度】 - 删除表:
DROP TABLE [IF EXISTS] sc;#【如果存在,那么删除。加上这段话则不会报错:表不存在,无法删除表。】
- 创建表:
CREATE TABLE sc( <字段1> <数据类型1> [列级完整性约束条件] [,表级完整性约束条件] );
- 列级完整性约束条件:只约束单个字段(属性)。
PRIMARY KEY:设置主键
NULL/NOT NULL:允许/不允许为空【相当于主键】
UNIQUE:字段取值唯一【相当于主键】
DEFAULT<默认值>:指定字段的默认值【默认在校】
AUTO_INCREMENT:字段自动增加【班级总人数】
CHECK(条件表达式):拒绝接受不满足条件的值【成绩为0-100】
- 表级完整性约束条件:对整个表的约束条件(需要有主键,存在外键,字段的约束都可)。
CONSTRAINT <约束名> PRIMARY KEY(cno,sno),#【多个字段为表的主键】CONSTRAINT <约束名> FOREIGN KEY(cno,cterm) REFERENCES course(cno,cterm),
#【cno,cterm字段为外键,来自于course表】CONSTRAINT <约束名> UNIQUE (cno)CONSTRAINT <约束名> CHECK(degree>=0 and degree<=100)#【检查分数满足0-100之间】
- 查看表:
SHOW TABLES;
【查看数据库中有哪些表】 - 查看表结构:
DESCRIBE sc;
- 查看详细表结构:
DESCRIBES CREATE TABLE sc;
- 复制表:
CREATE TABLE 表名 SELECT * FROM 现有表名;
- 复制表结构:
CREATE TABLE new_stu SELECT * FROM stu WHERE 1=0;
【使得WHERE条件不成立,只保存表结构】 - 修改表结构
ALTER TABLE sc{ };
ADD <字段名> <数据类型 [列级完整性约束条件]> #ADD增加字段:
DROP <字段名>|<完整性约束名> #DROP删除字段【删除字段或删除约束】
RENAME <表名> #RENAME修改表名
MODIFY <字段名> <新数据类型> [列级完整性约束条件] #MODIFY修改字段的数据类型或完整性约束条件
CHANGE <旧字段名> <新字段名> <新数据类型> #CHANGE修改表中字段名称
- MySQL数据文件:.frm描述表结构;.myd数据文件;.myi数据文件中的索引文件。
- 创建表栗子
CREATE TABLE sc( sno CHAR(10) NOT NULL, # 学号字段char类型,非空cno CHAR(3) NOT NULL, # 课程号字段char类型,非空degree DECIMAL(4,1), # 分数字段decimal定点小数,小数点后1位cterm TINYINT NOT NULL, # 学期字段tinyint类型,非空CONSTRAINT A1 PRIMARY(sno,cno,cterm), # 约束A1:主键sno,cno,ctermCONSTRAINT A2 CHECK(degree>=0 and degree<=100), # 约束A2:检查分数0-100CONSTRAINT A3 FOREIGN KEY(sno) REFERENCES student(sno), # 约束A3:外键sno来自学生表studentCONSTRAINT A4 FOREIGN KEY(cno,cterm) REFERENCES course(cno,cterm)# 约束A4:外键cno,cterm来自课程表coures
);
- 修改表结构栗子
ALTER TABLE sc ADD class CHAR(10) AFTER sno; # 在表sc中sno字段后添加字段class
ALTER TABLE sc DROP FOREIGN KEY A4; # 在表sc中删除外键A4
ALTER TABLE sc RENAME sc1; # 修改表sc名为sc1
ALTER TABLE sc MODIFY degree INT; # 修改表sc中degree数据类型为int
ALTER TABLE sc CHANGE degree scores DECIMAL; # 修改表sc中degree字段为scores,类型为decimal
相关文章:
【数据库原理】创建与维护表,DDL数据定义语言
数据描述语言(数据定义语言) 就是管理数据库整个库,整个表,表的属性列的语句。 常用词儿就是数据库或表的增删改查:CREATE创建、DROP删除、ALTER修改、SHOW查看、USE进入表。 表的字段控制:PRIMARY KEY主键…...
驾驭Go语言中的不确定性:深入错误处理机制
驾驭Go语言中的不确定性:深入错误处理机制 在Go语言的编程世界中,错误处理是确保程序健壮性的关键。Go语言通过显式的错误返回值和panic/recover机制,提供了一套独特的错误处理策略。本文将深入探讨Go语言中的错误处理,包括原理、技术细节和实际案例,帮助读者在实际编程中…...
3D Gaussian Splatting在鱼眼相机中的应用与投影变换
paper:Fisheye-GS 1.概述 3D 高斯泼溅 (3DGS) 因其高保真度和实时渲染而备受关注。然而,由于独特的 3D 到 2D 投影计算,将 3DGS 适配到不同的相机型号(尤其是鱼眼镜头)带来了挑战。此外,基于图块的泼溅效率低下,尤其是对于鱼眼镜头的极端曲率和宽视野,这对于其更广泛…...
【Unity踩坑】在Mac上安装Cocoapods失败
在集成Unity Ad时,如果是第一次在iOS上集成,会在Mac上安装Cocoapods。 安装时提示下面的错误: Error installing cocoapods:The last version of drb (> 0) to support your Ruby & RubyGems was 2.0.5. Try installing it with gem…...

uni-app 认识条件编译,了解多端部署
一. 前言 在使用 uni-app 进行跨平台开发的过程中,经常会遇到需要针对不同平台或不同环境进行条件编译的情况。条件编译是一种在编译过程中根据指定条件选择不同代码路径的技术,可以帮助我们在不同平台或环境下编写不同的代码,以适应不同的平…...
SPA 首屏加载慢的原因及解决方案:结合实际项目的详细讲解
在现代前端开发中,单页面应用程序 (SPA) 的首屏加载速度是用户体验的关键因素之一。首屏加载慢会直接影响用户对网站的第一印象,甚至导致用户流失。因此,优化首屏加载速度是每个前端开发者需要重点关注的内容。 1. 什么是首屏加载? 首屏加载指的是用户访问一个网站或应用…...

vue3+ts el-tabel 搜索组件
爷爷页面 <template> <searchstyle"z-index: 9999":options"options"placeholder"请选择时间,或输入名称、单选、多个勾选、模糊查询"search"onSearch"></search> </template> <script lan…...
leetcode 排序算法汇总
快速排序 def quicksort(arr): if len(arr) < 1: return arr else: pivot arr[len(arr) // 2] # 选择中间值作为基准 left [x for x in arr if x < pivot] # 小于基准的放左边 middle [x for x in arr if x pivot] # 等…...

【C】错误的变量定义导致sprintf()输出错误
问题描述 刚刚写一个用AT指令透传相关的函数,需要用到sprintf()拼接字符串。 结果发现sprintf()拼接出来的内容是错误的,简化后的代码如下: const char AT_CIPSEND_FIX_LENGTH_HEADER[11] "ATCIPSEND"; // 错误的࿰…...
python基础导包
Python项目代码结构与导包详解 目录 引言 Python项目的基本结构 2.1 单文件项目2.2 多模块项目2.3 包结构项目2.4 示例项目结构 模块与包 3.1 模块(Module)3.2 包(Package)3.3 子包(Subpackage) 导包&a…...

【含开题报告+文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
开题报告 随着互联网的普及和数字娱乐产业的蓬勃发展,电影作为一种重要的娱乐方式,已经深入人们的日常生活。然而,面对海量的电影资源,用户在选择观影内容时常常感到困惑和无所适从。传统的电影推荐方式,如人工筛选、…...

strlwr(arr);的模拟实现(c基础)
hi , I am 36 适合对象c语言初学者 strlwr(arr);函数是把arr数组变为小写字母,并返回arr 链接介绍一下strlwr(arr);(c基础)-CSDN博客 下面进行My__strlwr(arr);模拟实现 #include<stdio.h> //返回值为arr(地址),于是用指针变量,原数组为字符型…...

LCR 002. 二进制求和
一.题目: . - 力扣(LeetCode) 二.原始解法-利用二进制逢二进一: 自己实现的时候忽略了一点,就是进位是会滚动的,不是进位一次就结束,很复杂跳过 三.正确解法及好的讲解、力扣解法参考…...
MySQL-C3P0连数据库报错问题
MySQL-C3P0连数据库报错问题 No suitable driver found for 首先检查MySQL数据库版本与依赖版本是否一致,如8.0.40数据库,需要使用8.0以上的依赖。检查c3p0的依赖版本,需要符合系统应用特性检查c3p0.xml配置文件的地址,需要在reso…...
云计算期中作业:Spark机器学习问题解决
在原有pdf教程教程上,做一个补充 idea内搭建环境 导入依赖 就直接利用之前的作业工程项目里直接写,所以依赖基本上不用再导入了,如果要导入,看自己依赖的版本号,不要直接复制教程,比如我的: …...

计算机网络socket编程(6)_TCP实网络编程现 Command_server
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(6)_TCP实网络编程现 Command_server 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论…...

RabbitMQ 集群
文章目录 前言单机多节点搭建集群创建RabbitMQ节点停止服务并重置将节点加入到集群中查看集群状态宕机 结论 前言 RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要…...
从零开始:使用 Spring Boot 开发图书管理系统
如何利用是springboot搭建一个简单的图书管理系统,下面让我们一起来看看吧 文章目录 项目结构1. 主类 LibraryApplication.java功能与注意事项: 2. 模型类 Book.java功能与注意事项: 3. 数据仓库接口 BookRepository.java功能与注意事项&…...
速盾:海外服务器使用CDN加速有什么优势?
CDN(Content Delivery Network)是指一种分布式网络架构,将内容分发到全球多个节点服务器上,使用户能够就近获取所需内容。海外服务器使用CDN加速,具有以下几个优势: 提高访问速度:CDN将内容复制…...

(二)手势识别——动作模型训练【代码+数据集+python环境(免安装)+GUI系统】
(二)手势识别——动作模型训练【代码数据集python环境(免安装)GUI系统】 背景意义 随着互联网的普及和机器学习技术的进一步发展,手势识别技术开始使用深度学习等方法进行手势识别,如Convolutional Neural…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...