資料庫本質是一款基於網路通訊的應用程式,用於儲存和管理資料的倉庫。
資料庫實現了:資料統一存放且格式固定,即資料存放於服務端的特定位置,所有客戶端都必須去該位置運算元據。
資料庫主要分為兩類:關係型資料庫和非關係型資料庫。
關係型資料庫:
資料之間彼此有約束或聯絡;
通常以**的形式儲存資料,字段可以限制儲存資料的型別。
代表:mysql,oracle,access,sql server,sqlite
非關係型資料庫
通常以鍵值對的形式儲存資料;
速度比較快,可用於資料快取;
代表:mongodb (最像關係型資料庫的非關係型資料庫), redis,memcache
2.1 重要概念
名稱模擬
庫資料夾表檔案
記錄**檔案內每一行資料
表頭**檔案的開頭部分,一般是第一行字段
字段欄位名 + 字段型別
表單檔案中表頭以外的資料
2.2 服務端和客戶端
mysql/bin目錄下
服務端:mysqld.exe (mysql daemon,監聽3306埠)
客戶端:mysql.exe
啟動服務端
c:\mysql\bin>mysqld
啟動客戶端連線本地服務端
c:\mysql\bin>mysql -h 127.0.0.1 -p 3306 -uroot -p
簡寫,可以省略ip位址和埠號
c:\mysql\bin>mysql -uroot -p
常用的埠號
mysql:3306
redis:6379
mongodb:27017
django:8000
flask:5000
tomcat:8080
第一次以管理員使用者root登入,預設沒有密碼;
退出mysql可以使用命令 quit 或者 exit,不需要分號;
連線服務端時如果僅輸入mysql,是以遊客模式登入,不是以管理員使用者登入,因此可以使用的功能有限;
程序相關
檢視當前具體程序
tasklist
tasklist |findstr mysqld
殺死程序,要以管理員身份登入cmd。
taskkill /f /pid [pid號]
服務相關
需要以管理員身份執行cmd
建立mysqld.exe服務
c:\mysql\bin>mysqld --install
移除mysqld.exe服務
c:\mysql\bin>mysqld --remove
mysql中的sql語句是以分號作為一條語句的結束標準;
可以在語句結尾新增 \c 來放棄執行本語句,此時不需要分號。
3.1 基本命令
檢視所有的資料庫名稱
show databases;
+--------------------
+| database |
+--------------------
+| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------
+4 rows in set
(0.00 sec)
在mysql主目錄下的data資料夾中,預設有三個資料夾,分別為mysql,performance_schema,test,與上面輸出的後三個相對應,而information_schema是用於儲存mysql伺服器所維護的所有其它資料庫的資訊。
修改密碼,在cmd中輸入
c:\mysql\bin>mysqladmin -uroot -p[原密碼] password[新密碼]
破解密碼
方法:繞過使用者名稱和密碼認證
首先關閉mysql服務端;
然後以跳過授權表的方式啟動mysql服務端;
c:\mysql\bin>mysqld --skip-grant-tables
此時登入客戶端不需要輸入密碼;
c:\mysql\bin>mysql -uroot -p
重置當前使用者的密碼;
update mysql.user set password=password(
[新密碼]
) where user='root' and host='localhost'
;
立刻將資料從記憶體刷到硬碟;
flush privileges;
最後需要關閉服務端,以正常校驗授權表的形式重新啟動服務端。
3.2 修改配置檔案
mysql預設的配置檔案是 my-default.ini,程式啟動時會載入配置檔案中的設定,這個配置檔案不可修改。
自定義配置需要新建配置檔案my.ini。
[mysqld]
# 服務端啟動時載入的配置
[mysql]
# 客服端啟動時載入的配置
[client]
# 其它程式語言編寫的客戶端啟動時載入的配置
例如,統一字元編碼為utf-8,並且實現在客戶端管理員不需要使用者名稱密碼自動登入。
[mysqld]
character-
set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-
set=utf8
[mysql]
default-character-
set=utf8
user="root"
password=123456
配置完成後需要重啟mysql服務端和客戶端。
4.1 庫
增
create database db1;
create database db2 charset='gbk'
查
show databases;
show create database db2;
改
alter database db2 charset='utf8'
;
刪
drop database db2;
4.2 表
檢視當前所在庫的名字
select database(
);
切換庫
use db1;
增
create table t1(id int, name char(4));
create table db2.t1(id int, name char(4)
);
查
show tables;
show create table t1;
describe t1;
desc t1;
改
alter table t1 modify name char(16)
;
刪
drop table t1;
4.3 資料
增
insert into t1 values(1,
'tom');
insert into t1 values(2,
'mary'),
(3,'ben'
);
查
select
*from t1;
select id, name from t1;
改
update t1 set name='jean' where id = 2;
刪
delete from t1 where id > 1;
NoSQL資料庫介紹(1)
最近看了一些英文文件,其中有一篇把分布式系統和第一代nosql的大背景介紹得很清楚,雖然文件本身是10年寫的,而且沒有介紹某種特定nosql資料庫的使用,但很多思想性的東西到今天看都非常有價值,於是決定翻譯一下,翻譯中的各種bug請各位指出。原文可以在 找到。另外由於工作量浩大 原始文件有140多頁...
MySQL1 資料庫MySQL的簡單的介紹與安裝
1.mysql 計算機 二進位制資料 2.2 資料如何儲存?賬號密碼該怎麼儲存?能存到excel?可以存.會有什麼問題?安全。儲存限制。2.3 資料庫管理系統 dbms rdbms 關係型資料庫 oracle mysql mssql pgnosql 非關係型資料庫 mongodb esredis 雲...
MySQL資料庫引擎介紹
如果你是個賽車手,並且按一下按鈕就能夠立即更換引擎而不需要把車開到車庫裡去換,那會是什麼感覺呢?mysql資料庫為開發人員所做的就好像是按按鈕換引擎 它讓你選擇資料庫引擎,並給你一條簡單的途徑來切換它。mysql的自帶引擎肯定是夠用了,但是在有些情況下,其他的引擎可能要比手頭所用更適合完成任務。如果...