周所周知MySQL已成为全世界最受欢迎的数据库之一。无论你用的何种编程语言在开发系统,数据库基本上都是必不可少的。
无论是小型项目开发如我们开发一个个人博客系统,还是构建那些声名显赫的网站如某宝、某讯等,MySQL都有着稳定、可靠、快速等优点。可以胜任数据存储的业务需求。
我们今天就来一探MySQL,走入MySQL。
数据库是以某种有组织的方式保存数据的容器,我们可以将其理解为一个文件柜。我们常见的容器有 Oracle、DB2、SQLServer、Postgresql、mongodb等,而MySQL就是这众多容器中的一种。
迄今为止,MySQL最新版本是8.0 (8.0.30版本)。8.0版本也被寄予厚望。
自从被Oracle收购后,不少功能借鉴了Oracle优秀之处。
MySQL 8.0无论在功能还是性能(整体上),都是目前最好的MySQL版本。
我们将资料放入文件柜中时,并不是将它随便扔进某个抽屉就完事了,而是在文件柜中放入不同的盒子,然后将相关资料放入特定盒子中。这样需要的时候就可以快速而精准的找到我们需要的数据资料。
在数据库中,这个盒子就称为表。表 是一种结构化文件,用来存储某种特定的数据,我们可以把用户信息、顾客信息、购物清单、商品信息等放入表中。
数据库中每个表都有一个名字,用来唯一标识自己。既然是唯一标识,那么这个名字就不能重复。
表是由列 组成,一个表是由一个或多个列组成的。表中每一列都有对应的数据类型,而且这一列数据类型是一致的。
我们可以这样理解,一个表就是我们日常中用的excel表格。某一列存着特定的信息。
例如,一个表格中,一列存着用户名,一列存着密码,一列存着年龄。
下面总结一下常用的数据类型
| 数据类型大类 | 数据类型 | 类型说明 |
|---|---|---|
| 串数据类型 | CHAR | 1-255个字符定长串。长度必须在创建的时候指定,否则为CHAR(1) |
| 串数据类型 | ENUM | 接受最多由64K个串组成的一个集合的某个串 |
| 串数据类型 | TEXT | 最大长度为64K的变长文本 |
| 串数据类型 | LONGTEXT | 与TEXT形同,最大长度为4GB |
| 串数据类型 | MEDIUMTEXT | 与TEXT形同,最大长度为16K |
| 串数据类型 | TINYTEXT | 与TEXT形同,最大长度为255字节 |
| 串数据类型 | SET | 接受最多64个串组成的一个集合的零个或多个串 |
| 串数据类型 | VARCHAR | 长度可变,最多不超过255字节 |
| 数值数据类型 | BIT | 位字段,1-64位 |
| 数值数据类型 | BIGINT | 数值型,支持-9223372036854775808至9223372036854775807 (如果是UNSIGNED,为0至18446744073709551615) |
| 数值数据类型 | BOOLEAN(或BOOL) | 布尔类型,或者为0或者为1 |
| 数值数据类型 | DECIMAL(或DEC) | 精度可变的浮点值 |
| 数值数据类型 | DOUBLE | 双精度浮点值 |
| 数值数据类型 | FLOAT | 单精度浮点值 |
| 数值数据类型 | INT(或INTEGER) | 数值型,支持-2147483648至2147483647 (如果是UNSIGNED,为0至4294967295) |
| 数值数据类型 | MEDIUMINT | 数值型,支持-6388608至8388607 (如果是UNSIGNED,为0至16777215) |
| 数值数据类型 | REAL | 4字节浮点值 |
| 数值数据类型 | SMALLINT | 整数值,支持-32768至32767 (如果是UNSIGNED,为0至65536) |
| 数值数据类型 | TINYINT | 整数值,支持-128至127 (如果是UNSIGNED,为0至255) |
| 日期和时间数据类型 | DATE | 表示1000-01-01 至 9999-12-31的日期,格式为YYYY-MM-DD |
| 日期和时间数据类型 | TIME | 表示00:00:00至23:59:59 格式为HH:MM:SS |
| 日期和时间数据类型 | DATETIME | 表示DATE与TIME组合 |
| 日期和时间数据类型 | TIMESTAMP | 功能和DATETIME相同(但范围较小) |
| 日期和时间数据类型 | YEAR | 用2位数字表示,范围是70(1970年)至 69(2069年);用4位数表示,范围是1901年至2155年 |
| 二进制数据类型 | BLOB | 最大长度位64KB |
| 二进制数据类型 | MEDIUMBLOB | 最大长度为16MB |
| 二进制数据类型 | LONGBLOB | 最大长度为4GB |
| 二进制数据类型 | TINYBLOB | 最大长度为255字节 |
表中的数据是按行存储的,所保存的每个记录存储在自己的行内。
有时候你可能会听到记录,记录跟行基本上是一个意思
唯一标识表中每行的这个列(或这组列)称为主键,其值能够唯一区分表中每各行。
表中任何列都可以作为主键,但需要满足以下条件
主键通常定义在表的一列上,但不是必须的,可以一起使用多个列作为主键。在使用多个列作为主键时,所有列的组合必须时唯一的。
? 注意:
SQL(发音为字母S-Q-L或sequel)是一种结构化查询语言。SQL是一种专门用来与数据库通信的语言。
SQL是由很少的词构成,是设计者有意而为。语言的主要目的是从数据库中读写数据
每个数据库会有不同的语法,但是90%的部分都是相通的。我们学好一个便可以举一反三了。
以上是MySQL的一些基本介绍,要学习MySQL,首先当然是要在自己电脑上安装MySQL了。
安装MySQL可以参照以下文章
mysql5.7安装教程
这一篇文章主要是对MySQL做了一个简单介绍,对MySQL是什么?为什么MySQL很有用以及数据库MySQL一些专有名词的介绍。
参照上面文章,相信你已成功安装上MySQL了。后续文章中,我们会在自己本机安装的MySQL数据库上实际操作或者通过刷题网站进行实战操作。
文章目录一、概述简介原理模块二、配置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
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。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
我已经开始使用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
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?
我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。
目录1、yum安装mysql修改密码(1)在mysql里面修改(2)第二种方式,利用mysqladmin修改密码2、没有密码,登录mysql修改密码3、mysql的安全设置1、yum安装mysql在CentOS中默认安装有MariaDB(MySQL的一个分支),安装完成之后可以直接覆盖MariaDB。rpm-qa|grepmariadb查询是否安装了mariadbrpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64卸载mariadwgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.
我是Ruby的新手。我安装了DataMapper并且正在尝试安装dm-mysql-adapter-1.0.2gem。但是当我尝试安装时,出现以下错误。我正在使用ubuntu操作系统。vinoth@vinoth-laptop:~/Downloads$geminstalldm-mysql-adapter-1.0.2----with-mysql-lib=/usr/lib/mysql----with-mysql-conf=/usr/bin/mysqlWARNING:Installingto~/.gemsince/home/vinoth/gemsand/home/vinoth/gems/bina
我目前正在构建一个需要mysql2gem的RoR项目。我成功安装了gem。因为它出现在我的gem列表中。[root@vc2cmmka035538nsimple_cms]#gemlist***LOCALGEMS***actionmailer(3.2.3)actionpack(3.2.3)activemodel(3.2.3)activerecord(3.2.3)activeresource(3.2.3)activesupport(3.2.14,3.2.3)arel(3.0.2)bigdecimal(1.1.0)builder(3.2.2,3.0.0)bundler(1.1.5)c2c_li
我想使用托管在我自己服务器上的mysql数据库。我已经更改了DATABASE_URL和SHARED_DATABASE_URL配置变量以指向我的服务器,但它仍在尝试连接到heroku的amazonaws服务器。我该如何解决? 最佳答案 根据Herokudocumentation,更改DATABASE_URL是正确的方法。Ifyouwouldliketohaveyourrailsapplicationconnecttoanon-Herokuprovideddatabase,youcantakeadvantageofthissamemec
使用mysql2做查询总是得到警告/usr/local/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:463:warning::database_timezoneoptionmustbe:utcor:local-defaultingto:local我确实看到了时区选项Mysql2现在支持两个时区选项::database_timezone-thisisthetimezoneMysql2willassumefieldsarealreadystored