sql是結構化查詢語言,mysql是關系型數據庫,數據庫(Database)是按照數據結構來組織、儲存和管理數據的建立在計算機存儲設備上的倉庫。
mysql 數據庫的結構
- 表
一個數據庫通常包含一個或多個表。每個表由一個名字標識(表名),表是相關的數據項的集合,它由列和行組成。
- 字段
每個表都可以分解為更小的項。這些項被稱為“字段”。字段是表里的一列,用于保持每條記錄的特定信息。
- 記錄
記錄,也被稱為一行數據,是表里的各行。在關系型數據庫的表里,一行數據是指一條完整的記錄。
- 主鍵
主鍵用于區分表里的每一條數據,它通常是在表創建過程中初始化的。主鍵的特性確保了每一條記錄都是唯一的。
- 索引
為了提高訪問數據庫的效率,可以對數據庫使用索引。索引實際上是一種特殊類型的表,其中含有關鍵字段的值(由用戶定義)和指向實際記錄位置的指針,這些值和指針按照特定的順序(也由用戶定義)存儲,從而可以以較快的速度查找到所需要的數據記錄。
- NULL值
NULL 是表示“沒有值”的專用術語。值為NULL的字段在表創建過程中會保持為空。
mysql 數據庫基本操作
- 庫,表的創建和刪除
創建表
create databases DatabaseName;
create table 表名(
列名 類型 是否可以為空,
列名 類型 是否可以為空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
create table test ( id integer auto_increment, name varchar(5), sex varchar(4), age integer(3), primary key (id) );
刪除表
drop table TableName;
刪除庫
drop database DatabaseName;
- 數據增刪改查
查詢 select
select <字段名> from <表或視圖> where <條件>;
插入 insert into
insert into <表名> (列1,列2...) value(值1,值2...) ;
insert into tb (name,age) value ('test',8);
更新 upadte
update <表名> set <列名> = <新值> where <列名> = <值>;
update tb set sex = '男' where id = 13;
刪除 delete
delete from <表名> where <條件>;
delete from tb where id = 13;
表添加列
alter table <表名> add <列名> <類型> ;
alter table tb add city varchar(5);
alter table tb add test varchar(255) default 'test' after sex;
表刪除列
alter table <表名> drop column <列名>;
alter table tb drop column city;
- 數據庫備份恢復
備份
mysqldump -u UserName -p DBName>Name.sql
,輸入密碼即可.
mysqldump -u sand -p myTEST>/tmp/test.sql
恢復
mysql -u sand -p
進入mysql,建立要還原的數據庫。
source /tmp/test.sql
或者用系統命令
mysql -u sand -p test2 < /tmp/test.sql
-
事務
特性:原子性(A): 事務是最小單位,不可再分
一致性(C): 事務要求所有的DML語句操作的時候,必須保證同時成 功或者同時失敗
隔離性(I): 事務A和事務B之間具有隔離性
持久性(D): 是事務的保證,事務終結的標志(內存的數據持久到硬盤文件中)
開始事務: start transaction
提交事務: commit
回滾事務: rollback
事務開啟的標志:任何一條DML語句(insert、update、delete)執行
事務結束的標志:
- 提交:成功的結束,將所有的DML語句操作歷史記錄和底層硬盤數據來一次同步,
- 回滾:失敗的結束,將所有的DML語句操作歷史記錄全部清空