【MySQL】初識資料庫及簡單操作
一、資料庫概述
1.1 什麼是資料(Data)
描述事物的符號記錄稱為資料,描述事物的符號既可以是數字,也可以是文字、圖片,影象、聲音、語言等,資料由多種表現形式,它們都可以經過數字化後存入計算機。
1.2 什麼是資料庫(DataBase,簡稱DB)
資料庫即存放資料的倉庫,只不過這個倉庫是在計算機儲存裝置上,而且資料是按一定的格式存放的。
資料庫是長期存放在計算機內、有組織、可共享的資料。資料庫中的資料按一定資料模型組織、描述和儲存,具有較小的冗餘度、較高的資料獨立性和易擴充套件性,並可為各種使用者共享。
1.3 什麼是資料庫管理系統(DataBase Management System 簡稱DBMS)
瞭解了Data與DB的概念後,如何科學地組織和儲存資料,如何高效獲取和維護資料成了關鍵。這就用到了一個系統軟體---資料庫管理系統,如MySQL、Oracle、SQLite、Access、MS SQL Server等。
mysql主要用於大型門戶,例如搜狗、新浪等,它主要的優勢就是開放原始碼,因為開放原始碼這個資料庫是免費的,他現在是甲骨文公司的產品。
oracle主要用於銀行、鐵路、飛機場等。該資料庫功能強大,軟體費用高。也是甲骨文公司的產品。
sql server是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。
1.4 資料庫伺服器、資料管理系統、資料庫、表與記錄的關係(重點理解!!!)
資料庫伺服器-:執行資料庫管理軟體的計算機
資料庫管理軟體:管理資料庫的軟體,如MySQL、Oracle、SQLite、Access、MS SQL Server
資料庫:即資料夾,用來組織檔案/表
表:即檔案,用來存放多行內容/多條記錄
二、MySQL介紹
2.1 MySQL是什麼
mysql就是一個基於socket編寫的C/S架構的軟體
客戶端軟體
mysql自帶:如mysql命令,mysqldump命令等
python模組:如pymysql
2.2 資料庫管理軟體分類
主要分為兩大類:
關係型:如sqllite,db2,oracle,access,sql server,MySQL,(注意:sql語句通用)
非關係型:mongodb,redis,memcache
可以簡單的理解為:
關係型資料庫需要有表結構
非關係型資料庫是key-value儲存的,沒有表結構
2.3 下載和安裝
以windows版本為例
1、下載:MySQL Community Server 5.7.16 (資料庫管理軟體不一定非要裝最新版本,穩定性才是最重要的)
http://dev.mysql.com/downloads/mysql/
2、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的資料夾移動到指定目錄,如:C:\mysql-5.7.16-winx64
3、新增環境變數
【右鍵計算機】--》【屬性】--》【高階系統設定】--》【高階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變數值中,用 ; 分割】
4、初始化
mysqld --initialize-insecure
5、啟動MySQL服務
mysqld # 啟動MySQL服務
6、啟動MySQL客戶端並連線MySQL服務
mysql -u root -p # 連線MySQL伺服器
通過以上步驟,問題還沒有徹底解決,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題,即將MySQL服務製作成windows服務。
注意:
--install前,必須用mysql啟動命令的絕對路徑
# 製作MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
# 移除MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:
# 啟動MySQL服務
net start mysql
# 關閉MySQL服務
net stop mysql
2.4 登入設定密碼
初始狀態下,管理員root,密碼為空,預設只允許從本機登入localhost
設定密碼
[[email protected]]# mysqladmin -uroot password "123" 設定初始密碼 由於原密碼為空,因此-p可以不用
[[email protected]]# mysqladmin -uroot -p"123" password "456" 修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設定新密碼
命令格式:
[[email protected]]# mysql -h172.31.0.2 -uroot -p456
[[email protected]]# mysql -uroot -p
[[email protected]]# mysql 以root使用者登入本機,密碼為空
2.5 破解密碼
windows平臺下,5.7版本mysql,破解密碼的兩種方式:
方式一
#1 關閉mysql #2 在cmd中執行:mysqld --skip-grant-tables #3 在cmd中執行:mysql #4 執行如下sql: update mysql.user set authentication_string=password('') where user = 'root'; flush privileges; #5 tskill mysqld #或taskkill -f /PID 7832 #6 重新啟動mysql 以上需要右鍵以管理員方式開啟cmd
方式二
#1. 關閉mysql,可以用tskill mysqld將其殺死 #2. 在解壓目錄下,新建mysql配置檔案my.ini #3. my.ini內容,指定 [mysqld] skip-grant-tables #4.啟動mysqld #5.在cmd裡直接輸入mysql登入,然後操作 update mysql.user set authentication_string=password('') where user='root and host='localhost'; flush privileges; #6.註釋my.ini中的skip-grant-tables,然後啟動myqsld,然後就可以以新密碼登入了
2.6 統一字元編碼
強調:配置檔案中的註釋可以有中文,但是配置項中不能出現中文
1.修改配置檔案
在mysql的解壓目錄下,新建my.ini,然後配置如下(以mysql5.5以上為例):
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2. 重啟服務
3. 檢視修改結果:
三、初識sql語句
SQL(Structured Query Language ),即即結構化查詢語言。
SQL語言主要用於存取資料、查詢資料、更新資料和管理關係資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型: DDL語句 資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如CREATE DROP ALTER DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT DCL語句 資料庫控制語言: 例如控制使用者的訪問許可權GRANT、REVOKE
操作資料夾(庫) #操作資料庫就是操作資料夾:
增
create database db1 charset utf8;
查
show create database db1;
show databases;
改(僅改字元編碼)
alter database db1 charset gbk;
刪
drop database db1;
操作檔案(表)
切換資料夾: use db1; 檢視當前所在資料夾:select database(); 增 create table t1(id int,name char); 查 show create table t1; show tables; desc t1; 改 alter table t1 modify name char(6); alter table t1 change name NAME char(7); 刪 drop table t1;
操作檔案內容(記錄):
增 insert t1(id,name) values(1,"egon"),(2,"egon2"),(3,"egon3"); 查 select id,name from db1.t1; select * from db1.t1; 改 update db1.t1 set name="SB"; #全部都改了 update db1.t1 set name="alex" where id=2; 刪 delete from t1; #全部刪除 delete from t1 where id=2;
部分知識點總結:
1.資料庫命名規則:
- 可以由字母,數字,下劃線及特殊符號組成;
- 字母區分大小寫;
- 不能重名,不能用關鍵字命名;
- 不能僅使用數字,且最長為128位。
2.如果在cmd輸入命令時候,輸入錯誤,可以使用\c跳出
3.如果在cmd輸入命令時候,輸入錯誤,且指令中帶有引號,需要用輸入引號和\c跳出;
4.\s檢視配置資訊