MySQL学习笔记(1)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL学习笔记(1)

数据库概述:


  • 什么数据库: 存放数据和管理的仓库,简而言之就是一个文件系统,这个文件必须通过标准的SQL访问.
  • 数据库就是一个文件系统,只不过我们需要通过命令(SQL)来操作这个文件系统
  • 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
  • 数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

关系型数据库: E-R关系图


E:Entity实体 R:relation关系

关系型数据库作用:主要是用来存储实体与实体之间的关系,


常见的数据库:


关系型数据库:


  • mysql : 小型.开源免费,大多数中小型互联网公司都在使用这个,sun公司收购了 (集群),5.5以前的都是免费的,6.X之后的版本都是收费的

  • mariadb: 开源免费数据, 和mysql基本上一模一样,但是它是免费的,并且在不停的更新,是mysql开源版本的一个分支

  • Oracle : 中大型的数据库,服务收费的,安全稳定. 证券,银行,保险公司, Oracle收购了sun公司, mysql6.x之后就开始收费了

  • SQL Server : 大学里面教学使用比较多, 政府官网, 图形化界面做的很好 c#

  • DB2 : IBM公司, 主要运用在银行系统, 服务器软硬件解决方案

  • sybase : powerdesinger 数据建模工具

  • SQLite : 运用在嵌入式系统中的小型数据库,android

查看数据库排名网站: https://db-engines.com/en/ranking

MYSQL数据库服务器


数据库服务器安装了Mysql服务软件的一台电脑


MYSQL的SQL语句


SQL: Structrued Query Langauage 结构化的查询语言


  • DDL(Data Definition Language): 数据定义语言 : 定义数据库或者表结构. alter(修改) create(创建) drop(删除) truncate(截断)
  • DML(Data Manipulation Language): 数据操纵语言: 用来操作表中数据: insert(插入) update(更新) delete(删除)
  • DQL(Data Query Language): 数据查询语言: 用来查询数据 select(选择) from(从哪里查) where(哪一条,判断条件)
  • DCL(Data Control Language): 数据控制语言: 用来控制用户权限 grant(授权) revoke(取消授权)


数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。


登录数据库:

方式一: mysql -u root -p 按回车后提示后输入密码

方式二:mysql -uroot -p自己的密码


完整格式:

mysql -h主机地址 -u用户名 -p密码


连接本机:

mysql -hlocalhost -uroot -p123456

mysql -h127.0.0.1 -uroot -p123456


注意:不写-hlocalhost代表默认访问本机数据库服务器

-u username 用户名

-p password密码


数据库的CRUD操作

创建数据库:

create database 数据库的名字;create database 数据库的名字 character set 字符集;create database 数据库的名字 character set 字符集 collate 校对规则;


数据库明明规范:


  • 由字母、数字、下划线、@、#和$符号组成
  • 首字母不能是数字和$符号
  • 不允许有空格和特殊字符
  • 长度小于128位


查看数据库:

--查看数据库定义的语句show create database 数据库的名字;--查看所有的数据库show databases;--查看当前使用的数据库select database();


修改数据库的字符集:

--修改数据的字符集alter database 数据库的名字 character set 字符集;

删除数据库:

drop databae 数据库的名字;


选择数据库:

--切换数据库use 数据库的名字;


存储引擎

查看数据库管理系统支持的引擎

第一种:

show engines;

image.png

  • Engine参数表示存储引擎的名称
  • Support参数表示MySQL数据库管理系统是否支持该存储引擎
  • Comment参数表示关于存储引擎的注释
  • Transactions参数表示存储引擎是否支持事务
  • XA参数表示存储引擎支持的分布式是否符合XA规范
  • Savepoints参数表示存储引擎是否支持事务处理中的保存点


第二种:

show variables like'have%';


  • variable_name参数表示存储引擎的名字
  • value参数表示MySQL数据库管理系统是否支持存储引擎(DISABLED表示支持但是没有开启,YES表示支持)


查询默认存储引擎

show variables like'storage_engine%';

修改默认的存储引擎


打开MySQL安装目录下的my.ini,找到如图所示,default-storage-engine=INNODB,修改INNODB值即可

image.png


选择存储引擎

image.png

* MyISAM存储引擎:由于该存储引擎不支持事务、也不支持外键,所以访问嘟嘟比较快。因此对事务完整性没有要求,并以访问为主的应用格式和该存储引擎。

* InnoDB存储引擎:由于该存储引擎在事务上具有优势,即支持具有提交、回滚和崩溃恢复能力的事务安装,所以比MyISAM存储引擎占用更多的磁盘空间。因此需要进行频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制,此时适合该存储引擎。

* MEMORE存储引擎:该存储引擎使用内存来存储数据,因此该存储引擎的数据访问熟读快,但是安全上没有保障。如果应用中涉及数据比较小,需要快速访问,则适合使用该存储引擎。


表的CRUD操作:

表中的数据库对象包含列、索引和触发器。


  • 列(Columns):也称属性列,在具体创建表时,必须指定列的名字和数据类型
  • 索引(Indexes):时根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,是其索引执行的列中的数据不重复。
  • 触发器(Triggers):是指用户定义的事务命令的集合,当对一个表中的数据进行插入、更新或者删除时这组命令就会自动执行,可以用来确保数据的完整性和安全性。


创建表:

createtable 表名(    列名 列的类型 [列的约束],    列名 列的类型 [列的约束]);

查看表:

--查看所有的表show tables;--查看表的创建过程show createtable 表名;或者
show createtable 表名 \G
--查看表的结构desc 表名;或者
describe 表名;


更新表

altertable 旧表名 rename [to] 新表名;或者
rename table 旧表名 to 新表名;altertable 表名 character set 字符集;


删除表:

droptable 表名;


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
150 0
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
138 6
|
2月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
76 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
77 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
6月前
|
SQL Oracle 关系型数据库
MySQL学习笔记
MySQL学习笔记
43 0
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
62 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
4月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
172 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
4月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
43 6
|
4月前
|
SQL 关系型数据库 MySQL
MySQL学习笔记
这篇文章是一份关于MySQL数据库操作的学习笔记,涵盖了数据库的终端操作、数据类型、建表约束、事务处理以及SQL的连接查询等基础知识点。
下一篇
DataWorks