数据库相关基础知识

news2024/10/10 0:28:32

10ecaec08a354a218438efcc9f9119b5.jpg第一章 概念

 

 

1、数据:描述事物的符号记录称为数据。特点:数据和关于数据的解释不可分。

 

2、数据库:长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。特点:永久存储、有组织、可共享。

 

3、数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。主要功能:数据定义功能(DDL);数据组织、存储和管理;数据操纵功能(DML);数据库的事务管理和运行管理;数据库的建立和维护功能;其他功能。

 

4、数据库系统(DBS):由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

 

5、数据管理技术三个阶段:人工管理、文件系统、数据库系统。

 

6、两类数据模型:概念模型(又叫信息模型);逻辑模型、物理模型

 

7、数据模型的组成要素:数据结构、数据操纵和数据的完整性约束条件。

 

8、概念模型:用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具也是数据库设计人员与用户之间进行交流的语言。

 

9、信息世界中的概念:实体、属性、码、域、实体型、实体集、联系;两个实体之间的联系又分为一对一,一对多,多对多。

 

10、E-R图:表示实体型、属性和联系的方法,实体型用矩形,属性用椭圆,联系用菱形。

 

11、关系的完整性约束条件包括三大类:实体完整性、参照完整性、和用户自定义完整性。

 

12、数据库系统的三级模式结构:模式、外模式、内模式。数据库的二级映像:外模式/模式映像,模式/内模式映像。

 

第二章 关系数据库

 

1、关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

 

2、关系操作:查询操作和插入、删除、修改操作两大部分。查询操作又可分为选择、投影、连接、除、并、差、交、笛卡尔积等。

 

3、实体完整性:主属性不能为空;参照完整性:关系与关系间的引用(一般为两张表,或者一张表内部也存在);用户自定义的完整性。

 

第三章 关系数据库标准语言SQL

 

1、SQL:结构化查询语言。

 

2、外模式对应于视图和部分表,模式对应于基本表,内模式对应于存储文件。

 

3、基本表:本身独立存在的表,在SQL中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。

 

4、视图:从一个或几个基本表中导出的表,本身不存在于数据库中,即数据库中只存放视图的定义不存放视图对应的数据,视图是一个虚表,可以在视图上再定义视图。

 

5、存储文件:其逻辑结构组成了关系数据库的内模式,其物理结构是任意的,对用户是透明的。

 

6、SQL查询

 

常用查询

SHOW DATABASES; 查询所有数据库

use 数据库名; 使用某数据库

SHOW TABLES 查询所有表

SHOW COLUMNS FROM 表名 查询该表所有列

SELECT 列 FROM 表名 查询

SELECT 列1,列2... FROM 表名 多列查询

SELECT * FROM 表名 全部查询(查询所有列)

7. 数据库服务环境安装部署

windows系统中部署数据库: mysql

https://dev.mysql.com/downloads/installer/

PHPstudy 程序包 --- 包含了数据库服务 --- 进行启动开启

方式一: 连接数据库(命令行操作管理)

连接数据库服务: cmd ---> 切换到PHPstudy数据库程序目录中 ---> 连接数据库

mysql.exe -uroot -proot

 

方式二: 连接数据库(图形界面操作)

安装连接数据库程序软件: Navicat 安装部署

实现远程连接数据库:

本地建立连接: localhost == 127.0.0.1

 

Linux系统中部署数据库: mysql

https://dev.mysql.com/downloads/mysql/

 

准备Linux环境: vmware虚拟软件 --- 加载虚拟主机 --- 启动

部署数据库服务: mariadb --- yum install -y mariadb(操作数据库命令) mariadb-server

启动数据库服务: systemctl start mariadb

 

方式一: 连接数据库(命令行)

虚拟主机环境 --- mysql -uroot

 

方式二: 连接数据库(图形界面)

??? 如何和虚拟主机数据路服务建立连接

 

05. 数据库操作管理知识

1) 操作数据库相关SQL命令

· 创建数据库信息:

语句格式: CREATE DATABASE 数据库名称;

操作命令: CREATE DATABASE PHP;

· 查看数据库信息:

语句格式: show databases;

· 选中指定数据库信息:

语句格式: use 数据库名称;

操作命令: use php;

· 查看库中具有表信息:

语句格式: show tables;

· 删除指定数据库信息:

语句格式: drop database 数据库名称;

操作命令: drop database php;

 

2) 操作数据表相关SQL命令

· 创建表信息:

语句格式: CREATE TABLE 表名(字段名1 字段类型,字段名2 ....字段名n 字段类型n);

操作命令:

create table xueyuan(

name varchar(15),

sex char(5),

age int(5),

xueli char(10),

jingyan bool,

xinzi float(10,2)

);

 

· 查看表中字段信息:

语句格式: desc 表名称

操作命令: desc xueyuan;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| name | varchar(15) | YES | | NULL | |

| sex | char(5) | YES | | NULL | |

| age | int(5) | YES | | NULL | |

| xueli | char(10) | YES | | NULL | |

| jingyan | tinyint(1) | YES | | NULL | |

| xinzi | float(10,2) | YES | | NULL | |

+---------+-------------+------+-----+---------+-------+

6 rows in set (0.00 sec)

 

· 查看表信息创建方法:

语句格式: SHOW CREATE TABLE 表名称;

操作命令: SHOW CREATE TABLE xueyuan\G;

*************************** 1. row **************************

Table: xueyuan

Create Table: CREATE TABLE `xueyuan` (

`name` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,

`sex` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,

`age` int(5) DEFAULT NULL,

`xueli` char(10) COLLATE utf8_unicode_ci DEFAULT NULL,

`jingyan` tinyint(1) DEFAULT NULL,

`xinzi` float(10,2) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

 

· 删除表信息:

语句格式: drop table 名名称;

操作命令: drop table oldboy;

 

· 创建表设置引擎信息和默认字符编码信息:

mysql> create table test(

name varchar(15),

sex char(5),

age int(5),

xueli char(10),

jingyan bool,

xinzi float(10,2)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

3) 操作数据字段相关SQL命令

· 修改字段数据类型信息

语句格式: alter table 表名 modify 字段名 修改后的数据类型;

操作命令: alter table test modify sex varchar(10);

 

· 增加表中字段信息:

语句格式: alter table 表名 add column 字段名 字段类型;

操作命令: alter table test add column oldboy date;

 

· 增加表中字段信息: 可以指定控制字段添加的位置

语句格式: alter table 表名 add 字段名 bool after 在哪个字段后添加;

操作命令: alter table test add oldgirl bool after age;

 

增加表中字段信息: 将指定字段插入到第一列

语句格式: alter table 表名 add 字段 类型 first;

操作命令: alter table test add oldbaby char first;

 

· 删除表中字段信息:

语句格式: alter table 表名 drop column 字段名称;

操作命令: alter table test drop column oldbaby;

 

· 修改字段名称信息:

语句格式: alter table 表名 change 原字段名称 修改后字段名 字段类型;

操作命令: alter table test change xueli edu varchar(15);

 

· 修改已有字段顺序:

语句格式:

alter table 表名 modify 字段名 类型 first; --- 直接将指定字段移到第一列

alter table test modify 字段名 类型 after 字段名; --- 将字段移动到指定列之后

 

· 修改数据库中表的名称:

语句格式: alter table 旧表名 rename 新的表名;

操作命令: alter table test rename new_test;

 

4) 数据库字段数据类型介绍/字符编码

参考mysql文档介绍

 

5) 数据库索引操作

索引概念介绍: 可以提升查找指定数据检索效率

索引分类介绍: 普通索引 唯一索引(不能有字段信息重复) 主键索引(字段信息不能为空)

 

索引创建方法:

普通索引创建: MUL

语法格式: alter table 表 add index(字段);

操作命令: alter table xueyuan add index(name);

 

唯一索引创建: UNI

语法格式: alter table 表 add UNIQUE(字段)

操作命令: alter table xueyuan add UNIQUE(xueli);

 

主键索引创建: PRI

语法格式: alter table 表 add PRIMARY KEY(字段)

操作命令: alter table xueyuan add primary key(jingyan);

 

如何删除索引信息???

语法格式:drop index 索引名 on 表名

语法命令:drop index jingyan ON 

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

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

相关文章

Linux —— 信号阻塞

目录 一,信号内核表示 sigset_t sigprocmask sigpending 二,捕捉信号 sigaction 三,可重入函数 四,volatile 五,SIGCHLD 信号常见概念 实际执行信号的处理动作,称为信号递达Delivery;信…

广东智科与涂鸦智能达成合作,引领热泵市场智能转型新风向

全球能源危机正推动热泵市场的增长,据国际能源署报道,2022年全球热泵的销售额增长达11%,欧洲的销售额增长更是达到了40%。中国作为热泵市场的最大出口国,全球热泵市场需求的激增对于中国企业而言无疑是一剂“振奋剂”。 广东智科电…

QT/QTCreator开发/使用技巧

调试模式完整的展示过长的字符串 如图,当字符串过长时在调试模式下,无法非常清晰的看到全部的字符串,此时可以通过 右键菜单→ change value display format→spearate Window。此时字符串将单独显示在一个独立的窗口里。如果你想回到原状勾选…

关于“找不到mfc140u.dll,无法继续执行代码”问题的分析处理方法

我想和大家分享一个在编程过程中经常会遇到的问题——找不到mfc140u.dll,无法继续执行代码。找不到 mfc140u.dll,这个问题可能会让我们感到困扰。mfc140u.dll 是 Microsoft Foundation Classes(MFC)库的一部分,它是一个 Windows 系…

MySQL——读写分离

简介 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。一般来说都是通过 主从复制&#xff…

领域驱动设计:领域事件

文章目录 领域事件识别领域事件领域事件相关案例领域事件总体架构 领域事件 领域事件是领域模型中非常重要的一部分,用来表示领域中发生的事件。一个领域事件将导致进一步的业务操作,在实现业务解耦的同时,还有助于形成完整的业务闭环。 举例…

脚本:python实现动态爱心

文章目录 效果代码Reference python实现dynamic heart 效果 代码 import turtle as tu import random as ratu.setup(0.5, 0.5) # 设置画板大小(小数表示比例,整数表示大小) tu.screensize(1.0, 1.0) # 设置屏幕大小 tu.bgcolor(black) #…

Linux安装logstash

相关链接 项⽬主⻚: https://www.elastic.co/cn/downloads/logstash 下载地址: wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz 官网下载可能比较慢,下面提供下载地址 百度云链接:https://pan.…

C# wpf 实现桌面放大镜

文章目录 前言一、如何实现?1、制作无边框窗口2、Viewbox放大3、截屏显示(1)、截屏(2)、转BitmapSource(3)、显示 4、定时截屏 二、完整代码三、效果预览总结 前言 做桌面截屏功能时需要放大镜…

【关于Java:认识异常】

文章目录 一、1. 异常概念与体系结构1.1 异常的概念1.2 常见的异常1.算数异常2.数组越界异常3.空指针异常 1.3 异常的体系结构1.4 异常的分类1. 编译时异常2. 运行时异常(RuntimeException) 二、 异常的处理方式2.1 防御式编程2.2 EAFP:(异常…

API 架构学习

MQTT架构 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在…

uni-app运行到微信开发者工具-没有打印的情况

前言 到我们进场使用微信开发者工具时,就会发现它经常会有bug,特别是在软件更新,组件库更新之后 最近在更新微信开发者工具之后发现所有打印都不显示了,虽然是小问题-但对于强迫症很烦 以为是代码配置问题-结果是更新之后打印开…

代码随想录算法训练营第五十八天 | 739. 每日温度,496.下一个更大元素 I

代码随想录算法训练营第五十八天 | 739. 每日温度,496.下一个更大元素 I 739. 每日温度496.下一个更大元素 I 739. 每日温度 题目链接 视频讲解 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answe…

MySQL基础与库的基本操作

目录 1 MySQL基础一种存储解决方案SQL分类查看MySQL存储引擎 2 MySQL 库的操作数据库基本增删认识系统编码校验规则对数据库的影响数据库的查看与删除修改数据库数据库的备份与恢复查看连接情况 1 MySQL基础 一种存储解决方案 mysql本质是一种网络服务 mysql – 数据库服务的…

华为Mate60Pro携麒麟芯片回归,下半年国内手机市场出货量有望提升

本文由群狼调研**(长沙产品价格监测)**出品,欢迎转载,请注明出处。8月29日中午,华为以“Mate 60 Pro先锋计划”方式让Mate 60 Pro悄然开卖,线上线下用户纷纷前往抢购,据购买到新机的网友网络测速…

2672. 有相同颜色的相邻元素数目;1947. 最大兼容性评分和;958. 二叉树的完全性检验

2672. 有相同颜色的相邻元素数目 核心思想:枚举。每次操作只会影响index左右两边的数,所以我们只需要判断操作前index左右是否存在相同的数,然后减少一;然后将颜色修改,然后判断修改后index左右相邻的数是否是相同的&…

极致精细的jmeter+ant+jenkins 搭建接口自动化测试

一、jmeter 相信大家对jmeter并不陌生哈,如果没有安装和配置环境的小伙伴,可以直接找到我哈,我发给你。 二、ant 安装ant 第一步:下载ant http://ant.apache.org/ 第二步:配置ant window中设置ant环境变量&…

【C语言】每日一题(杨氏矩阵查找数)

目录 杨氏矩阵介绍:方法:思路:代码实现: 杨氏矩阵介绍: 既然在杨氏矩阵中查找数,那什么是杨氏矩阵呢? 矩阵的每行从左到右是递增的,矩阵从上到下是递增的。 例如: 方法…

四)Stable Diffussion使用教程:图生图

这一篇来说说图生图。 除了文生图之外,SD常用的还有图生图模式。 图生图,顾名思义就是使用一张图去让AI生成自己喜欢的另一张图。 有时候我们有一张喜欢的图,但是希望换一种颜色方案,这时就可以通过图生图的方式去实现了&#…

Python Asyncio 调用 CPU 多核工作

前言 Python 的 Asyncio 适合异步处理 IO 密集型的事务, 比如 HTTP 请求, 磁盘读写, 数据库操作等场景. 如果使用传统的顺序执行代码, 需要等待每次 IO 事务进行完成后才可以继续后面的代码. 通过在定义函数时添加修饰词 async 可以将其设置为异步函数, 后续配合 Asyncio 可以…