MySQL 入門教程
MySQL簡介
1、什麼是資料庫 ?
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的應用。
主流的資料庫有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等,本文主要講述的是mysql
2、資料庫管理是幹什麼用的?
a. 將數據保存到文件或內存
b. 接收特定的命令,然後對文件進行相應的操作
PS:如果有了以上管理系統,無須自己再去創建文件和文件夾,而是直接傳遞 命令 給上述軟體,讓其來進行文件操作,他們統稱為資料庫管理系統(DBMS,Database Management System)
MySQL安裝
MySQL是一種開放源代碼的關係型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言–結構化查詢語言(SQL)進行資料庫管理。在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。
使用mysql必須具備一下條件
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
c. 【客戶端】連接【服務端】
d. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
1、下載地址:http://dev.mysql.com/downloads/mysql/
2、安裝
windows安裝請參考:http://www.cnblogs.com/lonelywolfmoutain/p/4547115.html
linux下安裝:http://www.cnblogs.com/chenjunbiao/archive/2011/01/24/1940256.html
註:以上兩個鏈接有完整的安裝方式,擼主也是參考他的安裝的,安裝完以後mysql.server start啟動mysql服務
MySQL操作
一、連接資料庫
常見錯誤如下:
ERROR 2002 (HY000): Can"t connect to local MySQL server through socket "/tmp/mysql.sock" (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
退出連接:
二、查看資料庫,創建資料庫,使用資料庫查看資料庫:
默認資料庫:
創建資料庫:
使用資料庫:
顯示當前使用的資料庫中所有表:
三、用戶管理
創建用戶
刪除用戶
修改用戶
修改密碼
註:用戶許可權相關數據保存在mysql資料庫的user表中,所以也可以直接對其進行操作(不建議)
四、許可權管理
mysql對於許可權這塊有以下限制:
對於資料庫及內部其他許可權如下:
對於用戶和IP的許可權如下:
1、查看許可權:
2、授權
3、取消授權
授權實例如下:
MySQL表操作
一、查看錶
二、創建表
來一個實例好詳解
註:
默認值,創建列時可以指定默認值,當插入數據時如果未主動設置,則自動添加默認值
自增,如果為某列設置自增列,插入數據時無需設置此列,默認將自增(表中只能有一個自增列)注意:1、對於自增列,必須是索引(含主鍵)2、對於自增可以設置步長和起始值
主鍵,一種特殊的唯一索引,不允許有空值,如果主鍵使用單個列,則它的值必須唯一,如果是多列,則其組合必須唯一。
三、刪除表
四、清空表內容
五、修改表
對於上述這些操作是不是看起來很麻煩,很浪費時間,別慌!有專門的軟體能提供這些功能,操作起來非常簡單,這個軟體名字叫Navicat Premium ,大家自行在網上下載,練練手,但是下面的即將講到表內容操作還是建議自己寫命令來進行
六、基本數據類型
MySQL的數據類型大致分為:數值、時間和字元串
MySQL表內容操作
表內容操作無非就是增刪改查,當然用的最多的還是查,而且查這一塊東西最多,用起來最難,當然對於大神來說那就是so easy了,對於我這種小白還是非常難以靈活運用的,下面咱來一一操作一下
一、增
二、刪
三、改
四、查
查這塊的條件太多太多我給列舉出來至於組合還得看大家的理解程度哈
a、條件判斷where
b、通配符like
c、限制limit
d、排序asc,desc
e、分組group by
好了,以上我們就完成了MySQL的入門。經過練習之後,一些簡單的增刪改查任務已經不成問題,這時候就應該要考慮進階了。
限於本文的主題和篇幅,在這裡我們就不多說了,如果有需要的同學可以前往 MySQL 的官方文檔:https://dev.mysql.com/doc/進行查看,英文不太好的同學也可以去菜鳥教程:http://www.runoob.com/mysql/mysql-tutorial.html。
MySQL 資源大全
除了一份入門的教程,小編還給大家準備了一份禮物,那就是 MySQL 資源大全。
工欲善其事必先利其器,有了這些工具,我們和大神的差距就會縮小許多,而且很多工具也會為我們的日常提升提供很大幫助——有了工具包,媽媽再也不用擔心你的學習!
分析工具
性能,結構和數據分析工具
Anemometer – 一個 SQL 慢查詢監控器。
innodb-ruby – 一個對 InooDB 格式文件的解析器,用於 Ruby 語言。
innotop – 一個具備多種特性和可擴展性的 MySQL 版 『top』 工具。
pstop – 一個針對 MySQL 的類 top 程序,用於收集,匯總以及展示來自 performance_schema 的信息。
mysql-statsd – 一個收集 MySQL 信息的 Python 守護進程,並通過 StatsD 發送到 Graphite。
備份
備份/存儲/恢復 工具
MyDumper – 邏輯的,並行的 MySQL 備份/轉儲工具。
MySQLDumper – 基於 web 的開源備份工具-對於共享虛擬主機非常有用。
mysqldump-secure – 將加密,壓縮,日誌,黑名單和 Nagios 監控一體化的 mysqldump 安全腳本。
Percona Xtrabackup – 針對 MySQL 的一個開源熱備份實用程序——在伺服器的備份期間不會鎖定你的資料庫。
性能測試
給你的伺服器進行壓測的工具
iibench-mysql -基於 Java 的 MySQL/Percona/MariaDB 索引進行插入性能測試工具。
Sysbench – 一個模塊化,跨平台以及多線程的性能測試工具。
聊天應用
集成進聊天室的腳本
Hubot MySQL ChatOps
配置
MySQL 配置實例及指導
mysql-compatibility-config – 使 MySQL 配置起來更像新的(或先前)的 MySQL 版本。
連接器
多種編程語言的 MySQL 連接器
Connector/Python – 一個對於 Python 平台和開發的標準化資料庫驅動程序。
go-sql-driver – 一個 Go 語言的輕量級、極速的 MySQL 驅動程序。
libAttachSQL – libAttachSQL 是 MySQL 伺服器的一個輕量級,非阻塞的 C 語言 API。
MariaDB Java Client – 針對 Java 應用且經過 LGPL 許可的 MariaDB 客戶端庫。
MySQL-Python – 一個 Python 語言的 MySQL 資料庫連接器。
PHP mysqlnd – 針對 MySQL 的 MySQL 本地驅動,棄用過時的 libmysql 基礎驅動。
開發
支持 MySQL 相關開發的工具
Flywaydb – 資料庫遷移;任意情況下輕鬆可靠地演變你的資料庫版本。
Liquibase – 對你的資料庫進行源代碼控制。
Propagator – 集中模式和數據部署在一個多維拓撲上。
GUI
前端和應用的 GUI
Adminer – 一個 PHP 編寫的資料庫管理工具。
HeidiSQL – Windows 下的 MySQL 圖形化管理工具。
MySQL Workbench – 提供給資料庫管理員和開發人員進行資料庫設計和建模的集成工具環境;SQL 開發;資料庫管理。
phpMyAdmin – 一個 PHP 寫成的開源軟體,意圖對 web 上的 MySQL 進行管理。
SequelPro – 一個 mac 下運行 MySQL 的資料庫管理應用程序。
mycli – 一個帶自動補全和語法高亮的終端版 MySQL 客戶端
HA
高可用解決方案
Galera Cluster – 一個基於同步複製的多主機集群方案。
MHA – 針對 MySQL 的優秀高可用管理器及工具
MySQL Fabric – 一個用於管理 MySQL 伺服器場(Server Farms)的可擴展框架。
Percona Replication Manager – 針對 MySQL 的非同步複製管理代理。支持以文件和 GTID 為基礎的複製,使用 booth 實現的地理分散式集群。
代理
MySQL 代理
MaxScale – 開源,以資料庫為中心的代理。
Mixer – Go 實現的一個 MySQL 代理,目的為 MySQL 分片提供一個簡單的解決方案。
MySQL Proxy – 一個處於你的客戶端和 MySQL 服務端之間的簡單程序,它可以檢測、分析或者改變它們的通信。
ProxySQL – 高性能的 MySQL 代理。
複製
複製相關的軟體
orchestrator – 對 MySQL 複製拓撲管理並可視化的工具。
Tungsten Replicator – MySQL 的一個高性能、開源、數據複製引擎。
模式
附加模式
common_schema – MySQL DBA 的框架, 提供一個具有函數庫、視圖庫和查詢腳本的解釋器。
sys – 一個視圖、函數和過程的集合,以幫助 MySQL 管理人員更加深入理解 MySQL 資料庫的使用。
伺服器
MySQL server flavors
MariaDB – MySQL server 的一個由社區開發的分支。
MySQL Server & MySQL Cluster – Oracle 官方的 MySQL server 和 MySQL 集群分布。
Percona Server – 一個加強版的 MySQL 替代品
WebScaleSQL – WebScaleSQL,5.6 版本,基於 MySQL 5.6 社區版本。
分片
分片解決方案/框架
vitess – 對於大規模的 web 服務,vitess 提供服務和工具以便於 MySQL 資料庫的縮放。
jetpants – 一個自動化套件,用於管理大規模分片集群,由 Tumblr 開發。
工具包
工具包,通用腳本
go-mysql – 一個純 go 的庫,用於處理 MySQL 的網路協議和複製。
MySQL Utilities – 一個命令行實用程序的集合,Python 語言編寫,用於維護和管理單一或多層的 MySQL。
Percona Toolkit – 一個先進的命令行工具集,用於執行對於 MySQL 伺服器和系統過於困難或複雜的任務。
openark kit – 一組實用的工具,解決日常的維護工作,包括一些複雜的或需徒手操作的,用 Python 語言編寫。
UnDROP – 一個用來恢復刪除或損壞的 InnoDB 表中數據的工具。
TAG:Linux資訊速推 |