数据库--MySQL数据管理

数据库–MySQL数据管理

文章目录

  • 数据库--MySQL数据管理
    • 1.外键管理
    • 2.数据库数据管理
    • 3.DML语言
      • 3.1添加数据
      • 3.2修改数据
      • 3.3删除数据
    • 4.练习

1.外键管理

  • 外键概念
    • 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之 间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
  • 外键作用
    • 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,约束。使两张表形成关联,外键只能引用外表中的列的值或使 用空值。
  • 创建外键
    • 建表时指定外键约束
    • 建表后修改
  • 删除外键
  • 删除外键、删除表

2.数据库数据管理

  • 数据库意义
    • 数据存储
    • 数据管理
  • 管理数据库数据方法
    • 通过SQLyog等管理工具管理数据库数据
    • 通过DML语句管理数据库数据

3.DML语言

  • DML(Data Manipulation Language,数据操作语言)
    • 用于操作数据库对象中所包含的数据
  • 包括
    • INSERT ( 添加数据语句 )
    • UPDATE ( 更新数据语句 )
    • DELETE ( 删除数据语句 )

3.1添加数据

  • INSERT命令

    #新增数据 (插入一条数据)  字段一定要写
    INSERT INTO 表名 [( 字段1, 字段2, 字段3,...)] VALUES('值1', '值2', '值3',...)INSERT INTO `subject`(SubjectNO,SubjectName,ClassHour,GradeID) VALUES(01,'数据库',22,3);INSERT INTO student (StudentNO,StudentName,Sex,GradeID,Phone,Address,BornDate,Email,IdentityCard) VALUES(1011,'郭靖',1,1,'13500000001','北京海定区中关村大街1号','1986-12-11','guojing @bdqn.cn','450323198612111000');#新增数据 (插入多条数据)
    insert into 表名(字段名1,字段名2,...,字段名N)
    values
    (值1,值2,...,值N),
    (值1,值2,...,值N),
    ... ...
    (值1,值2,...,值N);#新增数据 (插入多条数据)
    #INSERT语句向数据表student添加数据
    INSERT INTO student (StudentNO,StudentName,Sex,GradeID,Phone,Address,BornDate,Email,IdentityCard)
    VALUES(1011,'郭靖',1,1,'13500000001','北京海定区中关村大街1号','1986-12-11','guojing @bdqn.cn','450323198612111000'),
    (1013,'李梅',0,3,'13500000015','上海','1986-12-31','limei@bdqn.cn','450323198612311000'),
    (1012,'李文才',1,2,'13500000002','河南洛阳','1981-12-31','liwencai@bdqn.cn','450323198112311000');#INSERT语句为课程表subject添加数据
    INSERT INTO `subject` (SubjectNO,SubjectName,ClassHour,GradeID) 
    VALUES(1,'高等数学-1',120,1),(2,'高等数学-2',110,2),
    (3,'高等数学-3',100,3),(4,'高等数学-4',130,4);INSERT INTO result (StudentNO,SubjectNO,StudentResult) VALUES('1011','1','99'),('1012','1','79'),('1013','1','89'),('1012','2','69'),('1011','3','88'),('1012','3','79'),('1013','3','66');
    
    • 字段或值之间用英文逗号隔开

    • “字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致(字段尽量不要省略)

    • 可同时插入多条数据,values 后用英文逗号隔开

3.2修改数据

  • UPDATE命令

    UPDATE 表名 SET column_name = value  [,column_name2 = value2,...] [WHERE条件];#UPDATE语句修改student表数据
    UPDATE student SET Email='student1013@bdqn.cn',LoginPwd='000000' WHERE StudentNO=1013;
    #将数据表subject中ClassHour大于110且GradeID为1的课时都减少10
    UPDATE `subject` SET ClassHour=ClassHour-10 WHERE ClassHour>110 AND GradeID=1;
    
    • column_name 为要更改的数据列
    • value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果
    • condition为筛选条件,如不指定则修改该表的所有列数据
  • WHERE条件子句

    • 简单理解为有条件地从表中筛选数据
    • WHERE中的运算符
    运算符含义范例结果
    =等于5=6false
    <> 或 !=不等于5!=6true
    >大于5>6false
    <小于5<6true
    >=大于等于5>=6false
    <=小于等于5<=6true
    BETWEEN在某个范围之间BETWEEN 5 AND 10-
    AND并且5>1 AND 1>2false
    OR5>1 OR 1>2true

3.3删除数据

  • DELETE命令
DELETE FROM 表名 [WHERE条件]; DELETE FROM student WHERE StudentNo=1000;
  • condition为筛选条件,如不指定则删除该表的所有列数据

  • TRUNCATE命令

    • 用于完全清空表数据,但表结构、索引、约束等不变
TRUNCATE [TABLE] table_name;
  • 区别于DELETE命令
  • 相同
    • 都能删除数据、不删除表结构,但TRUNCATE 速度更快
  • 不同
    • 使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器
    • 使用TRUNCATE TABLE不会对事务有影响

4.练习

#学生表插入数据
INSERT INTO student VALUES('108','曾华','男','1977-09-01','95033'),
('105','匡明','男','1975-10-02','95031'),
('107','王丽','女','1976-01-23','95033'),
('101','李军','男','1976-02-20','95033'),
('109','王芳','女','1975-02-10','95031'),
('103','陆君','男','1974-06-03','95031');
#课程表插入数据
INSERT INTO course VALUES('3-105','计算机导论','825'),
('3-245','操作系统','804'),
('6-166','数字电路','856'),
('9-888','高等数学','831');
#成绩表插入数据
INSERT INTO score VALUES('103','3-245','86'),
('105','3-245','75'),
('109','3-245','68'),
('103','3-105','92'),
('105','3-105','88'),
('109','3-105','76'),
('101','3-105','64'),
('107','3-105','91'),
('108','3-105','78'),
('101','6-166','85'),
('107','6-166','79'),
('108','6-166','81');
#教师表插入数据
INSERT INTO teacher VALUES('804','李诚','男','1958-12-02','副教授','计算机系'),
('856','张旭','男','1969-03-12','讲师','电子工程系'),
('825','王萍','女','1972-05-05','助教','计算机系'),
('831','刘冰','女','1977-08-14','助教','电子工程系');
#将course表中高等数学修改为JAVA高级编程
UPDATE course SET  Cname='JAVA高级编程' WHERE Cname='高等数学';
#删除学生陆君的信息 (学生信息及学生考试成绩)
DELETE FROM score WHERE score.Sno IN(SELECT Sno FROM student WHERE Sname ='陆君');
DELETE FROM student WHERE Sname ='陆君';
#查询95031班级所有男生信息,返回学号,姓名,性别,出生日期,班级编号
SELECT Sno '学号',Sname '姓名',Ssex '性别',Sbirthday '出生日期',Class '班级编号'
FROM student WHERE Class='95031' AND Ssex='男';
#查询Score表中成绩为85,86或88的记录
SELECT Sno,Cno,Degree FROM score WHERE Degree IN(85,86,88);
#查询Score表中成绩为85,86或88的记录,返回学号,课程名称(注意不是课程编号)
SELECT Sno '学号',Cname '课程名称',Degree '成绩' FROM score,course 
WHERE Degree IN(85,86,88) AND score.Cno=course.Cno;

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

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

相关文章

【C++练习】13.C++输出九九乘法表的方法详解

目录 C++输出九九乘法表的方法详解 方法1:双重for循环(最基础) 思考: 代码分析: 特点: 方法2:使用while循环 思考: 代码分析: 特点: 方法3:使用递归实现 思考: 代码分析: 特点: 方法4:格式化输出(对齐美观) 思考: 代码分析: 特点: 方法5:使用函数封装 思考…

MVC及其衍生

MVC 把软件分成模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;、控制器&#xff08;Controller&#xff09;三个基本部分。 事实上对应着 Controller——输入 用户交互&#xff0c;将输入处理成Controller能处理的形式 Model——处理 描述状态、逻辑规律…

微硕WINSOK MOS管WSF3089,赋能汽车转向系统安全升级

随着汽车电子化程度不断提高&#xff0c;转向系统对高效功率器件的需求日益增长。微硕WINSOK推出的N沟道Trench MOS管WSF3089&#xff0c;以30 V/72 A大电流、4.5 mΩ超低导通电阻和TO-252-2L紧凑封装&#xff0c;为EPS&#xff08;电动助力转向&#xff09;电机驱动、电源管理…

淘宝拍立淘接口的接入与应用||item_search_img-按图搜索淘宝商品(拍立淘)

淘宝拍立淘接口的接入与应用如下&#xff1a;接入流程注册与认证&#xff1a;开发者账号注册&#xff1a;访问淘宝开放平台&#xff0c;进行开发者账号注册。创建应用&#xff1a;在控制台创建新应用&#xff0c;获取 App Key 和 App Secret&#xff0c;这是接口调用的凭证。申…

Python学习-day8 元组tuple

元组&#xff08;Tuple&#xff09;是Python中一种不可变的序列类型&#xff0c;用于存储多个有序元素。与列表&#xff08;List&#xff09;类似&#xff0c;但元组一旦创建后不能修改&#xff08;不可添加、删除或修改元素&#xff09;&#xff0c;这使得它在安全性、性能优化…

大数据毕业设计选题推荐-基于大数据的国家医用消耗选品采集数据可视化分析系统-Hadoop-Spark-数据可视化-BigData

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

二次学习C语言补充2

文章目录表栈、队列、二叉树一、二叉树二、表栈三、队列链表一、单向链表二、循环链表、双向链表和双向循环链表预处理一、预处理二、宏定义文件文件操作补充本篇文章是对二次学习C语言12——文件操作 二次学习C语言14——预处理及模块化 二次学习C语言15——链表 二次学习C语言…

2.9Vue创建项目(组件)的补充

1.再创建和引入vue的选择2.VsCode插件 安装Vue自己搜索最新的3.style自己的作用域在一个组件中引入另一个文件的子组件&#xff0c;给当前组件设置样式&#xff0c;那么子组件的样式也会改变的。为了解决这个问题 我们在自己的style中设置一个属性4.另一种创建vue 的方式(主流…

算法高频题

刷题&#xff1a;LeetCode&#xff08;Top 100-150题&#xff0c;至少刷两遍&#xff09;。重点&#xff1a;链表、树、二分查找、动态规划、回溯、栈/队列。 每一个题型&#xff0c;前10个高频题 算法思考框架参考&#xff1a;算法题思维框架-CSDN博客 高频顺序参考网站&…

服务器安装 LDOPE(MODIS 数据处理工具)

目录下载方式1-&#xff08;简单快捷&#xff09;根据WRF-VPRM 需要打补丁下载方式2&#xff1a;&#xff08;手动安装依赖&#xff09;一、安装所需依赖库&#xff08;4 个主库 2 个基础库&#xff09;另- HDF-EOS 手动编译二、解压并安装 LDOPE参考下载方式1-&#xff08;简…

克隆代币 + 捆绑开盘:多链环境下的低成本发币玩法

在加密世界&#xff0c;发币已经不再是“少数开发者的专利”。随着工具的普及&#xff0c;任何人都可以快速发行一个在加密世界&#xff0c;发币已经不再是“少数开发者的专利”。随着工具的普及&#xff0c;任何人都可以快速发行一个代币。但问题是&#xff1a;如何在保证低成…

数据结构中的 二叉树

1.前言 在 Java 中&#xff0c;树&#xff08;Tree&#xff09;是一种非线性数据结构&#xff0c;由节点&#xff08;Node&#xff09;组成&#xff0c;常见的线性表则是我们之前学过的顺序表、链表、栈、队列等等。每个节点包含数据和指向子节点的引用。树的常见实现方式包括二…

IntelliJ IDEA 启动项目时配置端口指南

&#x1f31f; 一、为什么需要手动设置启动端口&#xff1f; 默认情况下&#xff0c;Spring Boot 应用会使用 8080 端口启动。但在以下场景中&#xff0c;我们必须自定义端口&#xff1a; 多个微服务同时运行&#xff0c;需避免端口冲突&#xff1b;团队协作开发&#xff0c;统…

spark sql之from_json函数

目录前言函数语法参数说明返回值案例案例1案例2前言 在Spark SQL中&#xff0c;from_json函数用于解析包含JSON字符串的列&#xff0c;并将其转换为Spark SQL的结构化类型&#xff08;如struct、map或array&#xff09; 函数语法 from_json(jsonStr, schema [, options])参数…

数据结构 之 【位图的简介】

目录 1.位图的引入 2.位图概念 3.位图的实现 3.1前提准备 3.2set 3.3reset 3.4test 4.位图的应用 1.位图的引入 给40亿个不重复的无符号整数&#xff0c;没排过序 再给一个无符号整数&#xff0c;如何快速判断这个无符号整数是否在 这40亿个数中 首先&#xff0c;一个…

[iOS] ViewController 的生命周期

文章目录前言一、UIViewController 生命周期有关函数二、UIViewController 中函数的执行顺序运行结果1.present和dismiss2.push和pop三、总结前言 UIViewController 是在 iOS 开发中一个非常重要的角色&#xff0c;他是 view 和 model 的桥梁&#xff0c;通过 UIViewControlle…

第30章 零售与电商AI应用

本章将深入探讨人工智能在零售与电商领域的革命性应用。我们将从智能推荐系统、动态定价、库存管理到创新的虚拟试衣间&#xff0c;全面解析AI如何重塑购物体验和商业运营效率&#xff0c;并为每个关键技术点提供代码实战&#xff0c;帮助你掌握将AI应用于真实商业场景的能力。…

QT通过QModbusRtuSerialMaster读写电子秤数据实例

一、电子称常用功能&#xff1a;称重、清零、去皮&#xff1b;电子秤的通讯方式&#xff1a;Modbus通信、串口通信。二、QT读写电子秤软件界面如下&#xff1a;三、核心代码如下&#xff1a;.pro项目文件代码&#xff1a;QT core gui serialbus serialport.h头文件代码#…

sqlmap常用命令

ZZHow(ZZHow1024) 一、扫描注入点 1.GET方法&#xff0c;给URL&#xff1a; #探测该url是否存在漏洞 python sqlmap.py -u "http://192.168.10.1/sqli/Less-1/?id1"#如果我们已经知道admin这里是注入点的话&#xff0c;可以在其后面加个*来让sqlmap对其注入 python …

JVM如何排查OOM

当JVM&#xff08;Java虚拟机&#xff09;出现OOM&#xff08;OutOfMemoryError&#xff09;时&#xff0c;可以按照以下步骤和方法&#xff0c;用于帮助定位和解决JVM中的OOM问题1.查看异常堆栈信息查看异常堆栈信息&#xff08;StackTrace&#xff09;是定位问题的关键。OOM异…