mysql數(shù)據(jù)庫,是當前應用非常廣泛的一款關系型數(shù)據(jù)庫
當前使用的數(shù)據(jù)庫,主要分為兩類
1.文檔型,如sqlite,就是一個文件,通過對文件的復制完成數(shù)據(jù)庫的復制
2.服務型,如mysql、postgre,數(shù)據(jù)存儲在一個物理文件中,但是需要使用終端以tcp/ip協(xié)議連接,進行數(shù)據(jù)庫的讀寫操作
E-R模型
當前物理的數(shù)據(jù)庫都是按照E-R模型進行設計的
E表示entry,實體
R表示relationship,關系
一個實體轉換為數(shù)據(jù)庫中的一個表
關系描述兩個實體之間的對應規(guī)則,包括
1.一對一
2.一對多
3.多對多
關系轉換為數(shù)據(jù)庫表中的一個列在關系型數(shù)據(jù)庫中一行就是一個對象
三范式
經(jīng)過研究和對使用中問題的總結,對于設計數(shù)據(jù)庫提出了一些規(guī)范,這些規(guī)范被稱為范式
1.第一范式(1NF):列不可拆分
2.第二范式(2NF):唯一標識
3.第三范式(3NF):引用主鍵
說明:后一個范式,都是在前一個范式的基礎上建立的
約束:
1.主鍵primary key
2.非空not null
3.惟一unique
4.默認default
5.外鍵foreign key
數(shù)據(jù)庫操作
·創(chuàng)建數(shù)據(jù)庫
create database數(shù)據(jù)庫名charset=utf8;
·刪除數(shù)據(jù)庫
drop database數(shù)據(jù)庫名;
·切換數(shù)據(jù)庫
use數(shù)據(jù)庫名;
·查看當前選擇的數(shù)據(jù)庫
select database();
表操作
·查看當前數(shù)據(jù)庫中所有表
show tables;
·創(chuàng)建表
auto_increment表示自動增長
create table表名(列及類型);
如:
create table students(
id int auto_incrementprimary key,
sname varchar(10) not null
);
·修改表
alter table表名add|change|drop列名類型;
如:
alter table students add birthdaydatetime;
·刪除表
drop table表名;
·查看表結構
desc表名;
·更改表名稱
rename table原表名to新表名;
·查看表的創(chuàng)建語句
show create table '表名';
數(shù)據(jù)操作
·查詢
select * from表名
·增加
全列插入:insert into表名values(...)
缺省插入:insert into表名(列1,...) values(值1,...)
同時插入多條數(shù)據(jù):insert into表名values(...),(...)...;
或insert into表名(列1,...) values(值1,...),(值1,...)...;
·主鍵列是自動增長,但是在全列插入時需要占位,通常使用0,插入成功后以實際數(shù)據(jù)為準
·修改
update表名set列1=值1,... where條件
·刪除
delete from表名where條件
·邏輯刪除,本質就是修改操作update
alter table students add isdelete bit default 0;
如果需要刪除則
update students isdelete=1 where ...;
備份與恢復
?數(shù)據(jù)備份
·進入超級管理員
sudo -s
·進入mysql庫目錄
cd /var/lib/mysql
·運行mysqldump命令
mysqldump –uroot –p數(shù)據(jù)庫名> ~/Desktop/備份文件.sql;
按提示輸入mysql的密碼
?數(shù)據(jù)恢復
·連接mysqk,創(chuàng)建數(shù)據(jù)庫
·退出連接,執(zhí)行如下命令
mysql -uroot –p數(shù)據(jù)庫名< ~/Desktop/備份文件.sql
根據(jù)提示輸入mysql密碼
1.1.1總結
·數(shù)據(jù)庫解決的問題,E-R模型,三范式
·圖形界面操作數(shù)據(jù)庫、表、數(shù)據(jù)
·命令行操作數(shù)據(jù)庫、表、數(shù)據(jù)
1.1.2作業(yè)
·完善學生表、科目表及數(shù)據(jù)
·設計兩張表,要求是一對多的關系
1.2查詢
簡介
·查詢的基本語法
select * from表名;
·from關鍵字后面寫表名,表示數(shù)據(jù)來源于是這張表
·select后面寫表中的列名,如果是*表示在結果中顯示表中所有列
·在select后面的列名部分,可以使用as為列起別名,這個別名出現(xiàn)在結果集中
如果要查詢多個列,之間使用逗號分隔