20141229 mysql基本操做一

捕獲333

捕獲3333

回顧

文件操做:包含文件夾和文件 php

文件夾操做:獲取路徑資源opendir,讀取資源數據readdir,釋放資源closedir,重置指針rewinddir mysql

取出全部文件:scandir redis

遞歸:函數內部本身調用本身(爲了解決與父問題相同的子問題) sql

遞歸點:何時調用函數本身,遍歷出來的文件是一個文件夾 mongodb

遞歸出口:何時終止函數調用,若是子文件是文件/若是整個文件夾遍歷結束都沒有子文件夾 數據庫

文件操做:PHP5和PHP5之前(fopen:代開;fgetc/fgets/fread:讀;fwrite/fputs:寫入;fclose:關閉) 編程

文件操做函數,文件下載 數組

1. 遍歷文件夾及其子目錄:全部的內容都讀入到數組 安全

2. 站點統計:輸出用戶訪問次數,第幾位訪客,最近的訪問時間 服務器

做業見代碼:homework1_dir_iterate.php/homework2_tongji.php

數據庫

知識體系

數據分爲三個階段

第一階段:SQL基礎,mysql的基礎知識,視圖,函數,觸發器,存儲過程,5+1+1

5天基礎+1天PHP+mysql編程+1PDO(面向對象)

第二階段:mysql優化,索引+分頁

第三階段:mysql部署,服務器集羣,讀寫分離,負載均衡

數據庫基本知識

1. 什麼是數據庫?

廣義:凡是可以存儲和處理數據的媒介(介質)都是數據庫

狹義:高效的存儲和處理數據的媒介

2. 數據庫分類

關係型數據庫:創建在關係模型上的數據庫。

關係模型:二維表,關係模型是經過關係數據結構,關係的操做指令和關係約束三部分組成。

關係型數據庫:維護實體內部的聯繫以及實體和實體之間的聯繫的數據庫(實體:天然界中存在的各類數據對象)

非關係型數據庫:全部不是關係型數據庫的數據庫都是非關係型數據庫

關係型數據庫與非關係型數據庫的區別

1. 運行的介質部同樣:關係型數據庫數據保存在磁盤,非關係型數據運行在內存

2. 效率區別:非關係型數據庫效率高

3. 安全區別:關係型數據庫安全

3. 數據庫產品

關係型數據庫:mysql,Oracle,DB2,SqlServer,access等

非關係型數據庫:memcache,mongodb,redis等

4. 數據庫名詞

數據:data,攜帶有用信息的字符

數據庫:database,存放數據的「倉庫」

數據庫管理系統:DBMS(database Management System),管理數據庫的系統

數據庫系統:DBS(database system) = DBMS + DB

數據庫管理員:DBA(Database Administrator),專門維護數據庫系統

關係型數據庫

維護數據的內部聯繫和數據與數據之間的關係。

關係型數據庫都是經過二維表來進行數據的維護的。

學員管理系統:學生,班級

學生:學號,姓名,性別,年齡

學號

姓名

性別

年齡

Itcast0001

華萃文

23

Itcast0002

陳麗玲

 

Itcast0003

潘市遠

20

維護的數據內部的關係

關係型數據庫:即使數據不存在,也要分配空間和位置來用於數據存放。比較浪費磁盤空間。

班級:班級號,教室

班級編號

教室

PHP141115

A814

PHP140815

A806

維護的數據內部的關係

班級與學生關係

學號

姓名

性別

年齡

班級編號

Itcast0001

華萃文

23

PHP141115

Itcast0002

陳麗玲

 

PHP141115

Itcast0003

潘市遠

20

PHP140815

維護實體與實體之間的關係

典型的關係型數據庫概念

行和記錄

行:row,行是從表的結構角度出發

記錄:record,記錄是從數據的角度出發

列和字段

列:column,結構角度

字段:field,數據角度

SQL:Structured Query Language,結構化的查詢語言,是據庫的編程語言

DDL:Data Define Language,數據定義語言,專門用於定義數據的存儲的結構,create

DML:Data Manipulation Language,數據操做語言,對數據進行增刪改查,

DQL:Data Query Language,數據查詢語言

DCL:Data Control Language,數據控制語言,控制用戶的權限,revoke等

mysql數據庫

mysql數據庫是一款c/s結構的軟件。意味着訪問服務器必須經過客戶端來實現。

假設:客戶端與服務端不在同一臺電腦上。(絕大部分的狀況如此)

操做數據庫的步驟:

1. 保證客戶端和服務端都已經運行,開始服務了。

wps228D.tmp

2. 運行客戶端:鏈接服務器。鏈接認證。

a) –h:host,主機地址,ip或者域名:-hlocalhost,能夠省略

b) –P:port,服務器的服務監聽端口:-P3306,能夠省略

c) –u:username,登陸服務器的用戶名:-uroot

d) –p:password,登陸服務器的密碼:-p

利用mysql.exe,須要藉助cmd環境才能運行

wps22BD.tmp

3. 準備SQL語句

4. 發送SQL語句給服務器

5. 服務器:接收SQL語句

6. 服務器:執行SQL語句

7. 服務器:將執行結果返回給客戶端

8. 客戶端:解析結果

9. 客戶端:顯示結果

wps22CE.tmp

10. 退出服務器:斷開鏈接

exit/quit/\q

wps22CF.tmp

mysql服務器對象

整個服務器就是一個DBS:數據庫系統

系統是由DBMS進行管理,管理DB,DB管理Table,表管理field

wps22DF.tmp

SQL基本操做

SQL基本操做分爲三類:庫操做,表操做(字段操做),數據操做

SQL基本操做:CRUD

C:Create,新增

R:Read/Retrive,讀取

U:Update,更新

D:delete/Drop,刪除

庫操做

新增庫

create database 數據庫名字 [庫選項];

庫選項:設置字符集和校對集

charset/character set:字符集,utf8/gbk/gb2312,表示當前數據庫內的數據按照指定的字符集進行存儲

collate:校對集,比較字符的大小的規範,校對集依賴字符集

wps22E0.tmp

當以上語句執行的時候,系統發生了以下改變

1. 系統內部建立一個叫作my_data1數據庫名字的數據庫,字符集是utf8

2. 系統在服務器存儲數據的位置建立一個叫作my_data1的文件夾

my.ini中查看數據存儲目錄

wps22E1.tmp

文件建立

wps22F2.tmp

3. 文件夾內部有一個opt文件:記住了當前數據庫的庫選項

wps22F3.tmp

數據庫命名規範

1. 採用字母下劃線和數字構成,一般建議使用英文單詞配合下劃線

2. 數據庫名字不可以直接使用關鍵字

wps22F4.tmp

3. 不能直接使用中文做爲數據庫名字。若是要使用關鍵字或者中文,對名字使用反引號

反引號:鍵盤左上角1鍵左邊的鍵在英文狀態的輸出

wps2305.tmp

中文須要先設定字符集

wps2306.tmp

中文數據庫在操做系統下使用十六進制命名,並非中文

wps2316.tmp

注意:不建議使用中文做爲數據庫名字,關鍵字也不建議,保留字也同樣

查看庫

語法1:查看全部

show databases;

wps2317.tmp

語法2:查看部分相關數據庫,使用匹配模式:%和_

show databases like ‘pattern’;

%:表明匹配任意長度的任意字符

_:匹配一個長度的字符

wps2318.tmp

語法3:查看數據庫的建立語句:不是指 的用戶建立的時候自定義的SQL語句,而是系統執行的時候,內部整理後的SQL語句

show create database 數據庫名字;

wps2329.tmp

修改庫

修改數據庫不可以修改數據庫名字

修改數據庫只能修改庫選項

語法:修改結構的語法都是alter

alter database 數據庫名字 要修改的庫選項; -- 通常用於修改字符集

wps232A.tmp

雖然只修改了字符集,可是校對集也被修改

wps233A.tmp

刪除庫

刪除指定的數據庫,只能一個一個的刪除,刪除數據庫會連帶的將數據庫內部的全部數據表都刪除。(慎用)

語法:全部的結構刪除都使用drop

drop database 數據庫名字;

wps233B.tmp

執行刪除語句以後,發生了什麼?

1. 數據庫不存在了

2. 數據庫對應的文件夾也被刪除了

wps234C.tmp

表操做

對數據表的增刪改查,以及表中的字段的操做。

數據表不能脫離字段,字段不能獨立存在。

SQL是一種強類型語言,全部的字段都必須指定數據類型

增長表

語法

create table 表名(

字段名1 字段類型, -- 字段與字段之間使用逗號分隔

字段名N 字段類型 – 最後一個字段不須要逗號

) [表選項];

表選項:設置字符集和存儲引擎

字符集:表中數據存儲的字符集,能夠與數據庫的不一致

存儲引擎:engine,數據的存儲方式,默認的是InnoDB,低版本的myisam

wps234D.tmp

錯誤:數據表是由數據庫來管理,因此必須先指定數據庫

如何指定數據庫?

1. 顯示指定數據庫:在建立表的表名前面使用數據庫名字.表名

wps234E.tmp

2. 隱式的指定數據庫:事先進入到數據庫環境,再建立表時,默認的使用當前數據庫

語法:use 數據庫名字;

wps235F.tmp

innodb和myisam的區別

1. 兩種存儲引擎結構有區別

wps2360.tmp

InnoDB的數據和索引都在外部的ibdata1文件中

查詢表

查看錶以及結構,與數據庫的查看基本一致

語法1:查看全部表

show tables;

wps2370.tmp

語法2:查看錶的建立語句

show create table 表名;

wps2371.tmp

語法3:查看錶的結構(字段)

desc/describe/show columns from 表名;

wps2372.tmp

相關文章
相關標籤/搜索