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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

菜鸟学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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
15天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
19 0
|
2天前
|
Linux Android开发
Linux(6)CH9434 SPI调试笔记
Linux(6)CH9434 SPI调试笔记
12 0
|
2天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
17 0
|
7天前
|
存储 关系型数据库 MySQL
Linux | MySQL基础
Linux | MySQL基础
|
8天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
20 0
|
19天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
37 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
125 0
|
16天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
5天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
28 4