溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

菜鳥學Linux 第056篇筆記 DATABASE, MySQL

發(fā)布時間:2020-07-14 23:12:15 來源:網(wǎng)絡 閱讀:524 作者:Winthcloud 欄目:數(shù)據(jù)庫

菜鳥學Linux 第056篇筆記 DATABASE, MySQL




MySQL www.mysql.com


數(shù)據(jù)查詢方式

二分法

首先將數(shù)據(jù)排序后,然后每次取中間位置去查詢匹配,平均需要查詢14次

B+樹索引

查詢數(shù)據(jù)只需要4次


索引

將數(shù)據(jù)文件里的要進行檢索的列單獨抽取出來并進行排序的條目,并且這些條目

有相對應的指針指向原數(shù)據(jù)所在位置


查詢標準

搜索碼


api (application programming interface) 庫

function


ODBC (Open DataBase Connection)

驅(qū)動 Connection


數(shù)據(jù)展示

用戶視圖

物理視圖

DBA視圖

數(shù)據(jù)的組織結構

層次型

網(wǎng)狀型

關系型

二維表

DBMS (DataBase Management System)

RDBMS (Relational DataBase Management System)

1、數(shù)據(jù)庫創(chuàng)建、刪除、修改

2、創(chuàng)建表、刪除表、修改表

3、索引的創(chuàng)建、刪除

4、用戶和權限管理

5、數(shù)據(jù)增刪改

6、查詢


DB命令分類

DML (Data Manapulate Language)操作

INSERT, REPLACE, UPDATE, DELETE

DDL (Data Defination Language)定義

CREATE, ALTER, DROP

DCL (Data Control Language)

GRANT, REVOKE, SELECT

數(shù)據(jù)管理軟件

可以為數(shù)據(jù)自動建立用戶所要求的索引,當數(shù)據(jù)條目刪除時,相對的索引條目

也可自動刪除,無需人手動來操作

實現(xiàn)增刪改查

管理數(shù)據(jù)完整性

權限管理


RDBMS software

商業(yè) Oracle, Sybase, Infomix, SQL Server(中型), DB2

開源 MySQL, PostgreSQL, EnterpriseDB


SQL (Structured Query Language) ANSI

sql86, sql89, sql92, sql99


去IOE:IBM,Oracle, EMC(生產(chǎn)存儲設備)


Oracle 研發(fā)軟件  紅

SUN 綜合軟件服務提供商-->開發(fā)MySQL-->被Oracle收購

MySQL-->Marion (數(shù)據(jù)庫管理軟件)

MySQL-->Percona (公司)

OpenOffice 

LibreOffice

收購BEA: WebLogic 83億

收購PeopleSoft 提供客戶關系軟件的管理公司 128億

IBM 綜合軟件服務提供商 藍色巨人


反關系模型: NoSQL

mongoDB

Redis

HBase



DBMS advantage

數(shù)據(jù)管理的獨立性

有效的完成數(shù)據(jù)存取

保證數(shù)據(jù)完整性和安全性

數(shù)據(jù)集中管理

并發(fā)存儲與故障恢復

減少應用程序開發(fā)時間


DBMS

分析器

計劃執(zhí)行器

優(yōu)化器

文件的存取

緩存器

磁盤空間管理器

故障恢復管理器

事務管理器

鎖管理器


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


初始化

建立源數(shù)據(jù)庫(mysql) 用來存放表名字段名,屬性定義等等


連接到mysql

mysql 

service mysqld start

mysql 連接到mysql server

-u USERNAME

-P PASSWORD

-h MySQL_server

Linux: socket

windows: memory


用戶 user@host 允許哪些客戶端登錄


mysql客戶端模式

交互式模式

客戶端命令

服務器命令

都必須使用語句結束符,默認為分號;

批處理模式

執(zhí)行mysql腳本

SQL接口

Oracle, PL/SQL

SQL server, T-SQL


關系數(shù)據(jù)庫對象

索引

視圖

約束

存儲過程

存儲函數(shù)

觸發(fā)器

游標

用戶

權限

事務


表: 實體

行,列

行:row

列:field, colum


字段名稱、字段類型、類型修飾符(約束)、

字符

CHAR(n) 定長,即使未存儲定義長度也會全都占用

VARCHAR(n) 可變長度的字符

BINARY(n) 區(qū)分大小寫 固定長度

VARBINARY(n) 可變長度,區(qū)分大小寫

TEXT(n) 超長

BLOD(n) 超長區(qū)分大小寫

數(shù)值

精確數(shù)值

×××

TINYINT

SMALLINT

MEDI

INT

BIGINT

修飾符:UNSIGNED 無符號

NOT NULL

十進制

DECIMAL

近似數(shù)值

浮點型

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數(shù)據(jù)庫

CREATE DATABASE db_name

CREATE DATABASE IF NOT EXISTS db_name

1. USE db_name

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

drop數(shù)據(jù)庫

DROP DATABASE db_name

DROP TABLE [IF EXISTS] tb_name

查看

SHOW TABLES FROM db_name; 查看庫中的表

USE db_name; 表示接下來對哪個數(shù)據(jù)庫進行操作

DESC tb_name; 查看表結構

SELECT * FROM tb_name; 查看表中所有數(shù)據(jù)


修改表

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...)

插入數(shù)據(jù)條目多條時,可以用逗號隔開;

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 沒有條件表示顯示所有行

創(chuàng)建用戶

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)

用來對數(shù)據(jù)庫,表,定義 添加,刪除,變更

CREATE 創(chuàng)建

DROP 刪除

ALTER 變更

DML (Data Manipulation Language)

用來對表中的數(shù)據(jù)條目操作等

INSERT

UPDATE

DELETE

SELECT

SHOW

DCL (Data Control Language)

對用戶的權限控制等等


可以使用HELP CONTENTS 來進行查詢








向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI