MySQL資料庫關於表的一系列操作

新夢想it教育 發佈 2022-09-26T09:42:43.605038+00:00

MySQL中的數據類型  varchar 動態字符串類型(最長255位),可以根據實際長度來動態分配空間,例如:varchar(100)  char 定長字符串(最長255位),存儲空間是固定的,例如:char(10)  int 整數型(最長11位)  long 長整型  flo

 Mysql中的數據類型

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

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

  int 整數型(最長11位)

  long 長整型

  float 單精度

  double 雙精度

  date 短日期,只包括年月日

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

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

  blob 二進位大對象,主要用於存儲流媒體數據等

  創建數據表

  例如,創建一個學生表:

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 用於設置欄位為空時的默認值。

  刪除表

  現在我們來刪除一個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)

  插入數據

  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('01-11-1998','%d-%m-%Y')

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

  日期格式化顯示函數:

  date_format函數可以將日期轉換成特定格式的字符串,例子:

date_format(日期數據,'日期格式')

date_format(birth,'%m/%d/%Y')

  更新數據

  如果我們需要修改或更新 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

  刪除數據

  你可以使用 SQL 的 DELETE FROM 命令來刪除 MySQL 數據表中的記錄,例如:

mysql> delete from dept where DEPTNO = 70;

Query OK, 1 row affected (0.02 sec)

  快速複製表

  將查詢的結果放入一張新表,以下將創建一張新表,表的內容是emp里的內容:

mysql> create table temp as select * from emp;

Query OK, 14 rows affected (0.05 sec)

Records: 14 Duplicates: 0 Warnings: 0

  快速刪除表數據

  delete語句刪除數據原理:只是將資料庫中的數據刪除,而在物理存儲的數據並未刪除,依然占用著一定的空間,所以可以進行回滾回複數據。

  缺點:刪除效率比較低

  優點:支持回滾數據

  下面我們來介紹一個快速刪除表數據的語法:truncate。

mysql> truncate table dept_bak;

  此操作會刪除表中的全部數據,並且無法回滾,優點是刪除的效率較高,主要用於億級大表刪除操作。

關鍵字: