首頁 > 軟體

MySQL資料庫中表的操作詳解

2022-08-18 18:01:30

1.Mysql中的資料型別

varchar 動態字串型別(最長255位),可以根據實際長度來動態分配空間,例如:varchar(100)

char 定長字串(最長255位),儲存空間是固定的,例如:char(10)

int 整數型(最長11位)

long 長整型

float 單精度

double 雙精度

date 短日期,只包括年月日

datetime 長日期,包括年月日時分秒

clob 字元大物件(最多可以儲存4G的字串) ,超過255字元的都要採用此進行儲存

blob 二進位制大物件,主要用於儲存串流媒體資料等

2.建立資料表

例如,建立一個學生表:

mysql> CREATE TABLE imustctf(
    -> ctf_id INT NOT NULL AUTO_INCREMENT,
    -> ctf_name varchar(100) NOT NULL default 'dahezhiquan',
    -> ctf_age INT NOT NULL,
    -> ctf_date DATE,
    -> PRIMARY KEY (ctf_id)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.06 sec)

範例解析:

如果你不想欄位為 NULL 可以設定欄位的屬性為 NOT NULL, 在運算元據庫時如果輸入該欄位的資料為NULL ,就會報錯。

AUTO_INCREMENT定義列為自增的屬性,一般用於主鍵,數值會自動加1。

PRIMARY KEY關鍵字用於定義列為主鍵。 您可以使用多列來定義主鍵,列間以逗號分隔。

ENGINE 設定儲存引擎,CHARSET 設定編碼。

default 用於設定欄位為空時的預設值

3.刪除表

現在我們來刪除一個student表:

mysql> drop table student;
Query OK, 0 rows affected (0.07 sec)

這種刪除方法,如果表不存在會發生一個錯誤,我們可以通過下面的寫法來提升SQL的魯棒性:

如果表存在,則進行刪除,否則不刪除:

mysql> drop table if exists student;
Query OK, 0 rows affected, 1 warning (0.00 sec)

4.插入資料

MySQL 表中使用 INSERT INTO SQL語句來插入資料。

mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('學習Mysql',18,NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)

在以上範例中,我們並沒有提供 ctf_id 的資料,因為該欄位我們在建立表的時候已經設定它為AUTO_INCREMENT(自動增加) 屬性。 所以,該欄位會自動遞增而不需要我們去設定。範例中 NOW() 是一個 MySQL 函數,該函數返回日期和時間

插入多條資料:

mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('學習Mysql',18,NOW()),
    -> ('學習java',21,NOW()),
    -> ('學習Spring',27,NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)

日期轉換函數:

str_to_date函數可以將字串轉化為日期型別:

語法格式:

str_to_date('字串日期','日期格式')

例如:

str_to_date('01-11-1998','%d-%m-%Y')

注意:如果你的字串日期格式是1990-08-11,則不需要使用str_to_date函數進行轉換,Mysql會自動進行字串轉日期型別

日期格式化顯示函數:

date_format函數可以將日期轉換成特定格式的字串

例子:

date_format(日期資料,'日期格式')
date_format(birth,'%m/%d/%Y')

5.更新資料

如果我們需要修改或更新 MySQL 中的資料,我們可以使用 SQL UPDATE 命令來操作。

mysql> update dept set DNAME = 'BBB' where DEPTNO = 70;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

6.刪除資料

你可以使用 SQL 的 DELETE FROM 命令來刪除 MySQL 資料表中的記錄。

例如:

mysql> delete from dept where DEPTNO = 70;
Query OK, 1 row affected (0.02 sec)

7.快速複製表

將查詢的結果放入一張新表:

以下將建立一張新表,表的內容是emp裡的內容:

mysql> create table temp as select * from emp;
Query OK, 14 rows affected (0.05 sec)
Records: 14  Duplicates: 0  Warnings: 0

8.快速刪除表資料

delete語句刪除資料原理:

只是將資料庫中的資料刪除,而在物理儲存的資料並未刪除,依然佔用著一定的空間,所以可以進行回滾回復資料


IT145.com E-mail:sddin#qq.com