SQL 概述

1. 为什么要使用数据库

  • 持久化:将数据保存到各种可掉电式存储设备中供之后使用,持久化的大多数过程都要通过各种数据库来实现

2. 数据库与数据库管理系统

  • DB

  • DBMS

  • SQL

  • 数据库是用来存储有组织的数据的容器。
    首先明确数据库(database)不是软件,数据库软件(DBMS)是一种软件(MySQL,Oracle,Microsoft SQL Server…都是一种数据库)。SQL本身不是数据,也不是数据库,而是一种结构化查询语言(Structured Query Language)
    如果把数据库比作盘子,那么数据就是其中的菜,SQL就是你手上的筷子。

  • 我们学习SQL的目的。
    假设我们现在存在一张描述全世界dog信息的数据库,我们广义上理解把他们理解为一张张包含行列的信息表,通过SQL,我们现在能够回答诸如此类的一些问题:
    "全世界品种为“吉娃娃”的品种的狗狗有多少条?“,"多少条狗的毛发是 红色的?”这样的问题。通过SQL我们能更方便的去获取以及统计这些信息。


  • 我们并不是直接将数据放入库中,而是先在库中 创建文件,然后将相关的数据放入文件中
    这种文件称为表,表是一种结构化的文件,可用来存储特定类型的数据。不要将多个清单放在一个表中。

  • 不同DBMS软件实现同样的SQL的用法都不完全相同。

  • 客户机-服务器软件
    DMBS可以分为两类,一类为基于共享文件系统的DMBS(Mircosoft Access,FileMaker),另一类为基于客户机-服务器的DMBS(MYSQL,Oracle,Microsoft SQL Server))。

  • RDBMS
    关系型数据库管理系统,将复杂的数据结构归结为简单的二元关系
    优点:
    复杂查询:可以使用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询
    事务支持:使得对于安全性能很高的数据访问要求得以实现

  • 非RDBMS
    非关系型数据库管理系统
    基于键值对存储数据,不需要经过SQL层的解析,性能非常高。

关系型数据库管理系统(RDBMS)与非关系型数据库(非RDBMS)的区别

存储方式特点
RDBMS数据以行列的形式存储复杂查询/事务支持
非RDBMS数据以键值对的形式存储无sql层解析,性能极高
  • 关系型数据库设计规则
    一个数据库中可以有多个表,每个表都有一个名字,用来标识自己,表名具有唯一性

表、记录(行)、字段(属性、列)

表与数据库的特性称作模式
表的特性
🅰️列和数据类型
所有的表都是由一个或多个列组成,一列存储着一条特定的信息。
数据类型规定了,所允许存储的数据的类型,每个表列都有相应的数据类型,它限制了这一列能存储什么样的信息。
🅰️行
顾客表中每行存储一个顾客,表中的行数为记录的总数
🅰️主键
主键指的是在一列或一组列(当一列难以区分每一行时,可以使用多个列共同作为主键)中,其值能够唯一区分表中的每个行。
表中的任何列都可以作为主键
任意两行都不具有相同的主健值
每个行都必须具有一个主键值(不允许为null)
表就相当于数据语言中的一个类,那么表中的每一行(也叫做一个记录)相当于一个类生成的一个对象,表中的每一列都相当于类中的一个属性或者叫做实例字段。

表的关联关系

  • 一对一关联:实际开发中并不多,因为一对一可以创建成一张表,但是有时候为了查询的效率( 设计表时将常用的信息放在一个表中,将不常用的放在一个表中。)
    建表原则1. 外键唯一:主表的主键和从表的外键唯一,形成主外键关系,外键唯一。2.外键是主键,主表的主键和从表的主键,形成主外键关系
  • 一对多关联:应用广泛,客户表和订单表(一个客户可以有多个订单)分类表和商品表,部门表与员工表。建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
  • 多对多关联
  • 自我引用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值