資料庫MySQL學習筆記(一)
一、資料庫的發展史
1、手工管理:藏書閣,圖書館。
優點:分類管理,直觀性強
缺點:資訊流動慢,不方便
2、檔案管理:計算機檔案系統,圖書管理系統
優點:分類管理,層次分明
缺點:查詢不方便
3、資料庫管理:
優點:存取資料非常方便
缺點:有資料的安全隱患
二、資料庫的概念
資料庫:簡稱DB,按照某一特定資料結構來組織,是儲存資料的倉庫。
資料庫管理系統:簡稱DBMS,是為了建立、操作和維護資料庫二設計的程式,介於使用者和資料庫之間。
使用SQL語言,通過資料庫管理系統來管理資料庫。
三、關係型資料庫
1、所謂的關係,指的就是表,或者表和表之間的關係模型,就是表的行與列。比如 教師(教師編號,姓名,年齡,性別,科目)。
2、常用的關係型資料庫:
大型:Oracle、SqlServer、DB2
小型:Access、Mysql
四、MySQL資料庫
1、MySQL是一個關係型資料庫。
2、MySQL特點: (1)開源 (2)支援大型資料庫 (3)支援多作業系統 (4)成本比較小
3、基本使用命令:
(1)查詢資料庫:show databases;
(2)選擇資料庫:use 資料庫名;
(3)書寫SQL
(4)查詢資料庫中的表:show tables;
五、表(table)
1、表是關係型資料庫的基本儲存結構,基本組成單位。
2、表是二維資料結構,有行和列,行是記錄,列是欄位,行和列的交叉點為欄位值,表和表之間也存在關係。
六、資料庫支援的資料型別
MySQL支援多種型別,大致分為三類:數值、日期/時間和字串(字元)型別。
(1)數值型別:
型別 | 大小(位元組) | 範圍(有符號) | 用途 |
TINYINT | 1 | (-128,127) | 小整數值 |
SMALLINT | 2 | (-32768,32767) | 大整數值 |
MEDIUMINT | 3 | (-8388608,8388607) | 大整數值 |
INT或INTEGER | 4 | (-2147483648,2147483647) | 大整數值 |
BIGINT | 8 | (-9233372036854775808,9223372036854775807) | 極大整數值 |
FLOAT | 4 | 單精度 | 浮點數值 |
DOUBLE | 8 | 雙精度 |
浮點數值 |
(2)日期和時間型別:
型別 | 大小(位元組) | 範圍 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 時間值或持續時間 |
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:00/2037 年某時 | YYYYMMDD HHMMSS | 混合日期和時間值,時間戳 |
(3)字串型別:
型別 | 大小(位元組) | 用途 |
CHAR | 0-255 | 定長字串 char(10) |
VARCHAR | 0-65535 | 變長字串 |
TINYBLOB | 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)
1、SQL是資料庫的標準查詢語言,可以通過DBMS對資料庫進行定義資料,操縱資料,查詢資料,資料控制等。
2、SQL可以分為:
(1)資料定義語言(Data Definition Language),簡稱DDL,常用語句為:
1⃣️ 建立表create:
create table 表名(
欄位一 型別,
欄位二 型別,
欄位三 型別
)
2⃣️ 刪除表drop:
drop table 表名
3⃣️ 修改表alter:
向表最後追加新欄位:alter table 表名 add ( 欄位名 欄位型別)
刪除表字段:alter table 表名 drop 欄位名
修改表字段型別: alter table 表名 modify 欄位名 新型別
修改表字段名稱: alter table 表名 change 舊欄位名 新欄位名 新欄位名型別
修改表名:alter table 舊錶名 rename 新表名
4⃣️ 查看錶結構:
desc 表名
結果:Field Type Null Key Default Extra ename varchar(20) YES ageone int(11) YES school varchar(20) YES
5⃣️ 清空表,徹底清空,無法找回(只刪除表中的記錄,保留表的結構)
truncate 表名
create table maomao(
ename varchar(20),
age int,
school varchar(20)
);
alter table maomao add(height int);
alter table maomao drop height;
alter table maomao modify age varchar(20);
alter table maomao change age ageone int;
alter table maomao rename maomaocute;
desc maomaocute;
truncate maomaocute
(2)資料操縱語言(DDL):Data Manipulation Language
1⃣️ 插入資料insert
insert into tableName(欄位1,欄位2...,欄位n) values (值1,值2...,值n)
insert into tableName values(值1,值2,..值n);
注:格式2要求插入的值必須和建表時欄位的順序相對應,否則容易出現錯誤
2⃣️ 刪除資料delete
delete from 表名 [條件];
3⃣️ 修改資料update
update tableName set 欄位1=值1,欄位2=值2 [條件];
insert into maomaocute values("maomao","20","JiLin University")
update maomaocute set ageone="3" where ename = "maomao"
delete from maomaocute where ename = "maomao"
4⃣️ 建立資料庫並指定字符集
create database maomao default character set utf8
(3)資料查詢語言(DQL)
(4)資料控制語言(DCL)
(5)事物控制語言(TCL)
這三個部分會在以後的部落格中細說。