數據庫筆記(mysql)(1)
阿新 • • 發佈:2018-07-28
upd 建立 -s entry 增長 alt tex rem data
mysql數據庫,是當前應用非常廣泛的一款關系型數據庫。
數據庫簡介
- 計算機誕生後,數據開始在計算機中存儲並計算,並設計出了數據庫系統
- 數據庫系統解決的問題:持久化存儲,優化讀寫,保證數據的有效性
- 當前使用的數據庫,主要分為兩類
- 文檔型,如sqlite,就是一個文件,通過對文件的復制完成數據庫的復制
- 服務型,如mysql、postgre,數據存儲在一個物理文件中,但是需要使用終端以tcp/ip協議連接,進行數據庫的讀寫操作
E-R模型
- 當前物理的數據庫都是按照E-R模型進行設計的
- E表示entry,實體
- R表示relationship,關系
- 一個實體轉換為數據庫中的一個表
- 關系描述兩個實體之間的對應規則,包括
- 一對一
- 一對多
- 多對多
- 關系轉換為數據庫表中的一個列 *在關系型數據庫中一行就是一個對象
三範式
- 經過研究和對使用中問題的總結,對於設計數據庫提出了一些規範,這些規範被稱為範式
- 第一範式(1NF):列不可拆分
- 第二範式(2NF):唯一標識
- 第三範式(3NF):引用主鍵
- 說明:後一個範式,都是在前一個範式的基礎上建立的
數據完整性
- 一個數據庫就是一個完整的業務單元,可以包含多張表,數據被存儲在表中
- 在表中為了更加準確的存儲數據,保證數據的正確有效,可以在創建表的時候,為表添加一些強制性的驗證,包括數據字段的類型、約束
字段類型
- 在mysql中包含的數據類型很多,這裏主要列出來常用的幾種
- 數字:int,decimal
- 字符串:varchar,text
- 日期:datetime
- 布爾:bit
約束
- 主鍵primary key
- 非空not null
- 惟一unique
- 默認default
- 外鍵foreign key
數據庫操作
- 創建數據庫
create database 數據庫名 charset=utf8;
- 刪除數據庫
drop database 數據庫名;
- 切換數據庫
use 數據庫名;
- 查看當前選擇的數據庫
select database();
表操作
- 查看當前數據庫中所有表
show tables;
- 創建表
-
auto_increment表示自動增長
create table 表名(列及類型); 如: create table students( id int auto_increment primary key, sname varchar(10) not null );
-
修改表
alter table 表名 add|change|drop 列名 類型;
如:
alter table students add birthday datetime;
- 刪除表
drop table 表名;
- 查看表結構
desc 表名;
- 更改表名稱
rename table 原表名 to 新表名;
- 查看表的創建語句
show create table ‘表名‘;
數據操作
- 查詢
select * from 表名
- 增加
全列插入:insert into 表名 values(...)
缺省插入:insert into 表名(列1,...) values(值1,...)
同時插入多條數據:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
- 主鍵列是自動增長,但是在全列插入時需要占位,通常使用0,插入成功後以實際數據為準
- 修改
update 表名 set 列1=值1,... where 條件
- 刪除
delete from 表名 where 條件
- 邏輯刪除,本質就是修改操作update
alter table students add isdelete bit default 0;
如果需要刪除則
update students isdelete=1 where ...;
備份與恢復
數據備份
- 進入超級管理員
sudo -s
- 進入mysql庫目錄
cd /var/lib/mysql
- 運行mysqldump命令
mysqldump –uroot –p 數據庫名 > ~/Desktop/備份文件.sql;
按提示輸入mysql的密碼
數據恢復
-
連接mysqk,創建數據庫
-
退出連接,執行如下命令
mysql -uroot –p 數據庫名 < ~/Desktop/備份文件.sql
根據提示輸入mysql密碼
數據庫筆記(mysql)(1)