当前位置: 首页 > news >正文

软件设计之MySQL(1)

软件设计之MySQL(1)

此篇应在JavaSE之后进行学习:
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
Navicat可以在软件管家下载
使用navicat连接mysql数据库创建数据库、表、转储sql文件,导入sql数据

学习内容:

  1. 数据库概述
  2. 表、记录、字段
  3. Navicat使用注意事项
  4. SQL

1、数据库概述

为什么要使用数据库

在这里插入图片描述

数据库相关概念

在这里插入图片描述

关系型数据库和非关系型数据库

关系型数据库(RDBMS)
1、以的形式存储数据,一系列的行和列被称为,一组组成一个
2、关系体现在表与表之间的联系,各种联系均用关系模型表示
3、SQL就是关系型数据库的查询语言
非关系型数据库(非RDBMS)
1、主要体现为舍得
2、体现在,非关系型数据库通常舍弃了严格的ACID、复杂的SQL查询能力
3、体现在由于没有复杂的查询和一致性要求,非关系型数据库通常在数据写入读取的性能上表现优异;其擅长在分布式环境中进行水平扩展,可以处理大量的数据·和·高并发的请求

ORM思想

Object Relational Mapping
数据库中的一个表对应Java中的一个类
数据库中的一条数据对应类中的一个对象
数据库中的一列对应类中的一个属性、属性(field)
在这里插入图片描述

2、表、记录、字段

E-R(entity-relationship,实体-联系)模型中三个主要概念:实体集属性联系集
联系集–>表的关联关系:四种。一对一关联一对多关联多对多关联自我引用

一对一关联(one to one)

“一对一关联”指的是在数据库设计中,一个表中的每一行记录只能与另一个表中的一行记录相关联,也就是说,两个表之间的这种关系是独占的,每个对象在另一个表中只能有一个对应的对象。
举例:学生表:学生、姓名、手机号码、班级信息、紧急联系人
常用信息表:学生、姓名、手机号
不常用信息表:学生、班级信息、紧急联系人

一对多关系(one to many)

一对多关系指的是一个表中的一条记录可以与另一个表中的多条记录相关联。例如,一个班级可以有多个学生,一个客户可以有多个订单。
举例:员工表与部门表
员工表:编号、姓名、所属部门
部门表:编号、名称、简介

多对多关系(many to many)

它表示一个表中的多条记录可以与另一个表中的多条记录相关联,通常,这种关系需要通过一个**中间表(或连接表,桥表)**来实现
举例:学生选课
学生信息表:一行代表一个学生信息
课程信息表:一行代表一个课程信息
选课信息表:一个学生可以选多门课、一门课可以被多个学生选择
其中选课信息表是把各个学生选的各个课程作为数据存放
具体而言是:它包含了两个外键字段:StudentID 和 CourseID,分别指向 Student 和 Course 表中的主键。这个表记录了学生与课程之间的所有关联。
在这里插入图片描述

自我引用(Self reference)

自我引用指的是表中的一条记录可以与同一个表中的另一条记录相关联
举例:
假设有一个表示公司员工的表,每个员工都有一个经理,而经理本身也是员工。我们可以使用自我引用来表示这种关系。

3、Navicat使用注意事项

在添加连接后,要双击连接,使图案变绿,才是打开状态
新建数据库就是在该图案处,点右键创建
新建表的第一步是添加字段:例如学生的id、姓名、身份证等字段(属性),添加完后保存,并对表命名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SQL

SQL是访问和处理数据库的标准的计算机语言

SQL分类

在这里插入图片描述

SQL语言的规则与规范

规则1

在这里插入图片描述

规则 2(注释结构)

在这里插入图片描述

规则3(数据库导入)

方式1:在命令行客户端登录mysql,使用source指令导入
mysql> source d:\mysqldb.sql
提醒:Windows 系统中的路径应该使用双反斜杠 (\) 或正斜杠 (/) 来避免转义问题
方式2:在Navicat(或别的)导入sql
在这里插入图片描述

规则4(命名规则)

在这里插入图片描述

规范1(大小写规范)

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Oracle(62)什么是内存优化表(In-Memory Table)?
  • 【数据结构】在链式存储结构上建立一棵二叉树的算法
  • 日撸Java三百行(day22:二叉树的存储)
  • Python | Leetcode Python题解之第335题路径交叉
  • Python实战项目:天气数据爬取+数据可视化(完整代码)
  • 【微信小程序】实现中英文切换
  • 100 Exercises To Learn Rust 挑战!准备篇
  • 掌握网络数据的钥匙:Python Requests-HTML库深度解析
  • AI秘境-墨小黑奇遇记 - 初体验(一)
  • GPT-4o mini发布,轻量级大模型如何颠覆AI的未来?
  • PCDN管道收益项目详谈二运营商资管图
  • 【idea】 已经commit还没push怎么修改commit信息?
  • C++引用产生临时量的情况
  • AI学习指南机器学习篇-多层感知器(MLP)Python中的实现和使用
  • Windows File Recovery卡在99%怎么解决?实用指南!
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 2017-09-12 前端日报
  • CAP理论的例子讲解
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • PaddlePaddle-GitHub的正确打开姿势
  • vue学习系列(二)vue-cli
  • 从重复到重用
  • 多线程 start 和 run 方法到底有什么区别?
  • 复习Javascript专题(四):js中的深浅拷贝
  • 全栈开发——Linux
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • ​Java基础复习笔记 第16章:网络编程
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (c语言)strcpy函数用法
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (vue)页面文件上传获取:action地址
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (五)c52学习之旅-静态数码管
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (已解决)什么是vue导航守卫
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)ObjectiveC 深浅拷贝学习
  • .env.development、.env.production、.env.staging
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 发展历程
  • .net 受管制代码
  • .net 怎么循环得到数组里的值_关于js数组
  • .net6使用Sejil可视化日志
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET中winform传递参数至Url并获得返回值或文件
  • .NET周刊【7月第4期 2024-07-28】
  • ??javascript里的变量问题
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)