Mysql數(shù)據(jù)庫(kù)的基礎(chǔ)理論

2017年2月21日23:56:26 發(fā)表評(píng)論 4,395 ℃

Mysql數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)的組織結(jié)構(gòu)

層次型

網(wǎng)狀型

關(guān)系型

RDBMS:

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

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

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

4、用戶(hù)和權(quán)限

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

6、查詢(xún)

DML:Date Manapulage Lanague:數(shù)據(jù)操作語(yǔ)言

insert ,replace, update ,delete,select

DDL:Date Defination Lanauage:數(shù)據(jù)定義語(yǔ)言

create , alter ,drop

約束

域約束:數(shù)據(jù)類(lèi)型約束

外域約束:引用完整性約束

主鍵約束:某字段能唯一標(biāo)識(shí)此字段所屬的實(shí)體,并且不允許為空 (一張表只能有一個(gè)主鍵)

唯一性約束:每一行的某字段都不允許出現(xiàn)相同值,可以為空(一張表中可以有多個(gè))

檢查性約束:

DCL:Date Control Language:數(shù)據(jù)控制語(yǔ)言

grant ,revoke

select

RBBMS: egreSQL

Oracle , Sybase , Infomix ,SQL Server , DB2

MySQL ,PostgreSQL , pgsql ,EnterpriseDB

MySQL , SQL , MySQL AB

阿里巴巴去IOE : IBM ,Oralce , EMC

Oracle

IBM

SUN-->MySQL

BEA:WebLogic

PepoleSoft

Openoffice

Libreoffice

MariaDB

MySQL --> Percona

反關(guān)系模型:NoSQL

MongoDB

Redis

HBase

DBMS:datebase management system

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

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

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

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

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

減少應(yīng)用程序開(kāi)發(fā)時(shí)間

SQL:ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)化組織

sql86,  sql89,  sql92,  sql99

Mysql數(shù)據(jù)庫(kù)的基礎(chǔ)理論

DDL,DML ,DCL

MySQL:

Community Edtion 社區(qū)版

Enterprise Edtion 企業(yè)版

軟件包格式:

軟件包管理器特有的格式

rpm包, .exe格式等

通用二進(jìn)制格式

源程序

mysql

-u username

-P password

-h hostname

Linux :socket

Windows :memory

mysql客戶(hù)端:

交互式模式

批處理模式

執(zhí)行mysql腳本

交互式模式中的命令類(lèi)別

客戶(hù)端命令

服務(wù)端命令

都必須使用域名結(jié)束符,默認(rèn)為分號(hào)

用戶(hù):USERNAME@HOSTNAME

mysqld

RDBMS:

/var/lib/mysql

初始化:

關(guān)系數(shù)據(jù)庫(kù)對(duì)象:

庫(kù)、表、索引、視圖、約束、存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)、觸發(fā)器、游標(biāo)、用戶(hù)、權(quán)限、事務(wù)

數(shù)據(jù)類(lèi)型:

字符:

CHAR(n)

VARCHAR(n)不區(qū)分大小寫(xiě)  

BINARY(n)

VARBINARY(n)區(qū)分大小寫(xiě)

TEXT(n)

BLOB(n)

數(shù)值:

精確數(shù)值:

整型:

TINYINT

SMALLINT

KEDIUMINT

INT

BIGINT

修飾符:UNSIGNED,無(wú)符號(hào)

NOT NULL

十進(jìn)制:DECIMAL

近似數(shù)值

浮點(diǎn)型

FLOAT

DOUBLE

日期時(shí)間

DATE

TIME

DATETIME

STAMP

布爾

內(nèi)置:ENUM  SET

DDL

CREATE

ALTER

DROP

DML

INSERT

UPDATE

DELETE

DCL

GRANT

REVOKE

創(chuàng)建數(shù)據(jù)庫(kù):

create database db_name;

create database if not exists db_name;

刪除數(shù)據(jù)庫(kù):

drop database [ if exists ] db_name;

創(chuàng)建表:

create table tb_name(col1,col2,...);

查看庫(kù)中的表:show tables from db_name;

查看表的結(jié)構(gòu):desc tb_name;

刪除表: drop table tb_name;

修改表:

alter table tb_name

modify

change

add

drop

添加數(shù)據(jù):

insert into  tb_name(col1,col2,....)value('string',num,..);

insert into  tb_name(col1,col2,....)value('string',num,..),('string',num,..);

修改數(shù)據(jù):

update tb_name set col='new_value' where condition;

刪除數(shù)據(jù):

delete from tb_name where condition;

查看數(shù)據(jù):

select 字段 from tb_name where condition;

* : 所有字段

where :沒(méi)有條件表示顯示所有行

創(chuàng)建用戶(hù):

create user  'username'@'host' identified by 'password';

drop user 'username'@'host'; #刪除用戶(hù)

HOST:

IP

HOSTNAME

NETWORK

通配符

_:匹配任意單個(gè)字符,172.16.9._

%:匹配任意字符

用戶(hù)授權(quán):

grant  pri1(命令),pri2,....  on db_name.tb_name to 'username'@'host' [identified by 'password'];

revoke pri1,pri2...on db_name.tb_name from 'username'@'host'; #刪除權(quán)限

show grants for 'username'@'host'; #查看用戶(hù)授權(quán)

all privileges  # 所有權(quán)限

grant all privileges on mydb.* to 'myuser'@'192.168.130.%' identified by '123456';  #允許192.168.130網(wǎng)段的用戶(hù)使用myuser登錄管理mydb表。

修改用戶(hù)密碼:

1、set password for 'username'@'localhost' =password('newpasswd');

2、mysqladmin -uusername -h127.0.0.1 -p password  'newpasswd'

3、update user set password=password('newpasswd') where user='username'

flush privileges;   #刷新權(quán)限

mysql圖形客戶(hù)端工具:

Phpmyadmin

Workbench

Mysql front

Navicat

Toad

mysql:配置文件格式,集中式配置文件,可以為多個(gè)程序提供配置

[mysql]

[mysqld]

[client]

/etc/my.cnf -->/etc/mysql.my.cnf -->$BASEDIR/my.cnf -->~/.my.cnf

MySQL服務(wù)器維護(hù)了兩類(lèi)變量

服務(wù)器變量:

定義MySQL服務(wù)運(yùn)行特殊性

show global variables [like 'string'];

狀態(tài)變量:

保存了MySQL服務(wù)器運(yùn)行統(tǒng)計(jì)數(shù)據(jù)

show global status [like 'string']

show engines;  查看默認(rèn)的存儲(chǔ)引擎

select version();  #查看版本號(hào)

select database(); #查看當(dāng)前數(shù)據(jù)庫(kù)

select user(); #查看當(dāng)前登錄的用戶(hù)

 MySQL通配符:

_:匹配任意單個(gè)字符
%:匹配任意字符

mysql基礎(chǔ)理論

事務(wù)、隔離、并發(fā)

用戶(hù)和權(quán)限

監(jiān)控

STATUS

索引類(lèi)型:查詢(xún)

VARLABLES

備份和恢復(fù)

復(fù)制功能

集群

文件:

數(shù)據(jù)冗余和不一致性

數(shù)據(jù)訪問(wèn)困難

數(shù)據(jù)孤立

完整性問(wèn)題

原子性問(wèn)題

并發(fā)訪問(wèn)異常

安全性問(wèn)題

DBMS

層次模型

網(wǎng)狀模型

關(guān)系模型(結(jié)構(gòu)化數(shù)據(jù)模型)

關(guān)系模型

實(shí)體-關(guān)系模式

對(duì)象關(guān)系模式:基于對(duì)象的數(shù)據(jù)模型

半結(jié)構(gòu)化數(shù)據(jù)模型:XML(擴(kuò)展標(biāo)記語(yǔ)言)

RDBMS

數(shù)據(jù)查詢(xún)和存儲(chǔ):

存儲(chǔ)管理器

權(quán)限及完整性管理器

事務(wù)管理器

文件管理器

緩存區(qū)管理器

查詢(xún)管理器

DML解析器

DDL解釋器

查詢(xún)執(zhí)行引擎

關(guān)系運(yùn)算:

投影:只輸出指定屬性

選擇:只輸出符合條件的行

自然連接:具有相同名字的屬性上取值相同的行

笛卡爾積:(a+b)*(c+d)=ad+ac+bd+dc

并:集合運(yùn)算

sql語(yǔ)言的組成部分

DDL

SML

完整性定義語(yǔ)言:DDL的一部分功能

視圖定義

事務(wù)控制:

嵌入式SQL和動(dòng)態(tài)SQL

授權(quán):dcl

使用程序設(shè)計(jì)語(yǔ)言如何跟RDBMS交互:

嵌入式SQL:與動(dòng)態(tài)SQL類(lèi)似,但其語(yǔ)言必須程序編譯時(shí)完全確定下來(lái)

ODBC

動(dòng)態(tài)SQL:程序設(shè)計(jì)語(yǔ)言使用函數(shù)(mysql_connect())或者方法與RDBMS服務(wù)器建立連接,并進(jìn)行交互,通過(guò)建立連接向sql服務(wù)器發(fā)送查詢(xún)語(yǔ)句,并將結(jié)果保存至變量中而后進(jìn)行處理

JDBC

mysql插件式存儲(chǔ)引擎

5.5.8以前:MySAM

5.5.8以后:InnoDB

表管理器:負(fù)責(zé)創(chuàng)建、讀取或修改表定義文件;維護(hù)表描述符高速緩存;管理表鎖

表結(jié)構(gòu)定義文件

表修改模塊:表創(chuàng)建、刪除、重命名、移出、更新或插入之類(lèi)的操作

表維護(hù)模塊:檢查、修改、備份、恢復(fù)、優(yōu)化(碎片整理)及解析

Mysql數(shù)據(jù)庫(kù)的基礎(chǔ)理論

文件中記錄組織

堆文件組織:一條記錄可以放在文件中的任何地方

順序文件組織:根據(jù)“搜索碼”為順序存放。

散列文件組織:

表結(jié)構(gòu)定義文件,表數(shù)據(jù)文件

表空間:table space

數(shù)據(jù)字典:Data Dictionary

關(guān)系的元數(shù)據(jù)

關(guān)系的名字

字段名字

字段的類(lèi)型和長(zhǎng)度

視圖

約束

用戶(hù)名字,授權(quán),密碼

緩存區(qū)管理器:

緩存置換策略

被盯住的塊

訪問(wèn)路徑的選擇性:一個(gè)訪問(wèn)路徑的選擇性是所有獲取的頁(yè)面數(shù)(如果使用這個(gè)訪問(wèn)路徑去獲取所有想要的元組)。如果一個(gè)表包含一個(gè)與給定條件相匹配的索引,就至少存在兩條訪問(wèn)路徑:使用索引和掃描整個(gè)數(shù)據(jù)文件。

最有選擇性的路徑是檢索最少頁(yè)數(shù)的路徑;使用最有選擇性的路徑將使用獲取數(shù)據(jù)的代價(jià)降到最小。而一個(gè)訪問(wèn)路徑的選擇性依賴(lài)于選擇條件中的主合取體(與涉及的索引有關(guān)),每個(gè)合取體就好比表上的一個(gè)過(guò)濾器,滿(mǎn)足一個(gè)給定合取的元組在表中所占的百分比稱(chēng)為縮減因子。

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣(mài)中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: