MySQL數據庫介紹


1.數據的存儲形式

  內存/文件/第三方服務器/數據庫服務器

2.什么是數據庫

  數據庫是按照一定的形式來組織,存儲數據,目的是為了對數據操作——增刪改查

 (1)數據庫發展歷史

  網狀數據庫->層次型數據庫->關系型數據庫->非關系型數據庫

 (2)關系型數據庫邏輯結構

Server->Database->Table-> Row->Column

服務器 -> 數據庫-> 數據表 ->行 -> 列

 

3.MySQL數據庫

 Oracle:  MySQL

 Martin:  MariaDB

 XAMPP

服務器套裝,包含有多款服務器軟件mysql、apache

https://www.apachefriends.org/download.html

 (1)MySQL部署結構

  服務器端:負責存儲/維護數據 —— 銀行服務器機房

    C:/xampp/mysql/bin/mysqld.exe   啟動文件

     確保端口3306不被占用

  客戶端:負責連接數據庫,並發起增刪改查——ATM機

    C:/xampp/mysql/bin/mysql.exe  客戶端工具

 (2)使用客戶端連接服務器端(結尾不能使用分號)

   mysql.exe  -h127.0.0.1  -P3306  -uroot  -p

    -h  host   服務器的域名/IP地址

    -P  port   端口號

    -u  user   用戶名

    -p  password  密碼

   mysql  -uroot   簡寫形式

4.mysql常用管理命令(必須以分號結尾)

  show databases;  顯示服務器上當前所有的數據庫     

  quit;  退出連接

  use  數據庫名;  進入指定的數據庫

  show  tables;  顯示當前數據庫中所有的數據表

  desc  表名稱;  描述表中有哪些列(表頭)

 

5.SQL命令

 SQL: Stuctured Query Language,結構化查詢語言,用於操作關系型數據庫服務器

 SQL命令的兩種執行方式

  (1)交互模式:客戶端輸入一行,點擊回車,服務器端執行一行,適用於臨時性的查看數據。

  (2)腳本模式: 把要執行的多行SQL命令寫在一個腳本文件中,一次性的提交給服務器執行,適用於批量的操作數據。

    mysql  -uroot < C:/xampp/…../01.sql   回車

SQL語法規范

 (1)一條SQL語句可以跨越多行,以英文的分號結尾。

 (2)假如某一條語句出現語法錯誤,則此條語句以及后邊所有的語句不會再執行。

 (3)SQL命令不區分大小寫,習慣上數據庫關鍵字用大寫,非關鍵字用小寫。

 (4)SQL命令可以使用單行注釋(#...)和多行注釋(/*…*/),注釋的內容不會被服務器所執行

 常用的SQL命令

 (1)丟棄指定的數據庫,如果存在的話

  DROP  DATABASE  IF  EXISTS  jd;

 (2)創建新的數據庫

  CREATE  DATABASE  jd;

 (3)進入創建的數據庫

  USE  jd;

 (4)創建保存數據的表

  CREATE  TABLE  student(

    sid  INT,

    name  VARCHAR(8),

    sex  VARCHAR(1),

    score  INT

  );

 (5)插入數據

  INSERT  INTO  student  

  VALUES(‘1’,’tom’,’M’,’87’);

 (6)查詢數據

  SELECT  *  FROM  student;

6.常用SQL命令

  (1)更改數據   

  UPDATE  user  SET

upwd=’888888’,phone=’19912345678’

WHERE uid=’1’;

  (2)刪除數據

  DELETE  FROM  user  WHERE  uid=’2’;

 

標准SQL語句分類

DDL: Data Define Language 定義數據結構

 CREATE/DROP/ALTER

DML: Data Manipulate Language 操作數據

 INSERT/UPDATE/DELETE

DQL: Data Query Language 查詢數據

 SELECT

DCL: Data Control Language 控制用戶權限

 GRANT(授權)/REVOKE(收權)

 

7.計算機存儲字符

 (1)如何存儲英文字符

  ASCII: 總共有128個,對所有的英文字母和符號進行了編碼。

  Latin-1: 總共有256個,兼容ASCII碼,同時對歐洲符號進行了編碼。MySQL默認使用這種編碼。

 (2)如何存儲中文字符

  GB2312: 對常用的6千多漢字進行了編碼,兼容ASCII碼

  GBK: 對2萬多漢字進行了編碼,同時兼容GB2312

  Unicode: 對世界上主流國家的常用語言進行了編碼,兼容ASCII碼,不兼容GB2312、GBK。具體分為utf-8,utf-16,utf-32存儲方案。

 (3)解決MySQL存儲中文亂碼

  SQL腳本另存為的編碼

  客戶端連接服務器端的編碼(SET NAMES UTF8)

  服務器端創建數據庫使用的編碼(CHARSET=UTF8)

 

8.mysql中的列類型

 創建數據表的時候,指定的列可以存儲的數據類型

   CREATE  TABLE  t1( nid  列類型 );

 (1)數值型  引號可加可不加

   TINYINT  微整型,占1個字節,范圍-128~127

   SMALLINT  小整型,占2個字節,范圍-32768~32767

   INT  整型,占4個字節,范圍

-2147483648~2147483647

   BIGINT  大整型,占8個字節,范圍很大

   FLOAT  單精度浮點型,占4個字節,最多3.4E38,可能產生計算誤差。

   DOUBLE  雙精度浮點型,占8個字節,范圍比BIGINT大的多,可能產生計算誤差。

   DECIMAL(M,D)  定點小數,不會產生計算誤差,M代表總的有效位數(不包含小數點),D代表小數點后的有效位數

   BOOL  布爾型,只有兩個值TRUE、FALSE,真正存儲的時候,列類型會變成TINYINT,TRUE和FALSE變成了1和0,使用的時候也可以直接插入1和0。常用於只有兩個值的數據。 例如性別、是否在線、是否注冊、是否為會員…

注意事項:TRUE和FALSE不能加引號。

 (2)日期時間型 必須加引號

   DATE  日期型  ‘2019-12-31’

   TIME  時間型   ’14:53:30’

   DATETIME  日期時間型   ‘2019-12-31 14:53:30’

 (3)字符串類型 必須加引號

   VARCHAR(M)  變長字符串,不會產生空間浪費,操作速度相同比較慢,M最大值是65535

   CHAR(M)  定長字符串,可能存在空間浪費,操作速度比較快,M最大值是255;用於存儲固定長度的數據,例如身份證號碼、手機號碼等。

   TEXT(M)  大型變長字符串,M最多2G

  

CHAR(5)

VARCHAR(5)

a

a\0\0\0\0

a\0

ab

ab\0\0\0

ab\0

一\0\0\0\0

一\0

一二

一二\0\0\0

一二\0

   TB  GB  MB  KB  Byte  Bit

    1Byte=8Bit(位)

  CREATE  TABLE  t1(

    id  INT,

  age  TINYINT,

  commentCount  INT,

  salary DECIMAL(8,2),   #999999.99

  phone  CHAR(11),

  article  VARCHAR(5000),

  sex  BOOL,

  ctime  DATETIME

);

 

9.列約束

 Mysql在插入數據的時候,進行特定的驗證;只有滿足條件才允許插入,否則被認為是非法插入。

 例如:一個人的性別只能是男或者女,一個人的成績0~100

 CREATE  TABLE  t1( eid 列類型 列約束 );

 (1)主鍵約束——PRIMARY KEY

  聲明了主鍵約束的列上值不能出現重復,一個表中只能有一個主鍵,通常加在編號列,表中查詢的記錄會按照編號從小到大排序,加快查找速度。

  注意事項:聲明了主鍵約束后就不允許在插入NULL值。

NULL 表示空,在插入數據時,無法確定要保存的數據。例如:無法確定員工的生日,工資都可以使用NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM