1. 程式人生 > >MYSQL(資料庫概念,表的基本操作)

MYSQL(資料庫概念,表的基本操作)

一、資料庫概念

    資料庫(Database:DB):資料庫是按照資料結構啦組織、儲存和管理資料的倉庫--->資料庫其實就是磁碟中的檔案+管理系統
    資料庫管理系統(Database Management System:DBMS)是專門用於管理資料庫的計算機系統
軟體。資料庫管理系統能夠為資料庫提供資料的定義、建立、維護、查詢和統計等操作功能。並完成

對資料完整性、安全性進行控制的功能

=======================================================

二、SQL:結構化查詢語言(Structured Query Language)

    關係型資料庫標準語言,特點:簡單,靈活,功能強大
SQL包含6個部分(*號表示常用):
    1.資料查詢語言(DQL query)*
    其語句也稱為“資料檢索語言”,用以從表中獲取資料,確定資料怎樣在應用程式中輸出,關鍵字       SELECT(查詢)是DQL(也是所有SQL)用的最多的動詞,其他DQL常用的關鍵字有WHERE(用來限制字   段),ORDER BY(排序),
    GROUP BY(分組)和HAVING(分組後排序)。這些DQL關鍵字常與其他型別的SQL語句一起使用。

    2.資料操作語言(DML manipulation)*
    其語句包括動詞INSERT,UPDATE和DELETE,它們分別用於新增,修改和刪除表中的行,
    也稱為動作查詢語言(SELECT查詢和INSERT查詢有什麼區別?)

    3.事務處理語言(TCL)
    它的語句能夠確保被DML語句影響的表所有行及時得到更新,TPL語句包括BEGIN TRANSACTION,
    COMMIT(事務提交)和ROLLBACK(事務回滾)
    
    4.資料控制語言(DCL)
    它的語句通過GRANT和REVOKE獲得許可,確定單個使用者和使用者組對資料庫物件的訪問,某些RDBMS
    可用GRANT和REVOKE控制對錶單個列的訪問

    5.資料定義語言(DDL definition)*
    其語句包括動詞CREATE(建立)和DROP(刪除),在資料庫中建立新表和刪除表,為表加入索引等。
    DDL包括許多與人資料庫目錄中獲得資料有關的關鍵字,它也是動作查詢的一部分

    6.指標控制語言(CCL)
    它的語句,像DECLARE CURSOR,FETCH INTO 和UPDATE WHERE CURRENT用於對一個
    或多個表單獨進行的操作

======================================================

三、SQL編寫規則:

    1.在資料庫中,SQL語句不區分大小寫
    2.SQL語句可以單行也可以多行寫
    3.在SQL語句中,關鍵字不能多行或縮寫
    4.為了提高可讀性,關鍵字一般大寫,其他小寫
    5.空格和縮排使程式易讀

    6.SQL不需要加分號,但是程式設計師在語句後加分號是一個好習慣

四、什麼是表?

    我們說MySQL是一種關係型資料庫,關係型資料庫最重要的概念就是表,表具有固定的列數和任意的行數,在數學上稱為“關係”二維表是同類實體的各種屬性的集合,每個實體對應於表中的一行,在關係中稱為元組,相當於通常的一條記錄,表中的列屬性,稱為Field,相當於通常記錄中的一個數據項,也叫做列、欄位。
    面向物件的類,類似於關係型資料庫中表的概念
ORM思想:物件-關係對映

屬性
物件        一行資料

五、資料庫操作和儲存引擎

    資料庫物件:儲存、管理和使用資料的不同結構形式,如:表、檢視、儲存過程、函式、
觸發器、事件等。資料庫:儲存資料庫物件的容器

資料庫分為兩種:系統自帶的,和使用者自定義資料庫
常用資料庫命令:
show databases;                           檢視資料庫
use dName;                                  使用資料庫
show tables;                                  查看錶
create database dName               建立資料庫
drop     database    dName          刪除資料庫
 

六、Mysql資料常用型別

    MySQL以一個可選的顯示寬度指示器的形式對SQL標準進行擴充套件,這樣當資料庫檢索一個值時,可以把這個值加長到指定長度需要注意,使用一個寬度指示器不會影響欄位的大小和它可以儲存的值的範圍,一般不用指定位寬
 

整數型別

INT     int/Integer
BIGINT long/Long

int(2),在檢索時,長度會加長到2,不代表最大儲存99,僅僅是查詢時,使用兩個0佔位

小數型別       

FLOAT float/Float
DOUBLE double/Double

money(5,2):整數和小數一共5位,其中小數佔兩位,最大999.99最小-999.99

字元型別   

CHAR 定長字元型,0-255位元組 String/StringBuid
VARCHAR 變長字元型 StringBuffer
TEXT 純文字

定長和變長:位元組數的佔用問題CHAR(5),VARCHAR(5),存‘1’,CHAR五個位元組,VARCHAR1個位元組


日期型別       

DATE 0000:00:00 Date/Calender
TIME 00:00:00
DATETIME 0000:00:00 00:00:00
TIMESTAMP 時間戳(1970-01-01 00:00:00差)

二進位制型別   (用的很少)    

BINARY\VARBINARY\TINYBLOB\BLOB\MEDIUMBLOB\LONGBLOB 存放圖形、聲音、影響、二進位制物件 *:一般將二進位制的檔案儲存路徑儲存在資料中

BIT        boolean

七、表的操作

建立表
    CREATE TABLE 表名(
        colName1 type1 [約束]
        colName2 type2,
        colName3 type3
    );

ex:建立一張學生資訊表
    create table t_student(
        id int;
        name varchar(20);
        age int;
    );
    為了避免使用到關鍵字,我們還可以將名字用` `圈起來
    create table `t_student`(
        `id` int;
        `name` varchar(20);
        `age` int;
    );


查看錶的結構
    desc tName;
查看錶的詳細定義(查看錶的定義SQL語句)
    show create table tName;
刪除表
    drop table tName;

表的約束(針對某列而言)
    1.非空約束:NOT NULL,不允許欄位的內容為空
    2.設定列的預設值:DEFAULT
    3.唯一約束:UNIQUE,在該表中,該列的內容必須唯一
    4.主鍵約束:PRIMARY KEY,非空且唯一
        主鍵設計,唯一標識某一行資料
    5.主鍵自增長:AUTO_INCREMENT,從1開始,步長為1
    6.外來鍵約束:FOREIGNKEY,A表中的外來鍵列,A表中的外來鍵列的值必須參照於B表中的某一列(B表的主鍵)

    *注意:主鍵的設計
        1.單欄位主鍵:單列作為主鍵,建議使用
           複合主鍵:使用多列欄位當主鍵,不建議
        2.主鍵的種類:
            1).自然主鍵:使用有業務含義的列作為主鍵(不建議使用),例如身份證號碼
            2).代理主鍵:使用沒有業務含義的列作為主鍵

    CREATE TABLE `t_student`(
        `id` INT PRIMARY KEY;                                      //主鍵,非空且唯一    
        ` name` VARCHAR(20) UNIQUE NOT NULL;    //非空且值唯一
        `age` INT DEFAULT 100;                                   //預設值100
    );

 

八、MYSQL小結

1.MySQL安裝和配置(儲存引擎,字元編碼,密碼)
    2.常用命令

1)檢視有哪些資料庫

show databases;

2)使用某一個數據庫

use dName;

3)檢視某個資料庫中有什麼表

show tables;

4)建立和刪除一個數據庫

create database dName;
drop database dName;

5)建立和刪除表

  1. create table tName(

  2. colName1 type1 [約束],

  3. colName2 type2 [約束],

     colName3 type3
 );
drop table tName;

--------------------- 本文來自 BigDodo 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/qq_38741971/article/details/80575835?utm_source=copy