2019-07-08

什么是數(shù)據(jù)庫?

- 數(shù)據(jù)庫(database):存儲數(shù)據(jù)的倉庫
- 高效的存儲和處理數(shù)據(jù)的介質(zhì)(介質(zhì)主要是兩種:磁盤和內(nèi)存)

數(shù)據(jù)庫的分類:

基于存儲介質(zhì)的不同:分為關(guān)系型數(shù)據(jù)庫(sql)和非關(guān)系型數(shù)據(jù)庫(nosql:not only sql)

不同數(shù)據(jù)庫陣營的產(chǎn)品:

關(guān)系型數(shù)據(jù)庫:
    大型:Oracle,DB2
    中型:SQL Server,MYSQL
    小型:Acces0s等
非關(guān)系型數(shù)據(jù)庫:
    Memcached,MongoDB,Redis

兩種
數(shù)據(jù)庫陣營的區(qū)別:

關(guān)系型數(shù)據(jù)庫:安全(保存磁盤,基本不可能丟失),容易理解,比較浪費空間(二維表)
非關(guān)系型數(shù)據(jù)庫:效率高,不安全(斷電丟失)

什么是關(guān)系型數(shù)據(jù)庫?

- 是一種建立在關(guān)系模型(數(shù)學(xué)模型)上的數(shù)據(jù)庫
- 關(guān)系模型:一種所謂建立在關(guān)系上的模型
- 關(guān)系模型包含三個方面:
    數(shù)據(jù)結(jié)構(gòu):用于解決數(shù)據(jù)庫存儲的問題,二維表(有行和列)
    操作指令集合:所有sql語句
    完整性約束:表內(nèi)數(shù)據(jù)約束(字段與字段),表與表之間約束(外鍵)
表是由表頭和數(shù)據(jù)部分組成

表頭:即字段名,用來規(guī)定數(shù)據(jù)的名字
數(shù)據(jù)部分:實際存儲的數(shù)據(jù)單元

關(guān)系型數(shù)據(jù)庫,需要維護(hù)實體內(nèi)部,實體與實體之間的聯(lián)系

如果表中對應(yīng)的某個字段沒有值(數(shù)據(jù)),但是系統(tǒng)依然要分配空間,所以說關(guān)系型數(shù)據(jù)庫比較浪費空間。

關(guān)鍵字說明

數(shù)據(jù)庫:Database
數(shù)據(jù)庫系統(tǒng):DBS(Database System):是一種虛擬系統(tǒng),將多種內(nèi)容關(guān)聯(lián)起來的稱呼
    DBS = DBMS + DB
        DBMS:Database Management System,數(shù)據(jù)庫管理系統(tǒng),專門管理數(shù)據(jù)庫
        DBA:  Database Administrator,數(shù)據(jù)庫管理員
行/記錄:row/record
列/字段:column/field

···········

SQL

- SQL:(Structured   Query Language,結(jié)構(gòu)化查詢語言)
- SQL分為三個部分:
    DDL:(Data Definition Language,數(shù)據(jù)定義語言)用來維護(hù)存儲數(shù)據(jù)的結(jié)構(gòu)(數(shù)據(jù)庫,表),代表指令:create,drop,alter等
    DML:(Data Manipulation Language,數(shù)據(jù)操作語言)用來對數(shù)據(jù)進(jìn)行操作(數(shù)據(jù)表中的內(nèi)容),代表指令:一個分類;DQL(Data Query Language,數(shù)據(jù)查詢語言)如select
    DCL:(Data Control Language,數(shù)據(jù)控制語言)主要是負(fù)責(zé)權(quán)限管理(用戶),代表指令:grant,revoke等

···········

交互方式

1. 客戶端連接認(rèn)證:連接服務(wù)器,認(rèn)證身份(mysql.exe -hPup)
2.客戶端發(fā)送SQL指令
3.服務(wù)器接收SQL指令,并處理SQL指令,返回操作結(jié)果
4.客戶端接收結(jié)果,并顯示結(jié)果
5.斷開連接:釋放資源,因為服務(wù)器有并發(fā)限制

············

MySQL服務(wù)器對象

Mysql服務(wù)器內(nèi)部對象分為四層:
系統(tǒng)(DBMS)
數(shù)據(jù)庫(DB)
數(shù)據(jù)表(Table)
字段(Field)
···············

SQL基本操作

將SQL的基本操作根據(jù)操作對象進(jìn)行分類,分為三類:
庫操作
表操作(包含字段操作)
數(shù)據(jù)操作
···········

庫操作

新增數(shù)據(jù)庫
create database 數(shù)據(jù)庫名字[庫選項];
- 庫選項:用來約束數(shù)據(jù)庫,分為兩個選項
    字符集設(shè)定:charset/character set 具體字符集(數(shù)據(jù)存儲的編碼格式,常用的有:GBK和UTF8)
    校對集設(shè)定:collate具體校對集(數(shù)據(jù)比較的規(guī)則)
- 數(shù)據(jù)庫名字不能用關(guān)鍵字(已經(jīng)被系統(tǒng)使用的字符)或者保留字(將來系統(tǒng)可能會用到的字符)
創(chuàng)建結(jié)果:
- 在數(shù)據(jù)庫系統(tǒng)中,增加了對應(yīng)的數(shù)據(jù)庫信息
- 會在保存數(shù)據(jù)的文件夾下(Data目錄),創(chuàng)建一個對應(yīng)數(shù)據(jù)庫名字的文件夾
- 每個數(shù)據(jù)庫下都有一個opt文件,保存了庫選項
查看數(shù)據(jù)庫

查看所有數(shù)據(jù)庫:

show database;

查看指定部分的數(shù)據(jù)庫(模糊查詢):

show database like 'pattern';
- pattern是匹配模式
- %表示匹配多個字符
- _表示匹配單個字符

查看數(shù)據(jù)庫的創(chuàng)建語句:

show create database 數(shù)據(jù)庫名字;

例:

-- 注釋 (單行注釋),也可以使用#號

-- 創(chuàng)建數(shù)據(jù)庫
create database mydatabase
charset utf8;

create database database
charset utf8;

-- 創(chuàng)建中文數(shù)據(jù)庫
create database 中國 charset utf8;
create database `中國` charset utf8;

-- 中文字符集
set names gbk;

-- 查看所有數(shù)據(jù)庫
show database;

-- 創(chuàng)建數(shù)據(jù)庫
create database informationtest
charset utf8;

-- 查看以information_開始的數(shù)據(jù)庫(_需要被轉(zhuǎn)義)
show database like 'information_';

-- 相當(dāng)于information%
show database like 'information\_%';

-- 查看數(shù)據(jù)庫的創(chuàng)建語句
show create database mydatabase;
show create database `database`;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)庫 MySQL數(shù)據(jù)庫的基本操作(增刪改查)高級操作視圖備份和還原事務(wù)觸發(fā)器函數(shù)存儲過程 什么是數(shù)據(jù)庫?數(shù)據(jù)庫(...
    CC__XX閱讀 96評論 0 0
  • 多路復(fù)用的作用? 1、阻塞 I/O 只能阻塞一個 I/O 操作,而 I/O 復(fù)用模型能夠阻塞多個 I/O 操作,所...
    關(guān)若飛閱讀 255評論 0 0
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫的分類: 不同數(shù)據(jù)庫陣營的產(chǎn)品: 兩種數(shù)據(jù)庫陣營的區(qū)別: 什么是關(guān)系型數(shù)據(jù)庫? 表是由表頭和...
    按時發(fā)瘋閱讀 150評論 0 0
  • java實訓(xùn)第一天 在今天學(xué)習(xí)了PowerDesigner來繪畫數(shù)據(jù)庫的E-R圖 而且使用了jdbc的方式來連接數(shù)...
    義無反顧00閱讀 125評論 0 0
  • 了解了部分跟帖平臺,覺得只有網(wǎng)易云跟帖的界面看上去好看一些,界面簡約大氣。網(wǎng)上這塊介紹幾乎沒有怎么介紹,可能太簡單...
    lyyiqo閱讀 950評論 0 1