(資料庫一)資料庫基礎
一、資料庫的發展史
(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