第十五章 MySQL 資料庫

水之原發表於2014-04-23

學習要點:
1.Web 資料庫概述
2.MySQL 的操作
3.MySQL 常用函式
4.SQL 語句詳解
5.phpMyadmin

 

一.Web資料庫概述

  現在,我們已經熟悉了PHP 的基礎知識,這是我們想暫時離開PHP 一章,來重點介紹
一下關係型資料庫,讓大家瞭解資料庫比檔案儲存的有點。這些優點包括:
1.關係型資料庫比普通檔案的資料訪問速度更快。
2.關係型資料庫更容易查閱並提取滿足特定條件的資料。
3.關係型資料庫更具有專門的內建機制處理併發訪問,作為程式設計師,不需要為此擔心。
4.關係型資料庫可以提供對資料的隨即訪問。
5.關係型資料庫具有內建的許可權系統。

 

關聯式資料庫的概念
  至今為止,關聯式資料庫是最常用的資料庫型別。在關係代數方面,它們具有很好的理論
基礎。當使用關聯式資料庫的時候,並不需要了解關係理論(這是一件好事),但是還是需要
理解一些關於資料庫的基本概念。

1)表格
  關聯式資料庫由關係組成,這些關係通常稱為表格。顧名思義,一個關係就是一個資料的
表格。電子資料表就是一種表格。

2)列
  表中的每一列都有惟一的名稱,包含不同的資料。此外,每一列都有一個相關的資料類
型。
3)行
  表中的每一行代表一個客戶。每一行具有相同的格式,因而也具有相同的屬性。行也成
為記錄。
4)值

  每一行由對應每一列的單個值組成。每個值必須與該列定義的資料型別相同。
5)鍵
  每一條資料所對應的唯一的標識。
6)模式
  資料庫整套表格的完整設計成為資料庫的模式。
7)關係
  外來鍵標識兩個表格資料的關係。
  如何設計Web 資料庫
  1)考慮要建模的實際物件。
  2)避免儲存冗餘資料。
  3)使用原子列值(對每一行的每個屬性只儲存一個資料。)
  4)選擇有意義的鍵。
  5)考慮需要詢問資料庫的問題。
  6)避免多個空屬性的設計


Web 資料庫架構
瀏覽器和Web 伺服器之間的通訊:

瀏覽器和PHP&MySQL 伺服器之間的通訊

1)使用者的Web 瀏覽器發出HTTP 請求,請求特定Web 頁面。
2)Web 伺服器收到.php 的請求獲取該檔案,並將它傳到PHP 引擎,要求它處理。
3)PHP 引擎開始解析指令碼。指令碼中有一條連線資料庫的命令,還有執行一個查詢的命令。
PHP 開啟通向MYSQL 資料庫的連線,傳送適當的查詢。
4)MYSQL 伺服器接收資料庫查詢並處理。將結果返回到PHP 引擎。
5)PHP 以你去哪幹完成指令碼執行,通常,這包括將查詢結果格式化成HTML 格式。然
後再輸出HTML 返回到Web 伺服器。
6)Web 伺服器將HTML 傳送到瀏覽器。

 

二.MySQL操作

登入到MySQL
1)開啟MySQL Command Line Client
2)輸入root 的設定密碼

MySQL 常規命令

1)顯示當前資料庫的版本號和日期。
  SELECT VERSION(),CURRENT_DATE();
2)通過AS 關鍵字設定欄位名。
  SELECT VERSION() AS version; //可設定中文,通過單引號
3)通過SELECT 執行返回計算結果
  SELECT (20+5)*4;
4)通過多行實現資料庫的使用者和日期
  >SELECT
  >USER()
  >,
  >NOW()
  >;
5)通過一行顯示資料庫使用者和日期
  >SELECT USER();SELECT NOW();
6)命令的取消
  >\c
7)MySQL 視窗的退出
  >exit;

 

MySQL 常用資料型別

整數型:TINYINT,SMALLINT,INT,BIGINT
浮點型:FLOAT,DOUBLE,DECIMAL(M,D)
字元型:CHAR,VARCHAR
日期型:DATETIME,DATE,TIMESTAMP
備註型:TINYTEXT,TEXT,LONGTEXT

 

MySQL 資料庫操作
1)顯示當前存在的資料庫
  >SHOW DATABASES;
2)選擇你所需要的資料庫
  >USE guest;
3)檢視當前所選擇的資料庫
  >SELECT DATABASE();
4)檢視一張表的所有內容
  >SELECT * FROM guest; //可以先通過SHOW TABLES;來檢視有多少張表
5)根據資料庫設定中文編碼
  >SET NAMES gbk; //set names utf8;
6)建立一個資料庫

  >CREATE DATABASE book;
7)在資料庫裡建立一張表
  >CREATE TABLE users (
  >username VARCHAR(20), //NOT NULL 設定不允許為空
  >sex CHAR(1),
  >birth DATETIME);
8)顯示錶的結構
  >DESCIRBE users;
9)給表插入一條資料
  >INSERT INTO users (username,sex,birth) VALUES ('Lee','x',NOW());
10)篩選指定的資料
  > SELECT * FROM users WHERE username = 'Lee';
11)修改指定的資料
  >UPDATE users SET sex = '男' WHERE username='Lee';
12)刪除指定的資料
  > DELETE FROM users WHERE username='Lee';
13)按指定的資料排序
  > SELECT * FROM users ORDER BY birth DESC; //正序
14)刪除指定的表
  >DROP TABLE users;
15)刪除指定的資料庫
  >DROP DATABASE book;

 

三.MySQL常用函式

 

四.SQL語句詳解

1.建立一個班級資料庫school,裡面包含一張班級表grade,包含編號(id)、姓名(name)、
郵件(email)、評分(point)、註冊日期(regdate)。
mysql>CREATE DATABASE school; //建立一個資料庫
mysql> CREATE TABLE grade (
  //UNSIGNED 表示無符號,TINYINT(2) 無符號整數0-99,NOT NULL 表示不能為
空,AUTO_INCREMENT 表示從1 開始沒增加一個欄位,累計一位
  -> id TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  -> name VARCHAR(20) NOT NULL,
  -> email VARCHAR(40),
  -> point TINYINT(3) UNSIGNED NOT NULL,
  -> regdate DATETIME NOT NULL,
  -> PRIMARY KEY (id) //表示id 為主鍵,讓id 值唯一,不得重複。
  -> );

2.給這個班級表grade 新增5-10 條學員記錄
mysql> INSERT INTO grade (name,email,point,regdate) VALUES
('Lee','yc60.com@gmail.com',95,NOW());

3.檢視班級所有欄位的記錄,檢視班級id,name,email 的記錄
mysql> SELECT * FROM grade;

mysql> SELECT id,name,email FROM grade;

4.姓名等於'Lee'的學員,成績大於90 分的學員,郵件不為空的成員,70-90 之間的成員
  mysql> SELECT * FROM grade WHERE name='Lee';
  mysql> SELECT * FROM grade WHERE point>90;
  mysql> SELECT * FROM grade WHERE email IS NOT NULL;
  mysql> SELECT * FROM grade WHERE point BETWEEN 70 AND 90;
  mysql> SELECT * FROM grade WHERE point IN (95,82,78);
5.查詢郵件使用163 的學員,不包含yc60.com 字串的學員
  mysql> SELECT * FROM grade WHERE email LIKE '%163.com';
  mysql> SELECT * FROM grade WHERE email NOT LIKE '%yc60.com%';
6.按照學員註冊日期的倒序排序,按照分數的正序排序
  mysql> SELECT * FROM grade ORDER BY regdate DESC;
  mysql> SELECT * FROM grade ORDER BY point ASC;
7.只顯示前三條學員的資料,從第3 條資料開始顯示2 條
  mysql> SELECT * FROM grade LIMIT 3;
  mysql> SELECT * FROM grade LIMIT 2,2;
8.修改姓名為'Lee'的電子郵件
  mysql> UPDATE grade SET email='yc60.com@163.com' WHERE name='Lee';

9.刪除編號為4 的學員資料
  mysql> DELETE FROM grade WHERE id=4;

 

10.過一遍以上的分組函式
    略。
11.檢查這個表的資訊
  mysql> SHOW TABLE STATUS \G;
12.優化一張表
  mysql> OPTIMIZE TABLE grade;

 

五.PhpMyAdmin

phpMyAdmin(簡稱PMA)是一個用PHP 編寫的,可以通過網際網路線上控制和操作
MySQL。他是眾多MySQL 管理員和網站管理員的首選資料庫維護工具,通過phpMyAdmin
可以完全對MySQL 資料庫進行操作。


建立資料庫scholl
建立一個資料庫->選擇utf8 字符集


匯出另一個資料庫SQL
1.選擇另一個資料庫->匯出
2.選擇需要匯出的表->全選
3.選擇Add DROP TABLE / DROP VIEW (基本表一旦刪除,表中的資料以及相應建立
的索引和檢視都將自動被刪除)
4.選擇另存為檔案
5.選擇執行,儲存sql 檔案


匯入資料庫
1.選擇被匯入的資料庫
2.選擇Import(匯入),選擇sql 檔案

3.執行即可

 

 

重建表
1.找到sql 檔案中的剛才輸出的建表語句.
2.複製建表語句
3.然後選擇sql,選擇貼上,執行即可


修復資料表
1.選擇要修復的表
2.在選中項中,選擇修復表,即可


優化資料表
1.選擇要優化的表
2.在選中項中,選擇優化表,即可


修改,刪除,插入表記錄

執行SQL 語句

 

 注:文章出自李炎恢PHP視訊教程,本文僅限交流使用,不得用於商業用途,否則後果自負。

相關文章