数据库(一) 基础知识

这篇具有很好参考价值的文章主要介绍了数据库(一) 基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

数据库(一) 基础知识,后端,oracle
数据库是按照数据结构来组织,存储和管理数据的仓库

数据模型

数据库系统的核心和基础是数据模型,数据模型是严格定义的一组概念的集合。因此数据模型一般由数据结构、数据操作和完整性约束三部分组成。数据模型主要分为三种:层次模型,网状模型和关系模型。关系模型是目前使用最广泛的数据模型,关系型数据库采用的就是关系模型作为数据的组织方式,例如ORACLE,MYSQL等关系型数据库

  • 关系模型特点
    • 关系模型中数据的逻辑结构是一张二维表,或者说关系的数据结构就是一张表
    • 关系数据模型的数据操作主要包含查询、插入、删除和更新数据
    • 关系模型的完整性约束条件包含三大类:实体完整性、参照完整性和用户自定义的完整性
    • 实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(由此规则可得一直接结论:主键不能为空)
    • 参照完整性规则:若属性(或属性组)F是某基本关系R的外键,且它与基本关系R1的主键相对应,则对于R中每个F上的值或为空值或者等于R1中的主键值

数据库分类

数据库(一) 基础知识,后端,oracle
关系型和非关系型数据库区别

注意:

  • OLTP(On-Line Transaction Processing)是指联机事务处理
  • OLAP(On-Line Analytical Processing)是指联机分析处理

数据库主要分为关系型数据库非关系型数据库,各自特点如下

  • 关系型数据库(RDBMS)
    • 采用了关系模型来组织数据的数据库。关系模型的完整性规则是对关系的某种约束,分为实体完整性、参照完整性约束和用户定义完整性,即关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系数据库中关系称为表、元组称为行、属性也称为列
    • 常见的关系型数据库如:Oracle、MySQL、SQL Server
  • 非关系型数据库:
    • 现在更多是指NoSQL数据库,如:基于键值对(redis)、基于文档型(mongodb)、基于列族(hbase)、基于图型(neo4j)

事务

事务是指用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务具有4个特性:原子性、一致性、隔离性、持续性。简称为ACID特性

  • Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败
  • Consistency(一致性):事务执行前后,数据从一个状态到另一个状态必须是一致的(A向B转账,不能出现A扣了钱,B却没收到)
  • Isolation(隔离性): 多个并发事务之间相互隔离,不能互相干扰
  • Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚

索引

索引是对数据库中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的数据

  • 索引优点
    • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
    • 可以大大加快数据的检索速度(创建索引的主要原因)
    • 在使用分组(group by)和排序(order by)子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
    • 可以加速表和表之间的连接,特别是在实现数据的参照完整性方面特别有意义
  • 索引缺点
    • 增加了数据库的存储空间
    • 插入和删除数据时要花费较多时间(因为索引也要随之变动)

视图

  • 视图是从一个或几个基本表(或视图)导出的表。与基本表不同,它是一个虚表
  • 数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中
  • 所以基本表中的数据发生变化时,视图中查询出的数据也就随之改变了
  • 视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化
  • 视图一经定义,就可以和基本表一样被查询、删除

主键与外键

  • 候选码:关系(二维表)中能唯一标识一个元组的属性组
  • 主键:如果一张表有多个候选码,则选定其中一个为主键
  • 外键:如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键,则该属性集是关系模式
  • 主属性与非主属性:候选码的主属性称为主属性。不包含在任何候选码中的属性称为非主属性

SQL分类

数据库(一) 基础知识,后端,oracle

SQL全称Structured Query Language,指的是结构化查询语言。SQL语句主要包括

  • 数据定义(DDL):create、drop、alter
  • 数据查询(DQL):select
  • 数据操作(DML):insert、update、delete
  • 数据控制(DCL):grant、revoke

DDL数据定义语言

  • create database <dbName>; ##创建数据库
  • show databases; ## 显示当前数据库列表
  • alter database <dbName> character set utf8; ## 修改数据库的字符集
  • drop database <dbName>; ## 删除数据库

DQL数据查询语言

DQL用来从数据表中提取满足特定条件的记录

  • 基本语法
    • select columnName1 [columnName1, columnName2, ...] from <tableName> [where conditions]; # select 关键词后指定要显示查询到的记录的那些列
  • Where子句:  在删除、修改及查询的语句后都可以添加where子句(条件),用于筛选满足特定的添加的数据进行删除、修改和查询操作。
    • delete from tableName where conditions;
    • update tableName set ... where conditions;
    • select ... from tableName where conditions;
  • LIKE子句: 在where 子句的条件中,我们可以用 like 关键字来实现模糊查询,
    • select * from tableName where column like 'reg';
      • 其中reg表达式中
      • %表示任意多个字符【%o%包含字母o】
      • _表示任意一个字符【_o%第二个字母为o】
    • # 查询学生姓名包含字母o的学生信息
    • select * from stus where stu_name like '%o%';
    • # 查询学生姓名第一个字为‘张’的学生信息
    • select * from stus where stu_name like '张%';
    • # 查询学生姓名第二个字母为o的学生信息
    • select * from stus where stu_name like '_o%';
  • 排序 order by: 将查询到的满足条件的记录按照指定的列的值升序/降序排列
    • order by column,column1,column2 asc/desc: 首先按照column排序,如果有相同才会按照column1排序,以此类推...

    • select * from tableName where conditions order by columnName asc|desc;
  • 聚合函数: SQL 中提供了一些可以对查询的记录的列进行计算的函数–聚合函数
    • count()统计函数,统计满足条件的指定字段值的个数(记录数)
    • max() 计算最大值,查询满足条件的记录中指定列的最大值
    • min() 计算最小值,查询满足条件的记录中指定列的最小值
    • sum() 计算和, 查询满足条件的记录中 指定的列的值的总和
    • avg() 求平均值,查询满足条件的记录中 计算指定列的平均值
      • 总数:select count(*) as totalcount from table1;
      • 求和:select sum(field1) as sumvalue from table1;
      • 平均:select avg(field1) as avgvalue from table1;
      • 最大:select max(field1) as maxvalue from table1;
      • 最小:select min(field1) as minvalue from table1;
  • Group by: 根据一个或多个属性的值对元组分组,值相同的为一组,通常分组后聚集函数将作用于每一个组,即每一组都有一个函数值; 如果分组后还要求按一定的条件对这些分组进行筛选,最终只输出满足指定条件的组,则使用HAVING短语指定筛选条件
    • # 按年龄分组,统计每个年龄的人数,并输出(年龄,该年龄的人数)
    • select Sage, count(*) from Student group by Sage;
    • # 按年龄分组,统计每个年龄的人数,选出人数大于1的分组,输出(年龄,该年龄的人数)
    • select Sage, count(*) from Student group by Sage having count(*) > 1;
  • 连接查询: 一次查询涉及多张表

    数据库(一) 基础知识,后端,oracle

    • 假设有2个表——Student表和SC表(选课表):
      • 内连接(自然连接):当使用内连接时,如果Student中某些学生没有选课,则在SC中没有相应元组。最终查询结果舍弃了这些学生的信息
        • 查询每个学生及其选修课程的情况(没选课的学生不会列出)
        • SELECT Student.*, SC.* FROM Student , SC WHERE Student.Sno=SC.Sno;
      • 外连接:如果想以Student表为主体列出每个学生的基本情况及其选课情况。即使某个学生没有选课,依然在查询结果中显示(SC表的属性上填空值)。就需要使用外连接
        • 查询每个学生及其选修课程的情况(没选课的学生也会列出)
        • SELECT Student.*, SC.*
        • FROM Student LEFT JOIN SC ON(Student.Sno=SC.Sno);
  • 分页查询: 一次检索所有的记录,会占用系统很大的资源,因此常常采用分页语句:需要多少数据就只从数据库中取多少条记录;
    • 不同的数据库分页语句有所不同,mysql关键字为limit,SqlServer为top,Oracle则为rowNum

DML数据操作语言

DML用来完成对数据表中数据的插入、删除、修改操作

  • insert into <tableName>(columnName, columnName...) values(value1,value2...) #插入数据
  • delete from <tableName> [where conditions] #删除数据
  • update <tableName> set columnName=value [where conditions] #修改数据

DCL数据控制语言

DCL用来创建用户,管理用户权限文章来源地址https://www.toymoban.com/news/detail-685901.html

  • create user 'user_name'@host_name [IDENTIFIED BY[PASSWORD ]'password' ]#createUsr
  • select * from user #查看用户
  • drop user '用户名'@主机名 #删除用户
  • grant 权限1,权限2 on 数据库名称.表名称 to 用户名@用户地址 #赋予权限
  • revoke 权限1,权限2 on 数据库名称.表名称 from 用户名@用户地址 #撤销权限

到了这里,关于数据库(一) 基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库基础知识,基础操作详细整理

    引入: 淘宝网,京东、微信,抖音等都有各自的功能,那么当我们退出系统的时候,下次再访问时,为什么信息还存在? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数

    2024年04月17日
    浏览(52)
  • 数据库入门-----SQL基础知识

    目录 📖前言: 📑SQL概述通用语法:  🐳DDL: 🐻操作数据库: 🐞数据类型:  🦉操作表: 🦦DML: 语法规则: 案例演示: 🦏DQL: 语法规则: 案例演示: # 基础查询:  # 条件查询:  #聚合函数:  # 分组查询:  #排序查询:  #分页查询:  执行顺序: 🫎DCL: 语法规则:

    2024年04月10日
    浏览(53)
  • Mysql数据库基础知识总复习

    小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 前言 数据库基础知识 数据,数据库,数据库管理系统,数据库系统 数据

    2024年02月02日
    浏览(54)
  • OB数据库基础知识(学习记录)

    目录 OB业务场景 公司使用理由: 常见 bootstrap 失败原因 常见OBD 部署 失败原因 Grafana  查看集群资源由各个节点的聚合情况  OB创建租户 表分组的场景 mysqldump到处数据库schema,数据库数据,表数据 数据同步框架 DATAX obdumper使用注意事项 obdumper调优 obloader使用注意事项  什么

    2024年02月14日
    浏览(38)
  • 【数据库】MySQL基础知识全解

    系列综述: 💞目的:本系列是个人整理为了 秋招面试 的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于拓跋阿秀、小林coding等大佬博客进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。

    2024年02月09日
    浏览(54)
  • SQL Server数据库基础知识汇总

    目录 目录 一、数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二、 SQL(Structured Query Language) 2.1  定义 2.2  SQL分类 2.3 SQL与T-SQL 三、SqlServer下载与安装 四、数据库表各类操作 1 创建数据库登录用户 2 使用DCL赋予数据

    2023年04月09日
    浏览(55)
  • 【MySQL】数据库MySQL基础知识与操作

    作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《MySQL》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将MySQL基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:《算法详解

    2024年02月05日
    浏览(40)
  • MySQL数据库基础初学者必备知识

    目录 1.数据库的基本操作 1.1显示所有数据库 1.2创建数据库 1.3删除数据库 2.数据库的类型 2.1数值类型 2.2字符串类型 2.3日期类型 3.表的简单操作 3.1创建一个表 3.2显示表的结构 3.3显示数据库中的所有表 3.4删除指定表 4.实战练习 数据库的基本操作为:显示数据库,创建数据库

    2023年04月11日
    浏览(68)
  • MySQL入门指南:数据库操作的基础知识

    当谈到关系型数据库管理系统(RDBMS)时,MySQL无疑是最常见和广泛使用的一个。它是一个强大的工具,用于存储、管理和检索数据。在这篇博客中,我们将介绍MySQL的基本知识,包括数据库的操作、数据表的操作以及数据的增删改查~~ 目录 1. 数据库的操作 1.1 创建数据库 1.2 删除

    2024年02月07日
    浏览(97)
  • 【数据库】MySQL概念性基础知识期末复习

    第一章 3 二维表结构……数据模型—— 关系数据模型 5 描述全部数据整体逻辑结构—— 模式 6 逻辑数据独立性—— 模式变,外模式和应用程序不变 7 物理数据独立性—— 内模式变,外模式和应用程序不变 9 R-(R-S)—— R∩S 10 从两个关系笛卡尔积中选取他们属性间满足一定条

    2024年02月02日
    浏览(117)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包