您好,登錄后才能下訂單哦!
菜鳥學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
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 來進行查詢
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。