1. 程式人生 > >(資料庫一)資料庫基礎

(資料庫一)資料庫基礎

一、資料庫的發展史
   (1)手工管理:藏書閣,圖書館。
          優點:分類管理,直觀性強
          缺點:資訊流動慢,不方便
   (2)檔案管理:計算機檔案系統,圖書管理系統
          優點:分類管理,層次分明
          缺點: 查詢不方便
   (3)資料庫管理:
          優點:存取資料非常方便.
          缺點:有資料的安全隱患。

二、資料庫概念
    資料庫(DataBase):簡稱DB,按照某一特定資料結構來組織,儲存資料的倉庫。
    資料庫管理系統(DataBase Management System):簡稱DBMS.是為了建立,操作和維護資料庫而設計的一個程式。介於使用者和資料庫之間。
    PS: 使用SQL語言,通過DBMS來管理DB。

三、關係型資料庫
    (1)所謂的關係,指的就是表,或者表與表之間。關係模型,就是表的行與列。比如  教師(教師編號,姓名,年齡,性別,科目)。
    (2)常用的關係型資料庫:
       大型:Oracle--甲骨文(Oracle)公司的產品
               SqlServer--Microsoft旗下的產品
               DB2--IBM旗下的產品
       小型:Access--MicroSoft旗下的產品
               Mysql--目前是甲骨文旗下的產品

四、Mysql
   1)Mysql是一個關係型資料庫,最開始是瑞典的MysqlAB公司的產品,後來被Sun公司收購,在2009年4月20號Sun公司被Oracle收購.
   2)Mysql特點
      --mysql是開源的,不會產生額外的費用。
      --mysql支援大型資料庫,比如可以管理上千萬條記錄的資料庫。
      --mysql支援多作業系統,支援多語言連線:C,C++,java,PHP....
      --mysql成本比較小,相比較Oracle和DB2。
   3)Mysql的安裝(略)
       服務端的安裝:DB和DBMS的安裝
       客戶端的安裝:自帶的客戶端、第三方客戶端
   4)Mysql的連線和使用
        開啟mysql圖形介面,輸入密碼即可開啟mysql
    1)查詢資料庫
        show databases;
    2)先選擇資料庫
        use mysql;
    3)書寫SQL
    4)查詢資料庫中的表
        show tables;

五、表(Table)
   表是關係型資料庫的基本儲存結構。
   1)表是二維資料結構,有行和列
   2)行(Row)是橫排資料,也叫記錄(Recond)
   3)列(Column)是豎排資料,也叫欄位(Field)
   4)行與列的交叉點是 欄位值
   5)表與表之間也存在關係

六、資料庫支援的資料型別
    MySQL支援多種型別,大致可以分為三類:數值、日期/時間和字串(字元)型別。

數值型別
型別 大小(位元組) 範圍(有符號)
TINYINT 1 (-128,127)
SMALLINT 2 (-32768,32767)
MEDIUINT 3 (-8388608,8388607)
INT或INTEGER 4 (-2147483648,2147483647)
BIGINT 8 (-9233372036854775808,9223372036854775807)
FLOAT 4 單精度
DOUBLE 8 雙精度
DECIMAL  

對DECIMAL(M,D),若M>D,則返回值為M+2否則為D+2

 

 

 

 

 

 

 

 

 

日期和時間型別
型別 大小(位元組) 範圍 格式 用法
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 時間值或持續時間
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和時間值
TIMESTAMP 8 1970-01-01 00:00:01/2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和時間值,時間戳

 

 

 

 

 

 

 

字串型別
型別 大小(位元組) 用法
CHAR 0-255 定長字串
VARCHAR 0-65535 變長字串
TINYBOLB 0-255 不超過255個字元的二進位制字串
TINYTEXT 0-255 短文字字串
BLOB 0-65535 二進位制形式的長文字資料
TEXT 0-65535 長文字資料
MEDIUMBLOB 0-16777215 二進位制形式的中等長度文字資料
MEDIUMTEXT 0-16777215位元組 中等長度文字資料
LOGNGBLOB 0-4294967295 二進位制形式的極大文字資料
LONGTEXT 0-4294967295位元組 極大文字資料

 

 

 

 

 

 

 

 

 

 

 

 

七、結構化查詢語言(SQL)
    結構化查詢語言(Structured Query Language),簡稱SQL,是資料庫的標準查詢語言。可以通過DBMS對資料庫進行義資料、操縱資料、查詢資料,資料控制等
   

SQL可以分為:
    1)資料定義語言(DDL):Data Definition Language
       如建立表create
        create table tableName(
            欄位1 型別,
            欄位2 型別,
            欄位3 型別
        )

        刪除表drop
        drop table tableName

    修改表alter
        a)向表最後追加新欄位
        --格式:alter table tableName add (colName Type);
        b)刪除表字段語句
        --格式:alter table tableName drop colName;
        c)--修改表字段型別
        --格式:alter table tableName modify colName newType;
        d)--修改表字段名稱
        --格式:alter table tableName change oldColName newColName newType;
        e)修改表名
        --格式:alter table oldName rename newName;

    查看錶結構
        a)查看錶結構
        --格式:desc 表名;

    清空表truncate,徹底清空,無法找回。
        只刪除表中的記錄,保留表的結構
        --格式:truncate tableName;
    
    2)資料操縱語言(DML):Data Manipulation Language
      插入資料insert
        --格式1:insert into tableName(欄位1,欄位2...,欄位n) values (值1,值2...,值n)
        --格式2:insert into tableName values(值1,值2,..值n);
            注:格式2要求插入的值必須和建表時欄位的順序相對應,否則容易出現錯誤

      刪除資料delete
        --格式:delete from tableName [where eid=2 and(or) ename='小趙'];

      修改資料update
        --格式:update tableName set 欄位1=值1,欄位2=值2 [where eid > 2];

--建立資料庫並指定字符集
        create database jsd1707 default character set utf8