草庐IT

OldWang带你了解MySQL(一)

造次阿 2023-05-03 原文

文章目录

🔥数据库基础知识

先谈发音
MySQL如何发音?在国内MySQL发音有很多种,Oracle官方文档说他们念作
My sequal['si:kwəl]。

数据库基本概念
1.数据
数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。

2. 数据库
数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。

3. 数据库管理系统
数据库管理系统(Database Management System,DBMS)是用来定义和管理数据的软件。

4. 数据库应用程序
数据库应用程序(Database Application System,DBAS)是在数据库管理系统基础上,使用数据库管理系统的语法,开发的直接面对最终用户的应用程序。

5. 数据库管理员
数据库管理员(Database Administrator,DBA)是指对数据库管理系统进行操作的人员,其主要负责数据库的运营和维护。

数据库分类
关系型数据库
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。可以采用结构化查询语言(SQL)对数据库进行操作。

优点:
1.易于维护:都是使用表结构,格式一致;
2. 使用方便:SQL语言通用,可用于复杂查询;
3. 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:
1.读写性能比较差,尤其是海量数据的高效率读写;
2. 固定的表结构,灵活度稍欠;
3. 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库
非关系型数据库也称之为NoSQL数据库,是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:
1.格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2. 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3. 高扩展性;
4. 成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
1.不提供sql支持,学习和使用成本较高;
2. 无事务处理;
3. 数据结构相对复杂,复杂查询方面稍欠。

🔥MySQL基础知识

MySQL简介
MySQL 是一个关系型数据库管理系统, 由瑞典 MySQL AB 公司开发, 目前属于 Oracle 公司。MySQL是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL特点
MySQL 是开源的。
MySQL 支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库。 MySQL 使用标准的 SQL数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C 、C++、 Python 、Java 、Perl 、PHP 等。
MySQL 存储数据量较大,32 位系统表文件最大可支持 4GB ,64 位系统支持最大的 表文件为 8TB。
MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

MySQL分类
1.MySQL分为社区版
社区版是完全开源免费的,社区版也支持多种数据类型和标准的SQL查询语言,能够对数据进行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满足开发需求了。

2.企业版
企业版是收费的。即使在开发中需要用到一些付费的附加功能,价格相对于昂贵的 Oracle、DB2等也是有很大优势的。对数据库可靠性要求比较高的企业可以选择企业版。

🔥下载MySQL

MySQL官网地址:https://www.mysql.com/



🔥MySQL的安装与卸载

MySQL安装











MySQL卸载





🔥连接MySQL

通过MySQL自带客户端工具

可通过MySQL自带的客户端工具链接MySQL。

通过客户端工具可对MySQL进行操作。

通过MySQL客户端工具的快捷方式连接MySQL

🔥Navicat工具的使用



🔥SQL语言

SQL语言简介
结构化查询语言(Structured Query Language)简称 SQL(发音:sequal['si:kwəl]),是一种数据库查询和
程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL 能做什么?
⭐SQL 面向数据库执行查询
⭐SQL 可在数据库中插入新的记录
⭐SQL 可更新数据库中的数据
⭐SQL 可从数据库删除记录
⭐SQL 可创建新数据库
⭐SQL 可在数据库中创建新表
⭐SQL 可在数据库中创建存储过程
⭐SQL 可在数据库中创建视图
⭐SQL 可以设置表、存储过程和视图的权限

SQL 标准
SQL 是 1986 年 10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了 SQL 正式国际标准。1989 年 4 月,ISO 提出了具有完整性特征的 SQL89 标准,1992 年11 月又公布了 SQL92 标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。在1999年推出 99 版标准。最新版本为 SQL2016 版。比较有代表性的几个版本:SQL86、SQL92、SQL99。

SQL语言分类
1.数据查询语言(DQL:Data Query Language)其语句,也称为“数据检索语句”,用于从表中获得数据,确定数据怎样在应用程序给出。关键字 SELECT 是 DQL(也是所有 SQL)用得最多的动词。
⭐SELECT:选取数据
⭐FROM:后面可跟表名或者查询语句
⭐WHERE:查询条件的意思,后面跟上你的查询条件,如果没有查询条件,则不需要where部分。
⭐ORDER BY:用于对结果集进行排序
⭐HAVING:分组后过滤的条件
2. 数据操作语言(DML:Data Manipulation Language)其语句包括动词 INSERT,UPDATE 和DELETE。它们分别用于添加,修改和删除表中的行。
⭐INSERT:添加数据
⭐UPDATE:更新数据
⭐DELETE:删除数据
3. 数据定义语言(DDL:Data Definition Language)定义数据库对象语言,其语句包括动词CREATE 和 DROP 等。
⭐CREATE:创建数据库对象
⭐ALTER:修改数据库对象
⭐DROP:删除数据库对象
4. 数据控制语言(DCL:Data Control Language)它的语句通过 GRANT 或 REVOKE 获得许可,确定用户对数据库对象的访问。
⭐GRANT:授予用户某种权限
⭐REVOKE:回收授予的某种权限
5. 事务控制语言(TCL :Transaction Control Language)它的语句能确保被 DML 语句影响的表的所有行及时得以更新。
⭐COMMIT:提交事务
⭐ROLLBACK:回滚事务
⭐SAVEPOINT:设置回滚点

注意:
	数据操纵语言DML(insert、update、delete)针对表中的数据 ;
	而数据定义语言DDL(create、alter、drop)针对数据库对象,
	比如数据库database、表table、索引index、视图view、存储过程procedure、触发器trigger;

SQL语言语法
⭐ SQL语句不区分大小写,关键字建议大写。
⭐SQL语句可以单行或多行书写,以分号结尾。

有关OldWang带你了解MySQL(一)的更多相关文章

  1. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  2. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  3. ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为 - 2

    我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject

  4. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

  5. ruby - 如何使用 ruby​​ mysql2 执行事务 - 2

    我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi

  6. ruby-on-rails - 了解 "attribute_will_change!"方法 - 2

    我想覆盖store_accessor的getter。可以查到here.代码在这里:#Fileactiverecord/lib/active_record/store.rb,line74defstore_accessor(store_attribute,*keys)keys=keys.flatten_store_accessors_module.module_evaldokeys.eachdo|key|define_method("#{key}=")do|value|write_store_attribute(store_attribute,key,value)enddefine_met

  7. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  8. ruby-on-rails - 正确了解 Rails 框架的最佳方式是什么? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我一直在Rails上做两个项目,它们运行良好,但在这个过程中重新发明了轮子,自来水(和热水)和止痛药,正如我随后了解到的那样,这些已经存在于框架中。那么基本上,正确了解框架中所有智能部分的最佳方法是什么,这将节省时间而不是自己构建已经实现的功能?从第1页开始阅读文档?是否有公开所有内容的特定示例应用程序?一个特定的开源项目?所有的rails交通?还是完全

  9. ruby - 了解 Ruby Enumerable#map(具有更复杂的 block ) - 2

    假设我有一个函数defodd_or_evennifn%2==0return:evenelsereturn:oddendend我有一个简单的可枚举数组simple=[1,2,3,4,5]然后我用我的函数在map中运行它,使用一个do-endblock:simple.mapdo|n|odd_or_even(n)end#=>[:odd,:even,:odd,:even,:odd]如果不首先定义函数,我怎么能做到这一点?例如,#doesnotworksimple.mapdo|n|ifn%2==0return:evenelsereturn:oddendend#Desiredresult:#=>[

  10. ruby-on-rails - 当我通过 rvm 使用 rails3 时,如何在 ubuntu 上安装 mysql2 gem? - 2

    我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。

随机推荐