这是一篇 MySQL 通关 硬核经验学习路线,包括数据库相关知识,SQL语句的使用,数据库约束,设计等。专为小白整理,针对数据库零基础的朋友们,手把手带你学习MySQL,让你轻松学会!
文末包邮送《WPS Office高效办公:数据处理与分析 》1本(点击下方目录直达),本文每+1000浏览额外加抽一人

文章目录
数据是指数据库中存储的基本对象,是描述事物的符号记录。
数据库是指存放数据的仓库,长期存放在计算机内的有组织可共享的数据集合。

数据库技术解决了数据的持久化存储问题,同时利用数据库管理系统解决了对大量数据操作繁琐的问题。
数据库管理系统是指位于用户和操作系统之间的一层数据管理软件,科学的组织和存储,高效的获取和维护。

我们所说的 MySQL 数据库就是指 MySQL 数据库管理系统,在大家日常的使用习惯中把他叫做 MySQL 数据库。在我们的电脑安装好数据库管理系统软件以后就可以创建数据库来管理数据,同时也可以对数据库中的数据进行增删改查的操作。
数据库,数据库管理系统,应用程序和数据库管理员共同组成了数据库系统。
SQL的英文是 Structured Query Language,简称 SQL,是一种操作关系型数据库的结构化查询语言,我们在操作数据库时经常用到的操作就是查询操作。
SQL定义了操作所有关系型数据库的统一标准,可以使用 SQL 操作所有的关系型数据库管理系统,在使用其他的数据库管理系统时,也同样可以使用 SQL 来操作。
MySQL有很多的安装方式,这里可以使用绿色版,避免了安装版的一些繁琐的操作,直接在官网下载与自己电脑相对应的版本的压缩文件,然后将压缩文件解压到一个非中文的目录中。

这里选择下载的产品版本是 5.7.24 ,原因是各个库支持的最完善且相对于最新版本更加的稳定。

右键此电脑 / 属性 / 高级系统设置 / 环境变量 ,在系统变量中新建变量,命名为 MYSQL_HOME,变量值为刚才 MySQL 的存放路径。
双击系统变量中的 Path,值为 %MySQL_HOME%\bin 。添加环境变量的方式与前面学习配置 Java 环境变量大致相同。
那么,我们为什么要先配置环境变量呢?
平时,我们在命令行窗口中输入一个可执行程序的命令时,Windows 会先在环境变量中的Path所指的路径中寻找,如果找到就直接执行,没找到就在当前工作目录中寻找,如果还没找到,就会报错。
我们添加环境变量的目的就是能够在任意路径下运行配置了环境变量的程序,而不用总是修改工作目录,大大简化了操作。
我们如何验证添加环境变量成功呢?
此时,我们只需要以管理员身份运行命令提示符工具,执行 mysql,如果提示 Can't connect to MySQL server on 'localhost',则环境变量添加成功。
注:此时必须以管理员身份运行命令提示符工具,否则会报错。
在MySQl的根目录中创建一个配置文件 my.ini ,其内容为:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
主要目的是配置数据库的默认编码集为utf-8和默认存储引擎为INNODB。
在命令提示符窗口中运行mysqld --initialize-insecure,如果没有出现报错,则证明data目录初始化成功。
mysqld --initialize-insecure
此时当我们再打开查看MySQL目录,已经有data目录生成。
在命令提示符窗口中运行 mysqld -install,此时你的电脑就成功注册了MySQL服务,此时你的电脑就可以称为MySQL服务器。
mysqld -install
在命令提示符窗口中运行net start mysql,此时,我们已经成功启动MySQL服务。
net start mysql
运行net stop mysql即可停止MySQL服务。
net stop mysql
可以通过运行mysqladmin -u root password 1234修改默认账户密码,这里的1234指默认管理员(即root账户)的密码。
mysqladmin -u root password 1234
在命令行中运行mysql -uroot -p,按照提示输入密码 ,即登录成功。
mysql -uroot -p密码
登录命令中的参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
退出MySQL时:
exit
quit
我们只需要简单的三步就可以完成MySQL的卸载:
第一步:运行net stop mysql
net stop mysql
第二步:运行mysqld -remove mysql
mysqld -remove mysql
第三步:删除MySQL目录及相关的环境变量。
MySQl 是一个关系型数据库。关系型数据库是建立在关系模型基础上的数据库,简单来说,关系型数据库是由多张能互相连接的二维表组成的数据库。
与关系型数据库对应的是非关系型数据库,关系型数据库有很多的优点,例如,都是使用表结构,格式一致,易于维护。使用通用的 SQL 语言操作,方便快捷,可用于复杂查询等。

我们通过客户端可以用数据库管理系统创建数据库,在数据库中创建表,在表中添加数据。创建的每一个数据库对应到磁盘上都是一个文件夹,而一个数据库下可以创建多张表,文件夹中的 .frm 就是表文件,.MYD是数据文件,通过这两个文件就可以查询到数据展示成二维表的效果。
SQL被称为结构化查询语言,可以用于对所有的关系型数据库进行操作,即我们可以通过SQL语句对数据库、表、数据进行增删改查操作。
SQL定义了操作关系型数据库的统一标准,但是,对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方。

MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
SQL 语句可以单行或多行书写,以分号结尾。
注释:
单行注释: – 注释内容 或 #注释内容(MySQL 特有)
多行注释: /* 注释 */

DDL: 数据定义语言,用来定义数据库对象:数据库,表,列等
DML: 数据操作语言,用来对数据库中表的数据进行增删改
DQL:数据查询语言,用来查询数据库中表的记录(数据)
DCL:数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
数据是数据库中非常重要的部分,所以在日后的操作中我们最常进行的是对数据的一些操作,即对数据进行怎删改查,所以最常用操作的是 DML 和 DQL 。
总的来说DML用于对数据增删改,DQL用于对数据查询操作,DDL用于操作数据库,而DCL是用来控制权限。 SQL 的基本操作一般是指对数据库,数据表,数据的增删改查。
首先要学习的是使用DDL来对数据库进行操作,主要是对数据库的增删改查操作。
查询所有的数据库:
show databases;
例如:

创建新的数据库:
create database 数据库名称;
使用上面的方式创建新的数据库时,如果该数据库已经存在,则会出现错误,所以我们在创建新的数据库时一般会判断该数据库是否存在,如果已存在,则不会创建。
创建新的数据库(判断数据库是否已经存在):
create database if not exists 数据库名称;
例如:

删除数据库:
drop database 数据库名称;
和前面创建新的数据库相同,为了避免出现错误,我们一般会先判断该数据库是否存在,如果不存在,则不会删除。
删除数据库(判断数据库是否已经存在):
drop database if exists 数据库名称;
例如:

现在我们已经成功创建了新的数据库,接下来,我们要在数据库中创建数据表,首先我们要明白是对哪一个数据库进行操作,此时我们要先学会使用数据库,才能对数据库中的表进行操作。
使用数据库:
use 数据库名称;
查询当前正在使用的数据库:
select database();
例如:

同样,对数据表的操作无非就是增删改查,在学习相关操作之前,我们先要熟悉一下MySQL的数据类型。
MySQL支持多种数据类型,但是大致可以分为3中,分别是数值型,日期型和字符串型。下面是比较常用的几种数据类型:
数值:
| 数据类型 | 解释 |
|---|---|
| tinyint | 小整数型,占1个字节 |
| int | 大整数型,占4个字节 |
| double | 浮点类型 |
日期:
| 数据类型 | 解释 |
|---|---|
| date | 日期值,只包含年月日 |
| datetime | 混合日期和时间值,包含年月日时分秒 |
字符串:
| 数据类型 | 解释 |
|---|---|
| char | 定长字符串 |
| varchar | 变长字符串 |
定长字符串和变长字符串的区别:字符串是我们在数据库中经常使用的数据类型,使用变长字符串,如果字符的长度没有达到指定的长度,那么实际的长度是多少就占用几个字符,这样的做法显然是使用时间换空间,而使用定长字符串虽然有时会出现浪费空间的情况,但是一般储存性能比较高。
查询当前数据库下所有的表:
show tables;
查询表结构:
desc 表名称;
例如:

创建一个新的表:
create table 表名称(
字段名1 数据类型,
字段名2 数据类型,
...
字段名n 数据类型 #这里是不需要加上,的
);
例如:

删除表:
drop table 表名;
删除表(判断表是否存在):
drop table if exists 表名;
例如:

修改表名:
alter table 表名 rename to 新的表名;
增加一列:
alter table 表名 add 列名 数据类型;
修改数据类型:
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型:
alter table 表名 change 列名 新列名 新数据类型;
删除列:
alter table 表名 drop 列名;
例如:


【!参与方式!】
点赞+收藏+任意评论本文
截止日期:2023-04-11 早上9:00
【内容简介↓】
本书以WPS Office办公软件为操作平台,系统、全面地讲解了在日常工作中使用WPS表格分析数据的方法和技巧等知识,并分享了数据处理的思路和经验。
全书共10章,通过真实案例介绍了什么是数据分析,以及录入数据、整理数据、公式计算、函数计算、排序和筛选、图表分析、数据透视表/透视图分析、数据工具分析,最后通过行业案例,将数据分析知识融会贯通,应用于实际工作当中,帮助读者迅速掌握多项数据分析的实战技能。
本书内容循序渐进,章节安排合理,案例丰富翔实,既适合零基础又想快速掌握WPS表格的读者学习,也可以作为期望提高WPS Office操作技能水平、积累和丰富实操经验的文秘与行政从业人员的参考书,还可以作为各大、中专职业院校及计算机培训班相关专业的教学参考用书。
京东自营购买链接:《WPS Office高效办公:数据处理与分析 金山官方认证技能》
北京大学出版社,4月“423世界读书日”促销活动(满100减50)安排来啦👇
| 当当活动日期:4.6-4.11,4.18-4.23 |
| 京东活动日期: 4.6 一天, 4.17-4.23 |
| 希望大家关注参与423读书日北大社促销活动 |

我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
文章目录一、概述简介原理模块二、配置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
我正在尝试在Rails上安装ruby,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf
文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手