菜鸟学Linux 第056篇笔记 DATABASE, MySQL

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

菜鸟学Linux 第056篇笔记 DATABASE, MySQL




MySQL www.mysql.com


数据查询方式

二分法

首先将数据排序后,然后每次取中间位置去查询匹配,平均需要查询14次

B+树索引

查询数据只需要4次


索引

将数据文件里的要进行检索的列单独抽取出来并进行排序的条目,并且这些条目

有相对应的指针指向原数据所在位置


查询标准

搜索码


api (application programming interface) 库

function


ODBC (Open DataBase Connection)

驱动 Connection


数据展示

用户视图

物理视图

DBA视图

数据的组织结构

层次型

网状型

关系型

二维表

DBMS (DataBase Management System)

RDBMS (Relational DataBase Management System)

1、数据库创建、删除、修改

2、创建表、删除表、修改表

3、索引的创建、删除

4、用户和权限管理

5、数据增删改

6、查询


DB命令分类

DML (Data Manapulate Language)操作

INSERT, REPLACE, UPDATE, DELETE

DDL (Data Defination Language)定义

CREATE, ALTER, DROP

DCL (Data Control Language)

GRANT, REVOKE, SELECT

数据管理软件

可以为数据自动建立用户所要求的索引,当数据条目删除时,相对的索引条目

也可自动删除,无需人手动来操作

实现增删改查

管理数据完整性

权限管理


RDBMS software

商业 Oracle, Sybase, Infomix, SQL Server(中型), DB2

开源 MySQL, PostgreSQL, EnterpriseDB


SQL (Structured Query Language) ANSI

sql86, sql89, sql92, sql99


去IOE:IBM,Oracle, EMC(生产存储设备)


Oracle 研发软件  红

SUN 综合软件服务提供商-->开发MySQL-->被Oracle收购

MySQL-->Marion (数据库管理软件)

MySQL-->Percona (公司)

OpenOffice 

LibreOffice

收购BEA: WebLogic 83亿

收购PeopleSoft 提供客户关系软件的管理公司 128亿

IBM 综合软件服务提供商 蓝色巨人


反关系模型: NoSQL

mongoDB

Redis

HBase



DBMS advantage

数据管理的独立性

有效的完成数据存取

保证数据完整性和安全性

数据集中管理

并发存储与故障恢复

减少应用程序开发时间


DBMS

分析器

计划执行器

优化器

文件的存取

缓存器

磁盘空间管理器

故障恢复管理器

事务管理器

锁管理器


MySQL

Community Edtion 

GA (General Availability)

Enterprise Edition


MySQL 软件包格式

软件包管理器特有的格式

rpm包 .exe格式等

通用二进制格式(类似windows绿色软件)

源程序

MySQL的RPM包


mysql, mysql-server


mysql

mysqld

tcp/3306, mysql, mysql

安装MySQL

yum install mysql-server -y


初始化

建立源数据库(mysql) 用来存放表名字段名,属性定义等等


连接到mysql

mysql 

service mysqld start

mysql 连接到mysql server

-u USERNAME

-P PASSWORD

-h MySQL_server

Linux: socket

windows: memory


用户 user@host 允许哪些客户端登录


mysql客户端模式

交互式模式

客户端命令

服务器命令

都必须使用语句结束符,默认为分号;

批处理模式

执行mysql脚本

SQL接口

Oracle, PL/SQL

SQL server, T-SQL


关系数据库对象

索引

视图

约束

存储过程

存储函数

触发器

游标

用户

权限

事务


表: 实体

行,列

行:row

列:field, colum


字段名称、字段类型、类型修饰符(约束)、

字符

CHAR(n) 定长,即使未存储定义长度也会全都占用

VARCHAR(n) 可变长度的字符

BINARY(n) 区分大小写 固定长度

VARBINARY(n) 可变长度,区分大小写

TEXT(n) 超长

BLOD(n) 超长区分大小写

数值

精确数值

整形

TINYINT

SMALLINT

MEDI

INT

BIGINT

修饰符:UNSIGNED 无符号

NOT NULL

十进制

DECIMAL

近似数值

浮点型

FLOAT

DOUBLE

日期时间

DATE

TIME

DATETIME

STAMP 时间戳

布尔

真假01



MySQL 常用命令

DDL (Data Defination Language)

CREATE

ALTER

DROP

DML (Data Manapulate Language)

INSERT

UPDATE

DELETE

DCL (Data Control Language)

GRANT

REVOKE


creat数据库

CREATE DATABASE db_name

CREATE DATABASE IF NOT EXISTS db_name

1. USE db_name

2. CREATE TABLE tb_name(col1,col2...);

drop数据库

DROP DATABASE db_name

DROP TABLE [IF EXISTS] tb_name

查看

SHOW TABLES FROM db_name; 查看库中的表

USE db_name; 表示接下来对哪个数据库进行操作

DESC tb_name; 查看表结构

SELECT * FROM tb_name; 查看表中所有数据


修改表

ALTER TABLE tb_name

MODIFY

CHANGE

ADD

DROP

ALTER TABLE students ADD course VARCHAR(100);

ALTER TABLE students CHANGE course Course VARCHAR(100) AFTER Name;

ALTER TABLE students DROP Course; 



DML

INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ("STRING",NUM...)

插入数据条目多条时,可以用逗号隔开;

INSERT INTO students VALUE ('LuFei',25,'M'),('NaMei',23,'F');

INSERT INTO students (Name,Age) VALUE ('Liming',20),('Tom',18);

不加字段的插入则表示每一个字段都插入对应的值

UPDATE tb_name SET column=value WHERE 指定哪一行,否则全都更改

UPDATE students SET Age=30 WHERE Name='Tom';

DELETE FROM students WHERE 

DELETE FROM students WHERE Age=25;

REPLACE INTO


选择

SELECT 字段 FROM tb_name WHERE CONDITION;

* 所有字段

WHERE 没有条件表示显示所有行

创建用户

CREATE USER 'USERNAME'@'HOST' INDENTIFIED BY 'PASSWORD'

DROP USER 'USERNAME'@'HOST';

HOST:

IP

HOSTNAME

NETWORK

通配符

_ 匹配任意单个字符 172.16.0.__  10-99

% 任意字符任意长度 

(注意使用通配符要使用引号)


DCL

权限管理

GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' 

[IDENTIFIED BY 'PASSWORD']; 这个是一条命令,写成两行是因为版面的原因

GRANT ALL PRIVILEGES ON mydb.students to 'tom'@'%';

REVOKE pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST';

REVOKE ALL PRIVILEGES ON mydb.students FROM 'tom'@'%';

查看用户授权

SHOW GRANTS FOR 'USERNAE'@'HOST';


选择和投影

选择:指定以某字段做为搜索码,做逻辑比较,筛选符合条件的行;(行) WHERE

投影:隐藏某些字段(列)



总结:

DDL (Data Definition Language)

用来对数据库,表,定义 添加,删除,变更

CREATE  创建

DROP 删除

ALTER  变更

DML (Data Manipulation Language)

用来对表中的数据条目操作等

INSERT

UPDATE

DELETE

SELECT

SHOW

DCL (Data Control Language)

对用户的权限控制等等


可以使用HELP CONTENTS 来进行查询

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1884888如需转载请自行联系原作者



Winthcloud

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
184 8
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
284 7
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
353 3
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?
TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用户完成原始数据的清洗和结构优化,而其零代码迁移能力更实现了历史数据从 TDengine OSS 与 MySQL 到 TDengine 企业版的平滑迁移,全面提升了企业的数据管理效率。本文将详细解读这一实践案例。
33 0
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
166 82
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等