数据库基础

目录

一、数据库是什么?

二、目前主流的数据库

三、数据库基本使用

1.连接服务器

2.服务器、数据库、表关系

3.使用案例

4、数据逻辑存储

四、MySQL基本知识

1、MySQL架构

2、SQL语句分类

3、存储引擎

总结


一、数据库是什么?

数据库是按照数据结构来组织,存储和管理数据的仓库,它可以让用户方便地查询、修改、更新和控制数据。

存储数据用文件就可以了,为什么还要弄个数据库 ?

存储数据用文件确实可以,但是用数据库有很多优点,比如:

  • 数据库可以实现数据的统一管理和控制,提高数据的安全性、完整性和一致性。文件系统中,数据的管理和控制依赖于应用程序,容易出现数据的冗余、不一致和丢失。
  • 数据库可以实现数据的高效存取和处理,提高数据的利用率和效率。文件系统中,数据的存取和处理需要通过操作系统的接口,效率较低,而且难以支持复杂的查询和分析。
  • 数据库可以实现数据的逻辑独立性和物理独立性,提高数据的灵活性和可维护性。文件系统中,数据的逻辑结构和物理结构是紧密联系的,当要修改数据的结构或存储方式时,必须修改应用程序,增加了开发和维护的成本。
  • 数据库可以实现数据的多级共享和并发访问,提高数据的可用性和并行性。文件系统中,数据的共享和并发访问受到操作系统的限制,难以满足多用户和分布式环境的需求。

二、目前主流的数据库

(1)SQL Sever : 微软的产品, .Net 程序员的最爱,中大型项目。
(2)Oracle 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如 MySQL
(3)MySQL :世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS ,论坛。对简单的 SQL 处理效果好。
(4)PostgreSQL : 加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
(5)SQLite : 是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的 C 库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K 的内存就够了。
(6)H2 : 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

三、数据库基本使用

我们这里使用的是MySQL数据库,在使用前需要安装好,这里跳过

1.连接服务器

mysql -h 127.0.0.1 -P 3306 -u root -p
//[-h要连接的主机名或mysql服务器的IP地址 -P端口号] -u用户名 -p密码

注意:
(1)如果是本机,则可以直接这样写:mysql -u用户名 -p密码
(2)大写P后面跟端口号,小写p后面跟密码
(3)-p后面不输入密码,直接回车再输入密码,可以起到隐藏密码的效果
(4)如果没有写 -h 127.0.0.1 默认是连接本地 ,如果没有写 -P 3306 默认是连接3306端口号

2.服务器、数据库、表关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多
个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

3.使用案例

(1)

show databases;  //查看数据库
create database list;  //创建数据库

(2)

use list;  //使用数据库//创建表
create table female(-> name varchar(32),-> age int,-> home varchar(32)-> );

(3)

insert into female(name,age,home) values('kiana',19,'逆熵');insert into female(name,age,home) values('mei',20,'逆熵'),('板鸭',199'天命');select * from female;

4、数据逻辑存储

MySQL 数据逻辑存储是指 MySQL 如何在物理层面上组织和存储数据的方式。MySQL 数据逻辑存储的基本单位是表,每个表由行和列组成,行表示记录,列表示字段。MySQL 支持多种数据类型,如整数、浮点数、字符串、日期、二进制等。MySQL 还支持索引、主键、外键、约束等特性,以提高数据的查询效率和完整性。

四、MySQL基本知识

1、MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、 Windows 、 Mac 和 Solaris 。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

2、SQL语句分类

SQL是数据库的核心语言,它可以用来定义、操作、查询和控制数据。SQL语言共分为四大类:

  • 数据定义语言(DDL):用于创建、修改或删除数据库中的对象,如表、索引、视图等。常用的DDL语句有create、alter、drop等。
  • 数据操纵语言(DML):用于对数据库中的数据进行增加、删除、修改或合并等操作。常用的DML语句有insert、delete、update、merge等。
  • 数据查询语言(DQL):用于从数据库中查询数据,返回满足条件的结果集。常用的DQL语句有select、where、group by、order by等。
  • 数据控制语言(DCL):用于控制数据库中的用户权限和事务处理,保证数据的安全性和完整性。常用的DCL语句有grant、revoke、commit、rollback。

3、存储引擎

数据库存储引擎是指数据库如何在物理层面上组织和存储数据的方式。不同的存储引擎有不同的特点和适用场景,例如支持事务、外键、全文索引、数据压缩等。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

show engines;

其中InnoDB 是MySQL的默认存储引擎,它支持事备务、外键、行级锁定和崩溃恢复。InnoDB适给于事务处理应用程序,对事务完整性和并发性有较高要求,数据操作包括大量的更新删除操作的应用。

总结

初步认识数据库,以及一些基本操作。

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

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

相关文章

golang读取键盘功能按键输入

golang读取键盘功能按键输入 需求 最近业务上需要做一个终端工具,能够直接连到docker容器中进行交互。 技术选型 docker官方提供了python sdk、go sdk和remote api。 https://docs.docker.com/engine/api/sdk/ 因为我们需要提供命令行工具,因此采用g…

6、NoSQL的四大分类

6、NoSQL的四大分类 kv键值对 不同公司不同的实现 新浪:Redis美团:RedisTair阿里、百度:Redismemcache 文档型数据库(bson格式和json一样) MongoDB MongoDB是一个基于分布式文件存储的数据库,一般用于存储…

PAT 1171 Replacement Selection

个人学习记录,代码难免不尽人意。 When the input is much too large to fit into memory, we have to do external sorting instead of internal sorting. One of the key steps in external sorting is to generate sets of sorted records (also called runs) wi…

Spring源码解析-构造函数

1、构造函数概述 构造函数中,主要创建两个对象分别用来读取注解参数和classpath下的文件 AnnotatedBeanDefinitionReader 专门读取注解参数的Reader ClassPathBeanDefinitionScanner 专门读取classpath下的文件,例如yml、properties等。 AnnotationC…

Unity 切换场景后场景变暗

问题 Unity版本:2019.4.34f1c1 主场景只有UI,没有灯光,天空盒;其他场景有灯光和天空盒所有场景不烘焙主场景作为启动场景运行,切换到其他场景,场景变暗某一个场景作为启动场景运行,光影效果正…

第P3周:天气识别

一、前期准备 1、设置GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasetsimport os,PIL,pathlibdevice torch.device("cuda" if torch.cuda.is_available() …

【探索Linux】—— 强大的命令行工具 P.7(进程 · 进程的概念)

阅读导航 前言一、冯诺依曼体系结构二、操作系统(OS)1. 概念 三、进程1. 进程的概念2. PCB(Process Control Block)3. 查看进程 四、fork函数1. 函数简介2. 调用方式3. 返回值4. 使用示例 五、进程的几种状态1. 状态简介2. 进程状…

SQLServer如何获取客户端IP

SQLServer如何获取客户端IP 很多用户询问如何通过SQLServer获取客户端IP从而定位一些问题,比如链接泄露,其实主要是利用几个相关视图,如下给出一些SQL方便用户排查 当前链接 SELECT CONNECTIONPROPERTY(PROTOCOL_TYPE) AS PROTOCOL_TYPE,CO…

Redis 数据类型详细解析

Redis是一个开源的、内存中的数据结构存储系统,可用作数据库、缓存和消息代理。Redis支持多种类型的数据结构,包括字符串(String)、哈希(Hashes)、列表(Lists)、集合(Set…

sql中的排序函数dense_rank(),RANK()和row_number()

dense_rank(),RANK()和row_number()是SQL中的排序函数。 为方便后面的函数差异比对清晰直观,准备数据表如下: 1.dense_rank() 函数语法:dense_rank() over( order by 列名 【desc/asc】) DENSE_RANK()是连续排序,比如…

《Linux 系统命令及Shell脚本实践指南》

Linux 系统命令及Shell脚本实践指南 《Linux 系统命令及Shell脚本实践指南》该书从结构上分为三部分:第一部分1.1Linux的历史发展1.2用户管理1.3任务管理单一时刻执行一次任务使用at周期性任务使用:cron表达式,命令crontab 1.4文件管理1.4.1 Linux shell…

Java8实战-总结18

Java8实战-总结18 使用流筛选和切片用谓词筛选筛选各异的元素截短流跳过元素 使用流 流让你从外部迭代转向内部迭代。这样&#xff0c;就用不着写下面这样的代码来显式地管理数据集合的迭代(外部迭代)了&#xff1a; List<Dish> vegetarianDishes new ArrayList<>…

Docker介绍

Dockerfile 是一个用来构建镜像的文本文件&#xff0c;文本内容包含了一条条构建镜像所需的指令和说明。注意&#xff1a;Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层&#xff0c;会造成镜像膨胀过大。上下文路径下不要放无用的文件&#xff0c;…

Mybatis批量更新数据及其优化

需求场景&#xff1a;定时任务中&#xff0c;从其他平台同步数据&#xff0c;并更新当前平台数据库&#xff0c;表数据3W&#xff0c;分批更新某个字段&#xff0c;耗时巨大&#xff0c;约30min&#xff0c;尝试性能优化。 批量更新的几种常见方式&#xff1a; 1.foreach 循环…

数据库的三个范式

数据库的三个范式是关系数据库设计中的一组规范&#xff0c;用于确保数据的有效性和一致性。这三个范式分别是&#xff1a; 第一范式&#xff08;1NF&#xff09;&#xff1a;要求数据库表中的每一列都是不可分割的原子值。换句话说&#xff0c;每个表中的每个字段不能包含多个…

Django实现音乐网站 ⒃

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是歌手详情页-专辑列表、专辑详情-单曲列表开发实现内容。 目录 歌手详情-专辑列表 路由设置 跳转设置 视图方法 模板内容 专辑详情-单曲列表 设置路由 视图处理并返回 模板渲染 分页优化 引入错误类型库…

v-model和v-bind

v-model&#xff0c;它其实就是一个语法糖&#xff0c;作用就是双向绑定表单控件&#xff08;radio, text,address,email,select,checkbox,textarea&#xff09; v-bind(简写形式:value值),用于绑定属性值&#xff0c;只能实现数据的单项绑定。 <template> <div>…

9.2 消息对话框 画板 定时器

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//设置定时器timernew QTimer(this);timeidthis->startTimer(1000);connect(timer,&QTimer::timeout,this,&Widget::timeout_slot);speechernew QTextToSpeech(this);//边框this-&…

字节码和机器码的区别

字节码和机器码是计算机程序在不同阶段的表示形式&#xff0c;它们的主要区别如下&#xff1a; 抽象级别不同&#xff1a;字节码是一种中间表示形式&#xff0c;位于源代码和机器码之间。它是一种与特定平台无关的低级表示形式&#xff0c;通常由编译器将源代码转换而来。而机器…

AP51656 LED车灯电源驱动IC 兼容替代PT4115 PT4205 PWM和线性调光

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源 用于驱动一颗或多颗串联LED 输入电压范围从 5V 到 60V&#xff0c;输出电流 可达 1.5A 。根据不同的输入电压和 外部器件&#xff0c; 可以驱动高达数十瓦的 LED。 内置功率开关&#xff0c;采用高端电流采样设置 …