一、數據庫簡介
1.什么是數據庫
????????數據庫(Database)是一種用于存儲、管理和檢索數據的系統化集合。它允許用戶以結構化的方式存儲大量數據,并通過高效的方式訪問和操作這些數據。數據庫通常由數據庫管理系統(DBMS)管理,DBMS 提供了創建、查詢、更新和管理數據的工具和接口。
2.數據庫的主要特點
- 數據持久化:數據庫中的數據可以長期保存,即使系統關閉或重啟,數據也不會丟失。
- 數據共享:多個用戶或應用程序可以同時訪問和操作數據庫中的數據。
- 數據一致性:數據庫通過事務管理確保數據的一致性和完整性。
- 數據安全性:數據庫提供訪問控制和加密機制,保護數據不被未授權訪問或篡改。
- 高效查詢:數據庫支持復雜的查詢操作,能夠快速檢索所需數據。
3.數據庫的分類
- 關系型數據庫(RDBMS):以表格形式存儲數據,使用 SQL(結構化查詢語言)進行數據操作。常見的關系型數據庫包括 MySQL、PostgreSQL、Oracle 和 SQL Server。
- 非關系型數據庫(NoSQL):適用于非結構化或半結構化數據,支持靈活的數據模型。常見的非關系型數據庫包括 MongoDB、Cassandra 和 Redis。
- 對象數據庫:將數據存儲為對象,適用于面向對象編程語言。
- 圖數據庫:用于存儲和查詢圖結構數據,適用于社交網絡、推薦系統等場景。
二、SQL簡介
1.什么是SQL
SQL(Structured Query Language)是結構化查詢語言的簡稱,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫。
2.SQL分類
DDL(Data Definition Language):數據定義語言,用來維護存儲數據的結構。
代表指令:create,drop,alter
DML(Data Manipulation Language):數據操縱語言,用來對數據進行操作
代表指令:insert,delete,update,select
DCL(Data Control Language)數據控制語言,主要負責權限管理和事務
代表指令:grant,revoke,commit
三、數據庫的操作
1.顯示當前的數據庫
SHOW DATABASES;
2.創建數據庫
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option];create_option:[DEFAULT]{CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'}
}
- 大寫部分表示關鍵字
- {} 大括號內的必須選
- | 表示任選其一
- [] 中括號表示可選項
- dp_name:表示自定義的數據庫名
- CHARACTER SET:指定數據庫采用的字符集編碼
- COLLATE:指定數據庫字符集的校驗規則
- ENCRYPTION:數據庫是否加密,MySQL 8.0.16中引入的新選項
3.刪除數據庫
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
四、數據庫的數據類型
1.數據值類型
- DECIMAL是通過將數字拆分成多個INT來保證無精度損失
2.字符串類型
2.1如何選擇 CHAR 與 VARCHAR
- 如果數據長度一樣,就使用定長 CHAR 類型,比如:身份證、學號、郵編
- CHAR類型的列會在獲取數據的時候會把后面的空格刪除掉
- 如果長度有變化,就使用 VARCHAR ,比如:名字,地址,要提前規劃好長度
3.日期類型
- fsp 為可選設置,用來指定小數秒精度,范圍從0到6,值為0表示沒有小數部分,如果省略,默認精度為0
- CURRENT_DATE 和 CURRENT_DATE() 是 CURDATE() 的同義詞用于獲取當前日期
- CURRENT_TIME?和 CURRENT_TIME([fsp]) 是 CURTIME() 的同義詞用于獲取當前時間
- CURRENT_TIMESTAMP?和 CURRENT_TIMESTAMP([fsp])?是 CURDATE() 的同義詞用于獲取當前日期和時間
五、表的操作
操作數據庫的表之前,需要先使用數據庫:
use db_text;
1.查看表結構
desc 表名;
2.創建表
語法:
CRAEAT TABLE table_name (field1 datatype [comment `說明`],field2 datatype [comment `說明`],field3 datatype [comment `說明`],
);
示例:
創建表時還可以指定存儲引擎
CRAEAT TABLE table_name (field1 datatype [comment `說明`],field2 datatype [comment `說明`],field3 datatype [comment `說明`],
) engine = MyISAM;
創建表之后,在磁盤上就會有對應的文件
3.刪除表
語法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]...
4.修改表
語法:
ALTER TABLE tbl_name [alter_option [, alter_option] ...];alter_option:{| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]| DROP [COLUMN] col_name| RENAME COLUMN old_col_name TO new_col_name| RENAME [TO | AS] new_tbl_name
}
六、重點總結
操作數據庫:
-- 顯示
SHOW DATABASES;-- 創建
CREATE DATABASES XXX;-- 使用
USE XXX;-- 刪除
DROP DATABASE XXX;
常用數據類型:
- INT:整型
- DECIMAL(M,D):浮點數類型
- VARCHAR(SIZE):字符串類型
- TIMESTAMP:日期類型
操作表:
-- 查看
SHOW 表;-- 創建
CREATE TABLE 表名(字段1 類型1,字段2 類型2,...
);-- 刪除
DROP TABLE 表名;