作者:小編 日期:2023-11-12 瀏覽: 次
=============
1. 數(shù)據(jù)庫概述
-------
MySQL是一個開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。它使用了一種名為Srucured Query Laguage(SQL)的語言進(jìn)行數(shù)據(jù)操作和管理。MySQL基于C和C++編程語言編寫,并且提供了許多高效、安全和靈活的特性。
2. 數(shù)據(jù)類型
------
###
2.1 數(shù)值類型
MySQL提供了多種數(shù)值類型,包括整數(shù)類型(如TIYIT、SMALLIT、MEDIUMIT、IT和BIGIT),浮點(diǎn)數(shù)類型(如FLOAT和DOUBLE),以及定點(diǎn)數(shù)類型(如DECIMAL)。
###
2.2 字符串類型
字符串類型包括CHAR、VARCHAR、TEXT和BLOB。這些類型用于存儲字符數(shù)據(jù),其中CHAR是定長字符串,VARCHAR是可變長字符串,TEXT和BLOB用于存儲大量文本數(shù)據(jù)。
###
2.3 日期和時間類型
MySQL提供了多種日期和時間類型,包括DATE、TIME、DATETIME和TIMESTAMP。這些類型用于存儲日期和時間信息。
###
2.4 復(fù)合類型
MySQL還支持復(fù)合類型,如SET和EUM。SET類型用于存儲一組離散的值,EUM類型用于定義一個包含固定數(shù)量值的列。
3. 數(shù)據(jù)庫操作
-------
###
3.1 創(chuàng)建數(shù)據(jù)庫
使用`CREATE DATABASE`語句創(chuàng)建新的數(shù)據(jù)庫:
```sql
CREATE DATABASE daabase_ame;
```
###
3.2 刪除數(shù)據(jù)庫
使用`DROP DATABASE`語句刪除數(shù)據(jù)庫:
```sql
DROP DATABASE daabase_ame;
```
###
3.3 修改數(shù)據(jù)庫
可以使用`ALTER DATABASE`語句修改數(shù)據(jù)庫的屬性,如更改數(shù)據(jù)庫的編碼方式:
```sql
ALTER DATABASE daabase_ame CHARACTER SET uf8mb4 COLLATE uf8mb4_uicode_ci;
```
###
3.4 查詢數(shù)據(jù)庫
使用`SHOW DATABASES`語句列出所有的數(shù)據(jù)庫:
```sql
SHOW DATABASES;
```
4. 數(shù)據(jù)表操作
-------
###
4.1 創(chuàng)建數(shù)據(jù)表
使用`CREATE TABLE`語句創(chuàng)建新的數(shù)據(jù)表:
```sql
CREATE TABLE able_ame (colum1 daaype, colum2 daaype, ...);
```
###
4.2 刪除數(shù)據(jù)表
使用`DROP TABLE`語句刪除數(shù)據(jù)表:
```sql
DROP TABLE able_ame;
```
###
4.3 修改數(shù)據(jù)表
可以使用`ALTER TABLE`語句修改數(shù)據(jù)表的結(jié)構(gòu),如添加、修改或刪除列:
```sql
ALTER TABLE able_ame ADD colum daaype; -- 添加列
ALTER TABLE able_ame MODIFY colum daaype; -- 修改列定義和類型等屬性但不改變列的數(shù)量時使用 MODIFY; 而當(dāng)需要增加新的列或替換已存在的列時可以使用 ADD 和 MODIFY 并用; 但使用 ADD 和 MODIFY 同時,如果只改變一列屬性(包括定義和數(shù)據(jù)類型)那么可以不分順序執(zhí)行。 先執(zhí)行 MODIFY 在執(zhí)行 ADD 或反之都可以,兩者都是同時執(zhí)行的。如果需要同時添加多個列或修改多個列屬性時可以使用 ADD 和 MODIFY 并用,但只能修改已存在的列不能添加不存在的列。如果要添加新列或替換已存在的列則可以使用 ADD ,在后面如果存在 MODIFY 的話則一起執(zhí)行 MODIFY 里面的修改命令; 或者可以先把原有的數(shù)據(jù)表刪除然后創(chuàng)建新數(shù)據(jù)表(不過需要注意的是數(shù)據(jù)表的創(chuàng)建不要讓一些無用的重復(fù)記錄添加到原有的記錄中去), 這樣就只添加上沒有使用的空值的新列即可,這樣的數(shù)據(jù)表除了屬性與舊的不同其他字段的內(nèi)容是不一樣的,除了ULL值外沒有其他相同的數(shù)據(jù)記錄。在創(chuàng)建新數(shù)據(jù)表時需要將原有的數(shù)據(jù)表的記錄導(dǎo)入到新數(shù)據(jù)表中,導(dǎo)入命令為 ISERT ITO able_ame SELECT FROM able_ame WHERE codiio; (注意:如果新舊表結(jié)構(gòu)不一樣的話需要先刪除舊表再創(chuàng)建新表)或者直接使用 SELECT ITO 命令將舊表的數(shù)據(jù)導(dǎo)入到新表中。如果新舊表結(jié)構(gòu)不一樣的話不能使用 SELECT ITO 或者 ISERT ITO 因?yàn)樗麄兊淖饔檬遣煌摹ELECT ITO 可以說是備份的作用是直接將數(shù)據(jù)導(dǎo)入備份用的表結(jié)構(gòu)當(dāng)中并且所有導(dǎo)入的數(shù)據(jù)是源表當(dāng)中的原始數(shù)據(jù)的備份;而 ISERT ITO 是將源表中的數(shù)據(jù)插入到目標(biāo)表中,目標(biāo)表的字段與源表的字段不一定相同。所以如果新舊表的字段不同的話可以使用 ISERT ITO 或者直接使用 SELECT ITO 都可以備份出所有數(shù)據(jù)的。 但是對于兩者相同或者兩者不同都可以分別備份出來即可恢復(fù)原來的狀態(tài)即可。 如果要備份整個數(shù)據(jù)庫的話可以使用 mysqldump 或者 mys