您好,登錄后才能下訂單哦!
數據庫MYSQL學習系列一
一.MYSQL數據庫基礎
1.1-認識MYSQL
什么是數據庫
計算機處理和存儲的一切信息都是數據
計算機系統中一種用于存取數據的程序
一種:
計算機系統中有很多種能夠存取數據的程序
它們各有特征和長處,有自己的使用范圍
存取:
能夠保存數據避免丟失
能夠按照需求找到符合條件的數據
為什么要使用數據庫
數據庫幫助我們解決一下數據存取難題:
較大數據量
網絡控制
并發訪問
高性能要求
事務控制
持久化和和數據安全
查詢數據需求邏輯復制
數據庫分類
關系型數據庫
MYSQL
Oracle
SQL Server
PostgreSQL
非關系型數據庫
Hadoop:存放大數據
mongoDB:文檔型數據庫
Redis:鍵值型數據庫
Cassandra:分布式數據庫
最顯著的區別:是否使用結構化查詢語句(SQL)
為什么學習MYSQL
MYSQL:The world’s most popular open source database
最流行
開源
并不是最先進
前三強中唯一的開源數據庫
在互聯網企業中占據絕對主流地位
基于GPL協議開放源代碼
社區版完全開放免費
代碼允許自由的進行修改
易于學習:
MYSQL具備關系型數據庫核心功能但是特性并不繁多。
架構設計上趨于精簡
非常適合新手學習關系型數據庫,入門后可向其他數據庫發展
誰需要學習MYSQL
應用開發者
DBA
學習目標-應用開發者
有助于利用MYSQL開發出性能優異的應有程序
學習目標-DBA
為企業提供可靠的數據庫技術保障
1.2-輕松安裝MySQL
輕松部署MySQL
?Windows下安裝MySQL
o圖形化工具安裝, MySQL Installer
?Linux(Ubuntu)下安裝MySQL
o包管理安裝,apt-get
Windows安裝時在安裝中間starting server時報錯解決辦法是手動進入服務管理把MySQL服務的登錄方式改為用本地賬戶且允許與桌面交互
在Ubuntu下可以用apt-cache search mysql-server查看可用的軟件包
使用sudo apt-get install mysql-server-5.6安裝MySQL5.6
啟動與停止MySQL服務:
sudo /etc/init.d/mysql start# 或者
sudo service mysql start
sudo /etc/init.d/mysql stop# 或者
sudo service mysql stop
sudo service mysql restart
sudo /etc/init.d/mysql status
1.3-MySQL數據庫連接
工作中常用到的三種連接方式
?Java App + JDBC client(其他語言也有,比如Python的MySQLdb)
?MySQL client
?"MySQL" utility
使用應用程序連接MySQL
?應用程序使用驅動(connector/driver)客戶端連接MySQL
?MySQL驅動程序涵蓋各種主流語言
使用命令行連接MySQL
?安裝MySQL客戶端軟件包
?設置環境變量(Linux)
如何安裝MySQL-client
?從軟件源安裝sudo apt-get install mysql-client
驗證MySQL的安裝
mysql -V
命令行連接MySQL的兩種方式
?Socket連接(本地連接)
?TCP/IP連接(遠程連接)
使用Socket連接
mysql -S/tmp/mysql.sock -uroot -p
遠程連接
mysql -h227.0.0.1 -P3306 -uroot -p
本地連接VS遠程連接
?本地連接只能在MySQL服務器上創建,常用作為MySQL狀態檢查,或程序和MySQL部署在一臺機器上。
?遠程連接在MySQL服務器內外都能生效,適合應用服務器和MySQL部署在不同機器上的場景。
在Windows下用命令行連接MySQL
mysql -hlocalhost -P3306 -uroot -p
連接進入之后可以做什么
status;
show processlist;
使用命令行連接MySQL的注意事項
?socket一般存儲路徑為:/tmp/mysql.sock
show global variables like 'socket';
?socket文件的權限必須是777
?不要將密碼直接輸入在命令行里,存在安全風險!
命令行連接MySQL的特點
?MySQL命令行里有豐富的擴展參數
?DBA運維管理工具大多使用命令行方式
?多臺機器可以同時操作,對于DBA來說非常有效率
使用圖形客戶端連接MySQL
?常用的圖形客戶端工具
oNavicat
oMySQLWorkBench
圖形GUI工具的優勢
?操作簡單易于上手
?支持圖形化的導入、導出
?可視化界面輸出,輸出可視化
總結
?應用程序需要使用API接口連接MySQL
?開發工程師可以使用圖形工具連接MySQL
?命令行客戶端才是DBA的最愛
1.4-SQL語言入門
關系型數據庫
?數據存放在表中
?表的每一行被稱為記錄
?表中所有記錄都有相同的字段(列)
SQL是什么
?Structured Query Language
?是一種特殊目的的編程語言,用于關系型數據庫中的標準數據存取操作
?與數據庫進行溝通的鑰匙
SQL語言與數據庫
?用SQL創建表,定義表中的字段
?用SQL向表中增加,刪除,修改記錄
?用SQL從表中查詢到想要的記錄
?用SQL操作數據庫的一切
SQL語句的分類
SQL語句的分類 大致用途
DDL(Data Definition Language) 創建表,刪除表,修改表……
DML(Data Manipulation Language) 向表中插入記錄,修改或者刪除表中的記錄……
select 根據條件從表中查詢出想要得到的記錄
DCL(Data Control Language) 控制數據庫的訪問權限等設置
TCL(Transaction Control Language) 控制事務進展
?DDL
oCREATE TABLE
oDROP TABLE
oALTER TABLE
?DML
oSELECT FROM TABLE
oINSERT INTO TABLE
oUPDATE TABLE SET
oDELETE FROM TABLE
?DCL
oGRANT
oREVOKE
?TCL
oCOMMIT
oROLLBACK
example:
show databases;# 使用名為test的數據庫
use test;# 創建一張學生表create table stu(
id int(10),
name varchar(20),
age int(10),
primary key(id));# 每一張表都需要包含一個主鍵,主鍵唯一標識一條記錄,唯一的字段,不可重復不能為空,通過primary key
關鍵字來定義。
show create table stu;# 新加一個字段alter table stu add column gender varchar(20);# 修改一個字段alter table stu modify column gender varchar(40);# 刪除一個字段alter table stu drop column gender;# 刪除表drop table stu;# 查看當前數據庫中的表
show tables;
1.5-認識DBA
什么是DBA
DBA是數據庫管理員,就像是足球隊的守門員,是業務最后一道屏障,是業務穩定運行的基石,可以提供更暢快的用戶體驗
為什么需要DBA
?小公司
o沒有專職DBA
o但肯定有懂數據庫的人
?大公司
o專職DBA
o數據存儲技術專家
互聯網業務有以下嚴格要求:
?高性能(數據庫是重要的一環)
?高可用(需要業務不中斷的運行)
?可擴展(支撐海量數據和業務,數據庫拓展)
?安全性(核心業務數據敏感)
沒有DBA,就沒有穩定的數據庫,請求變慢,數據丟失,安全問題,用戶投訴,無窮無盡
DBA要做哪些工作
?基礎運維工作
o安裝部署
o監控
o故障處理
?安全運維工作
o數據備份與恢復
o安全訪問、安全漏洞
o審計
?性能調優
o數據庫優化
o容量評估、軟硬件升級
?開發支持工作
o存儲方案制定
o數據庫設計
o數據庫變更、SQL Review
?流程與培訓
o數據庫開發規范
o運維流程標準化
o業務培訓
DBA需要哪些技能
?專業技能
o數據庫原理
oLinux與Shell
o計算機體系結構
o網絡原理
o數據庫系統與操作
o服務器硬件
o業務架構設計
?軟技能
o責任心、執行力
o堅韌、抗壓
o學習與溝通能力
o正直、誠信
o耐心,注重細節
o分析能力
o團隊協作
DBA如何發展
?小公司or大公司
?發展通道:
oDBA -> 業務架構師
oDBA -> 運維專家
oDBA -> 數據庫研發
小結
?認識DBA
o管理好數據庫
oDBA工作很重要
o專業技能與軟技能并重
o不錯的發展前景
o互聯網公司很缺優秀的DBA
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。