MySQL之初识数据库
linux安装 | 更新YUM源:sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 安装MySQL:sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck |
---|---|
启动数据库 | net start mysql或者sudo systemctl start mysqld |
停止MySQL服务 | net stop mysql或者sudo service mysql stop |
启动MySQL服务 | net start mysql 或者sudo service mysql start |
重启MySQL服务 | sudo service mysql restart |
开机自动启动MySQL | sudo systemctl enable mysqld |
连接数据库 | mysql -uroot -p |
显示数据库 | show databases |
创建数据库 | create database 数据库名 |
删除数据库 | drop database 数据库名 |
切换数据库 | use 数据库名 |
显示表格 | show tables |
查看表格结构 | desc 表格名 |
删除表格 | drop table 表格名 |
引言
数据(Data)
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
xiao,male,18,2000,安徽,计算机系,2023,hefeiuniversity
单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题
name,sex,age,birth,born_addr,major,Time of Graduation,school #字段 xiao,male,18,2000,安徽,计算机系,2023,hefeiuniversity #记录
这样我们就可以了解xiao,性别为男,年龄18岁,出生于2000年,出生地为安徽,2023年毕业于合肥大学计算机系
数据库(DataBase,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。
过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用。
数据库是长期存放在计算机内、有组织、可共享的数据即可。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库管理系统(DataBase Management System 简称DBMS)
在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
这就用到了一个系统软件---数据库管理系统
如 MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。 oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)
记录:1 刘海龙 324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:student,scholl,class_list(即文件)
数据库:oldboy_stu(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
数据库
数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加修改、删除、查询等操作。数据库的分为关系型数据库和非关系型数据库。
数据库的本质
- 数据库其实就是一块基于网络通信的应用程序
- 每个人都有开发一块数据库的能力
数据库介绍
关系型数据库
关系型数据库是指采用了关系模型来组织数据的数据库,简单来说就是二维表格模型,好比Excel文件中的表格,强调使用表格的方式存储数据。关系型数据库核心元素:数据行、数据列、数据表、数据库(数据表的集合)。
- 常用关系数据库:MySQL、SQLite、Oracle等。
关系型数据库特点:关系紧密,由表组成;
优点:
易于维护,都是使用表结构,格式一致; sql语法通用,可用于复杂查询;
缺点:
读写性能差,尤其是海量数据的高效率读写; 有固定的表结构,字段不可随意更改,灵活性稍欠; 高并发读写需求,对传统关系型数据库来说,硬件I/O读写是一个很大的瓶颈;
非关系型数据库
非关系型数据库(NoSQL)强调以key/value形式来存储数据。
- 常见数据库:MongoDB、Redis、Memcached等
非关系型数据库特点:关系不紧密,有文档,有键值对;
优点:
格式灵活,存储数据的格式可以是key/value形式; 速度快,nosql可以内存作为载体,而关系型数据库只能使用硬盘; 易用,nosql数据库部署简单;
缺点:
不支持sql语法,学习和使用成本较高; 不支持事物; 复杂查询时语句过于繁琐;
数据库特点
持久化存储、读写速度极高、保证数据的有效性
关系型数据库应用场景
关系型数据库管理系统是为管理关系型数据库而设计的软件系统,如果要使用关系型数据库就需要安装数据库管理系统,其实就是一个应用软件。关系型数据库管理系统分为关系型数据库服务端软件和关系型数据库客户端软件。
关系型数据库服务端软件主要负责管理不同的数据库,而每个数据库里面会有一系列数据文件,数据文件是用来存储数据的,其实数据库就是一系列数据文件的集合。
关系型数据库客户端软件主要负责和关系型数据库服务端软件进行通信,向服务端传输数据或者从服务端获取数据.
初识SQL语句
有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写。
mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Language 即结构化查询语言)
SQL是结构化查询语言,是一种用来操作RDBMS的数据库的语言,也就是说通过 SQL可以操作 oracle,sgl server,mysql,sglite 等关系型的数据库。SQL语言不区分大小写。SQL的作用是实现数据库客户端和数据库服务端之间的通信,SQL就是通信的桥梁。
SQL语言主要分为:
DQL:数据查询语言,用于对数据进行查询,如select DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete。 TPL: 事务处理语言,对事务进行处理,包括begin transaction、commit、rollback。 DCL:数据控制语言,进行授权与权限回收,如grant、revoke DDL:数据定义语言,进行数据库、表的管理等,如create、drop
库/表/记录/表头/表单
【1】库(Database)
- 库是指在数据库管理系统中用于存储和组织数据的容器。
- 它可以视为一个文件夹,用于存放相关的数据表。 数据库中可以包含多个库,每个库可以包含多个表。
【2】 表(Table)
- 表是数据库中的一个基本组成单位,用于存储和展示数据。
- 表由行(记录)和列(字段)组成,每一行表示一个记录,每一列表示一个字段。
- 表可以看作是一个二维数据结构,类似于电子表格。
【3】记录(Record)
- 记录也称作行,是表中的一个数据项或实体。
- 每一行都代表了一个完整的数据记录,其中包含了各个字段的具体数值或信息。
- 例如,在一个学生信息表中,每一行代表一个学生的具体信息。
【4】表头(Header)
- 表头是表中的第一行,用于描述每个列字段的含义或名称。
- 表头通常包含了列的标签或标题,通过表头可以了解每个列字段所代表的意义,方便数据的理解和查询。
【5】表单(Form)
- 表单是一种用来收集和展示数据的界面形式,常见于数据输入和显示的场景中。
- 表单通常包含了各种输入字段(例如文本框、下拉列表等)和相关的操作按钮,用户可以通过表单进行数据的录入、编辑和提交等操作。
- 表单的数据可以被存储到相应的表中,用于后续的数据处理和分析。
【6】小结
- 库:
- 相当于我们的文件夹
- 表:
- 相当于我们的文件
- 记录:
- 相当于我们一行行的数据
- 表头:
- 表格的第一行字段
- 表单:
- 表头对应的每一条数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理