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