MySQL基礎
一、理解資料庫及其作用
1、資料庫的五個基本單位
資料庫伺服器、資料庫、資料表、資料欄位、資料行。
2、詳解這五個基本單位
1)資料庫伺服器。是指用來執行資料庫服務的一臺電腦。在中小型企業通常為一臺。在資料儲存量計算量很大的時候可以存在多臺。多臺資料庫伺服器共同來儲存或計算。由於資料安全非常重要,我們經常會對資料庫伺服器裡面的資料進經備份。
2)資料庫。一個數據庫伺服器裡面有可以有多個數據庫。主要用來分類使用。我們可以建立交通訊息資料庫、遊戲資料庫、酒店開房資料庫... ... 主要用來將各個不同用途的資料,按照業務進行大塊的劃分。
3)資料表。例如在遊戲資料庫中。根據這一款遊戲又分為了不同的資料表。專門用來區分遊戲不同的資料。例如:使用者資料(使用者、密碼);人物資料;所有裝備和裝備資訊;使用者的充值資訊;藥品、魔力藥水資訊... ...等
4)資料欄位,也叫資料列。就是我們日常所見表格裡面的列。在表格中,我們會將一張使用者表分成多個列。如下(表一)所示:使用者編號、使用者名稱、性別、年齡是欄位。在真正的資料庫中資料欄位需要換成英文需要寫成:id、username、sex、age。
5)資料行。真正的資料存在每一個表的行裡面。欄位(列)劃分出來了一個表應該按照什麼樣的格式存資料。而行,是真正的資料。每一行需要遵循資料欄位(列)的規範和要求進行存入資料。
3、資料表之間的關係(主鍵、外來鍵)
一對一、一對多、多對多。
同一個資料庫中,有多張表,這些表之間往往是具有著某種對應關係的。
4、MySQL安裝教程
MySQL是跨平臺的伺服器,windows作業系統下的使用與linux下的使用幾乎一模一樣。
1)百度搜尋關鍵詞:mysql server下載
2)訪問官網下載:ofollow,noindex">http://dev.mysql.com/downloads/mysql/
二、SQL 初識
SQL是操作資料庫的核心,也是本章開始的一句話:MySQL對於PHP程式員來說就是將業務轉化成表結構。做好業務中的增、刪、改、查。
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。
SQL是最重要的關係資料庫操作語言,並且它的影響已經超出資料庫領域,得到其他領域的重視和採用,如人工智慧領域的資料檢索等。
雖然各個資料庫系統略有不同,但是他們基本均遵循SQL 92標準。或者在SQL 92上做了一些簡單的擴充套件和變化。學好了MySQL 的SQL 語法,其他的SQL語法學習起來均是萬變不離其宗。
SQL語句的三大功能分類SQL語句按照其功能範圍不同可分為3各類別:
1)資料定義語言(DDL ,Data Defintion Language)語句:資料定義語句,用於定義不同的資料段、資料庫、表、列、索引等。常用的語句關鍵字包括create、drop、alter等。
2)資料操作語言(DML , Data Manipulation Language)語句:資料操縱語句,用於新增、刪除、更新和查詢資料庫記錄,並檢查資料的完整性。常用的語句關鍵字主要包括insert、delete、update和select等。
3)資料控制語言(DCL, Data Control Language)語句:資料控制語句,用於控制不同資料段直接的許可和訪問級別的語句。這些語句定義了資料庫、表、欄位、使用者的訪問許可權和安全級別。主要的語句關鍵字包括grant、revoke等。
三、資料庫/表/欄位操作
連線資料庫伺服器
mysql -h localhost -u root -p (連線本地資料,-h localhost 可省略; 沒有密碼時,-p可省略。)
建立資料庫 / 刪除資料庫
CREATE DATABASE 資料庫名; (如果資料已存在,會提示錯誤。) DROP DATABASE 資料庫名; (【切記】注:資料庫刪除後,下面的所有資料都會全部刪除,所以刪除前一定要慎重並做好相應的備份。)
顯示全部的資料庫
show databases;
選中並進入某個資料庫
use 資料庫名; (使用 use 語句隨時隨地的切換要操作的資料庫)
檢視當前資料庫中的表
show tables; (顯示當前資料庫下所有的表)
建立資料表:CREATE TABLE表名(欄位名1 欄位型別, ....欄位名n 欄位型別n);
CREATE TABLE user(username varchar(20), password varchar(32));
檢視資料表的表結構
desc 資料表名;
檢視建立某個資料表所用的SQL語句
SHOW CREATE TABLE 資料表名 \G;(“\G”選項的含義是使得記錄能夠按照欄位豎著排列,對於內 容比較長的記錄更易於顯示。)
刪除資料表
DROP TABLE 資料表名;(刪除表。表和資料均會丟失,請勿必刪除重要表之前備份資料。)
指定資料表的表引擎和字符集:在建立表時,我們常用MyISAM或者InnoDB引擎。
指定表引擎,語法: ENGINE=InnoDB; 指定表預設字符集,語法: DEFAULT CHARSET=utf8;
建立資料表的完整語法
CREATE TABLE 資料表名 (欄位名1 欄位型別,欄位名2 欄位型別, ... 欄位名n 欄位型別 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
修改欄位名、修改欄位型別
修改欄位名: alter table 表名 change 欄位原名 欄位新名 欄位型別; 修改欄位型別: alter table 表名 modify 欄位名 varchar(20); (把指定的欄位改成了 varchar(20)型別。)
向資料表中增加新的欄位
語法1: alter table 表名 add column 欄位名 型別; (預設新增的欄位在最後一列。) 語法2: alter table 表名 add 欄位名2 欄位型別 after 欄位名1; (建立新的欄位2,同時讓它排在欄位1之後。)
刪除一個欄位
alter table 表名 drop column 欄位名;
修改欄位的排列順序:
1)在增加欄位語句和修改欄位語句(add / change / modify)的後面,都可以加一個可選項 first | after 以調整當前欄位的順序。
2)使用modify調整順序:舉例 alter table user modify email varchar(60) first; (它把 email欄位放在了第一個位置。)
修改資料表的名字
alter table 舊錶名 rename 新表名;
檢視到當前伺服器支援的所有引擎
show engines;
四、增刪改查(資料操作)
向表中插入資料
語法1: insert into 表 values(值1,值2,值n); 語法2: insert into 表(欄位1,欄位2,欄位n) values(值1,值2,值n);
從表中查詢資料:
查詢所有資料: select * from 表; (”*” 是一種正則表示式的寫法,表示查詢所有欄位的值。) 指定欄位查詢: select 欄位1,欄位2,...欄位n from 表; (一次可以查一個或多個欄位的值。) 查詢單個欄位中“值”不重複的記錄: select distinct 欄位名 deptno from 表名; 條件查詢: select 欄位 from 表 where where 條件; 對查詢結果進行排序: select 欄位 from 表 order by 欄位 排序關鍵詞; 多個條件的結果排序: select 欄位 from 表 order by 欄位1 排序關鍵詞,... ...欄位n 排序關鍵詞; 限制查詢的數量: select 欄位 from 表 limit 數量; 在指定區間中進行查詢: select 欄位 from 表 limit 偏移量,數量; 對查詢資料進行統計: select 函式(欄位) from 表; 對查詢結果進行分組: select * from 表 group by 欄位;
多表聯合查詢
更新表中的一條資料
語法:update 表名 set 欄位1=值1,欄位2=值2,欄位n=值n where 條件;
從表中刪除資料
語法:DELETE FROM 表 [where 條件];
刪除表中所有的資料
TRUNCATE TABLE 表名;
完!!!