数据库MYSQL学习系列一
一.MYSQL數(shù)據(jù)庫(kù)基礎(chǔ)
1.1-認(rèn)識(shí)MYSQL
什么是數(shù)據(jù)庫(kù)
計(jì)算機(jī)處理和存儲(chǔ)的一切信息都是數(shù)據(jù)
計(jì)算機(jī)系統(tǒng)中一種用于存取數(shù)據(jù)的程序
一種:
計(jì)算機(jī)系統(tǒng)中有很多種能夠存取數(shù)據(jù)的程序
它們各有特征和長(zhǎng)處,有自己的使用范圍
存取:
能夠保存數(shù)據(jù)避免丟失
能夠按照需求找到符合條件的數(shù)據(jù)
為什么要使用數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)幫助我們解決一下數(shù)據(jù)存取難題:
較大數(shù)據(jù)量
網(wǎng)絡(luò)控制
并發(fā)訪問(wèn)
高性能要求
事務(wù)控制
持久化和和數(shù)據(jù)安全
查詢(xún)數(shù)據(jù)需求邏輯復(fù)制
數(shù)據(jù)庫(kù)分類(lèi)
關(guān)系型數(shù)據(jù)庫(kù)
MYSQL
Oracle
SQL Server
PostgreSQL
非關(guān)系型數(shù)據(jù)庫(kù)
Hadoop:存放大數(shù)據(jù)
mongoDB:文檔型數(shù)據(jù)庫(kù)
Redis:鍵值型數(shù)據(jù)庫(kù)
Cassandra:分布式數(shù)據(jù)庫(kù)
最顯著的區(qū)別:是否使用結(jié)構(gòu)化查詢(xún)語(yǔ)句(SQL)
為什么學(xué)習(xí)MYSQL
MYSQL:The world’s most popular open source database
最流行
開(kāi)源
并不是最先進(jìn)
前三強(qiáng)中唯一的開(kāi)源數(shù)據(jù)庫(kù)
在互聯(lián)網(wǎng)企業(yè)中占據(jù)絕對(duì)主流地位
基于GPL協(xié)議開(kāi)放源代碼
社區(qū)版完全開(kāi)放免費(fèi)
代碼允許自由的進(jìn)行修改
易于學(xué)習(xí):
MYSQL具備關(guān)系型數(shù)據(jù)庫(kù)核心功能但是特性并不繁多。
架構(gòu)設(shè)計(jì)上趨于精簡(jiǎn)
非常適合新手學(xué)習(xí)關(guān)系型數(shù)據(jù)庫(kù),入門(mén)后可向其他數(shù)據(jù)庫(kù)發(fā)展
誰(shuí)需要學(xué)習(xí)MYSQL
應(yīng)用開(kāi)發(fā)者
DBA
學(xué)習(xí)目標(biāo)-應(yīng)用開(kāi)發(fā)者
有助于利用MYSQL開(kāi)發(fā)出性能優(yōu)異的應(yīng)有程序
學(xué)習(xí)目標(biāo)-DBA
為企業(yè)提供可靠的數(shù)據(jù)庫(kù)技術(shù)保障
1.2-輕松安裝MySQL
輕松部署MySQL
?Windows下安裝MySQL
o圖形化工具安裝, MySQL Installer
?Linux(Ubuntu)下安裝MySQL
o包管理安裝,apt-get
Windows安裝時(shí)在安裝中間starting server時(shí)報(bào)錯(cuò)解決辦法是手動(dòng)進(jìn)入服務(wù)管理把MySQL服務(wù)的登錄方式改為用本地賬戶(hù)且允許與桌面交互
在Ubuntu下可以用apt-cache search mysql-server查看可用的軟件包
使用sudo apt-get install mysql-server-5.6安裝MySQL5.6
啟動(dòng)與停止MySQL服務(wù):
啟動(dòng)
sudo /etc/init.d/mysql start# 或者
sudo service mysql start
停止
sudo /etc/init.d/mysql stop# 或者
sudo service mysql stop
重啟
sudo service mysql restart
查看狀態(tài)
sudo /etc/init.d/mysql status
1.3-MySQL數(shù)據(jù)庫(kù)連接
工作中常用到的三種連接方式
?Java App + JDBC client(其他語(yǔ)言也有,比如Python的MySQLdb)
?MySQL client
?"MySQL" utility
使用應(yīng)用程序連接MySQL
?應(yīng)用程序使用驅(qū)動(dòng)(connector/driver)客戶(hù)端連接MySQL
?MySQL驅(qū)動(dòng)程序涵蓋各種主流語(yǔ)言
使用命令行連接MySQL
?安裝MySQL客戶(hù)端軟件包
?設(shè)置環(huán)境變量(Linux)
如何安裝MySQL-client
?從軟件源安裝sudo apt-get install mysql-client
驗(yàn)證MySQL的安裝
mysql -V
命令行連接MySQL的兩種方式
?Socket連接(本地連接)
?TCP/IP連接(遠(yuǎn)程連接)
使用Socket連接
需要指定socket文件和用戶(hù)名、密碼
mysql -S/tmp/mysql.sock -uroot -p
遠(yuǎn)程連接
需要指定IP和端口
mysql -h127.0.0.1 -P3306 -uroot -p
本地連接VS遠(yuǎn)程連接
?本地連接只能在MySQL服務(wù)器上創(chuàng)建,常用作為MySQL狀態(tài)檢查,或程序和MySQL部署在一臺(tái)機(jī)器上。
?遠(yuǎn)程連接在MySQL服務(wù)器內(nèi)外都能生效,適合應(yīng)用服務(wù)器和MySQL部署在不同機(jī)器上的場(chǎng)景。
在Windows下用命令行連接MySQL
mysql -hlocalhost -P3306 -uroot -p
連接進(jìn)入之后可以做什么
數(shù)據(jù)庫(kù)狀態(tài)
status;
展示當(dāng)前連接
show processlist;
使用命令行連接MySQL的注意事項(xiàng)
?socket一般存儲(chǔ)路徑為:/tmp/mysql.sock
如果找不到文件可以通過(guò)tcp連接進(jìn)來(lái)然后通過(guò)如下命令查找
show global variables like 'socket';
?socket文件的權(quán)限必須是777
?不要將密碼直接輸入在命令行里,存在安全風(fēng)險(xiǎn)!
命令行連接MySQL的特點(diǎn)
?MySQL命令行里有豐富的擴(kuò)展參數(shù)
?DBA運(yùn)維管理工具大多使用命令行方式
?多臺(tái)機(jī)器可以同時(shí)操作,對(duì)于DBA來(lái)說(shuō)非常有效率
使用圖形客戶(hù)端連接MySQL
?常用的圖形客戶(hù)端工具
oNavicat
oMySQLWorkBench
圖形GUI工具的優(yōu)勢(shì)
?操作簡(jiǎn)單易于上手
?支持圖形化的導(dǎo)入、導(dǎo)出
?可視化界面輸出,輸出可視化
總結(jié)
?應(yīng)用程序需要使用API接口連接MySQL
?開(kāi)發(fā)工程師可以使用圖形工具連接MySQL
?命令行客戶(hù)端才是DBA的最?lèi)?ài)
1.4-SQL語(yǔ)言入門(mén)
關(guān)系型數(shù)據(jù)庫(kù)
?數(shù)據(jù)存放在表中
?表的每一行被稱(chēng)為記錄
?表中所有記錄都有相同的字段(列)
SQL是什么
?Structured Query Language
?是一種特殊目的的編程語(yǔ)言,用于關(guān)系型數(shù)據(jù)庫(kù)中的標(biāo)準(zhǔn)數(shù)據(jù)存取操作
?與數(shù)據(jù)庫(kù)進(jìn)行溝通的鑰匙
SQL語(yǔ)言與數(shù)據(jù)庫(kù)
?用SQL創(chuàng)建表,定義表中的字段
?用SQL向表中增加,刪除,修改記錄
?用SQL從表中查詢(xún)到想要的記錄
?用SQL操作數(shù)據(jù)庫(kù)的一切
SQL語(yǔ)句的分類(lèi)
SQL語(yǔ)句的分類(lèi) 大致用途
DDL(Data Definition Language) 創(chuàng)建表,刪除表,修改表……
DML(Data Manipulation Language) 向表中插入記錄,修改或者刪除表中的記錄……
select 根據(jù)條件從表中查詢(xún)出想要得到的記錄
DCL(Data Control Language) 控制數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限等設(shè)置
TCL(Transaction Control Language) 控制事務(wù)進(jìn)展
?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:
查看當(dāng)前有哪些數(shù)據(jù)庫(kù)
show databases;# 使用名為test的數(shù)據(jù)庫(kù)
use test;# 創(chuàng)建一張學(xué)生表create table stu(
id int(10),
name varchar(20),
age int(10),
primary key(id));# 每一張表都需要包含一個(gè)主鍵,主鍵唯一標(biāo)識(shí)一條記錄,唯一的字段,不可重復(fù)不能為空,通過(guò)primary key關(guān)鍵字來(lái)定義。
查看創(chuàng)建好的表
show create table stu;# 新加一個(gè)字段alter table stu add column gender varchar(20);# 修改一個(gè)字段alter table stu modify column gender varchar(40);# 刪除一個(gè)字段alter table stu drop column gender;# 刪除表drop table stu;# 查看當(dāng)前數(shù)據(jù)庫(kù)中的表
show tables;
向表中插入數(shù)據(jù)insert into stu(id,name,age) values(1,'pw',28);# 插入全部字段時(shí)可以只寫(xiě)表名insert into stu values(2,'nss',29);# 查看剛才添加的數(shù)據(jù),""代表查詢(xún)?nèi)孔侄蝧elect from stu;# 如果只想查詢(xún)兩個(gè)字段,則只寫(xiě)要查詢(xún)的字段名select name, age from stu;# 也可以根據(jù)某個(gè)條件進(jìn)行查詢(xún),比如只查詢(xún)id為1的記錄select name age from stu where id=1;
更新語(yǔ)句update stu set age=29 where id=1;
刪除表中的數(shù)據(jù)delete from stu where id=1;
1.5-認(rèn)識(shí)DBA
什么是DBA
DBA是數(shù)據(jù)庫(kù)管理員,就像是足球隊(duì)的守門(mén)員,是業(yè)務(wù)最后一道屏障,是業(yè)務(wù)穩(wěn)定運(yùn)行的基石,可以提供更暢快的用戶(hù)體驗(yàn)
為什么需要DBA
?小公司
o沒(méi)有專(zhuān)職DBA
o但肯定有懂?dāng)?shù)據(jù)庫(kù)的人
?大公司
o專(zhuān)職DBA
o數(shù)據(jù)存儲(chǔ)技術(shù)專(zhuān)家
互聯(lián)網(wǎng)業(yè)務(wù)有以下嚴(yán)格要求:
?高性能(數(shù)據(jù)庫(kù)是重要的一環(huán))
?高可用(需要業(yè)務(wù)不中斷的運(yùn)行)
?可擴(kuò)展(支撐海量數(shù)據(jù)和業(yè)務(wù),數(shù)據(jù)庫(kù)拓展)
?安全性(核心業(yè)務(wù)數(shù)據(jù)敏感)
沒(méi)有DBA,就沒(méi)有穩(wěn)定的數(shù)據(jù)庫(kù),請(qǐng)求變慢,數(shù)據(jù)丟失,安全問(wèn)題,用戶(hù)投訴,無(wú)窮無(wú)盡
DBA要做哪些工作
?基礎(chǔ)運(yùn)維工作
o安裝部署
o監(jiān)控
o故障處理
?安全運(yùn)維工作
o數(shù)據(jù)備份與恢復(fù)
o安全訪問(wèn)、安全漏洞
o審計(jì)
?性能調(diào)優(yōu)
o數(shù)據(jù)庫(kù)優(yōu)化
o容量評(píng)估、軟硬件升級(jí)
?開(kāi)發(fā)支持工作
o存儲(chǔ)方案制定
o數(shù)據(jù)庫(kù)設(shè)計(jì)
o數(shù)據(jù)庫(kù)變更、SQL Review
?流程與培訓(xùn)
o數(shù)據(jù)庫(kù)開(kāi)發(fā)規(guī)范
o運(yùn)維流程標(biāo)準(zhǔn)化
o業(yè)務(wù)培訓(xùn)
DBA需要哪些技能
?專(zhuān)業(yè)技能
o數(shù)據(jù)庫(kù)原理
oLinux與Shell
o計(jì)算機(jī)體系結(jié)構(gòu)
o網(wǎng)絡(luò)原理
o數(shù)據(jù)庫(kù)系統(tǒng)與操作
o服務(wù)器硬件
o業(yè)務(wù)架構(gòu)設(shè)計(jì)
?軟技能
o責(zé)任心、執(zhí)行力
o堅(jiān)韌、抗壓
o學(xué)習(xí)與溝通能力
o正直、誠(chéng)信
o耐心,注重細(xì)節(jié)
o分析能力
o團(tuán)隊(duì)協(xié)作
DBA如何發(fā)展
?小公司or大公司
?發(fā)展通道:
oDBA -> 業(yè)務(wù)架構(gòu)師
oDBA -> 運(yùn)維專(zhuān)家
oDBA -> 數(shù)據(jù)庫(kù)研發(fā)
小結(jié)
?認(rèn)識(shí)DBA
o管理好數(shù)據(jù)庫(kù)
oDBA工作很重要
o專(zhuān)業(yè)技能與軟技能并重
o不錯(cuò)的發(fā)展前景
o互聯(lián)網(wǎng)公司很缺優(yōu)秀的DBA
轉(zhuǎn)載于:https://blog.51cto.com/8999a/2044502
總結(jié)
以上是生活随笔為你收集整理的数据库MYSQL学习系列一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 洗礼灵魂,修炼python(68)--爬
- 下一篇: HTML基础-第二讲