MySQL數(shù)據(jù)庫(kù)中表的操作詳解
1.Mysql中的數(shù)據(jù)類型
varchar 動(dòng)態(tài)字符串類型(最長(zhǎng)255位),可以根據(jù)實(shí)際長(zhǎng)度來(lái)動(dòng)態(tài)分配空間,例如:varchar(100)
char 定長(zhǎng)字符串(最長(zhǎng)255位),存儲(chǔ)空間是固定的,例如:char(10)
int 整數(shù)型(最長(zhǎng)11位)
long 長(zhǎng)整型
float 單精度
double 雙精度
date 短日期,只包括年月日
datetime 長(zhǎng)日期,包括年月日時(shí)分秒
clob 字符大對(duì)象(最多可以存儲(chǔ)4G的字符串) ,超過(guò)255字符的都要采用此進(jìn)行存儲(chǔ)
blob 二進(jìn)制大對(duì)象,主要用于存儲(chǔ)流媒體數(shù)據(jù)等
2.創(chuàng)建數(shù)據(jù)表
例如,創(chuàng)建一個(gè)學(xué)生表:
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)
實(shí)例解析:
如果你不想字段為 NULL 可以設(shè)置字段的屬性為 NOT NULL, 在操作數(shù)據(jù)庫(kù)時(shí)如果輸入該字段的數(shù)據(jù)為NULL ,就會(huì)報(bào)錯(cuò)。
AUTO_INCREMENT定義列為自增的屬性,一般用于主鍵,數(shù)值會(huì)自動(dòng)加1。
PRIMARY KEY關(guān)鍵字用于定義列為主鍵。 您可以使用多列來(lái)定義主鍵,列間以逗號(hào)分隔。
ENGINE 設(shè)置存儲(chǔ)引擎,CHARSET 設(shè)置編碼。
default 用于設(shè)置字段為空時(shí)的默認(rèn)值
3.刪除表
現(xiàn)在我們來(lái)刪除一個(gè)student表:
mysql> drop table student; Query OK, 0 rows affected (0.07 sec)
這種刪除方法,如果表不存在會(huì)發(fā)生一個(gè)錯(cuò)誤,我們可以通過(guò)下面的寫(xiě)法來(lái)提升SQL的魯棒性:
如果表存在,則進(jìn)行刪除,否則不刪除:
mysql> drop table if exists student; Query OK, 0 rows affected, 1 warning (0.00 sec)
4.插入數(shù)據(jù)
MySQL 表中使用 INSERT INTO SQL語(yǔ)句來(lái)插入數(shù)據(jù)。
mysql> insert into imustctf -> (ctf_name,ctf_age,ctf_date) -> values -> ('學(xué)習(xí)Mysql',18,NOW()); Query OK, 1 row affected, 1 warning (0.02 sec)
在以上實(shí)例中,我們并沒(méi)有提供 ctf_id 的數(shù)據(jù),因?yàn)樵撟侄挝覀冊(cè)趧?chuàng)建表的時(shí)候已經(jīng)設(shè)置它為AUTO_INCREMENT(自動(dòng)增加) 屬性。 所以,該字段會(huì)自動(dòng)遞增而不需要我們?nèi)ピO(shè)置。實(shí)例中 NOW() 是一個(gè) MySQL 函數(shù),該函數(shù)返回日期和時(shí)間
插入多條數(shù)據(jù):
mysql> insert into imustctf -> (ctf_name,ctf_age,ctf_date) -> values -> ('學(xué)習(xí)Mysql',18,NOW()), -> ('學(xué)習(xí)java',21,NOW()), -> ('學(xué)習(xí)Spring',27,NOW()); Query OK, 1 row affected, 1 warning (0.02 sec)
日期轉(zhuǎn)換函數(shù):
str_to_date函數(shù)可以將字符串轉(zhuǎn)化為日期類型:
語(yǔ)法格式:
str_to_date('字符串日期','日期格式')
例如:
str_to_date('01-11-1998','%d-%m-%Y')
注意:如果你的字符串日期格式是1990-08-11,則不需要使用str_to_date函數(shù)進(jìn)行轉(zhuǎn)換,Mysql會(huì)自動(dòng)進(jìn)行字符串轉(zhuǎn)日期類型
日期格式化顯示函數(shù):
date_format函數(shù)可以將日期轉(zhuǎn)換成特定格式的字符串
例子:
date_format(日期數(shù)據(jù),'日期格式') date_format(birth,'%m/%d/%Y')
5.更新數(shù)據(jù)
如果我們需要修改或更新 MySQL 中的數(shù)據(jù),我們可以使用 SQL UPDATE 命令來(lái)操作。
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.刪除數(shù)據(jù)
你可以使用 SQL 的 DELETE FROM 命令來(lái)刪除 MySQL 數(shù)據(jù)表中的記錄。
例如:
mysql> delete from dept where DEPTNO = 70; Query OK, 1 row affected (0.02 sec)
7.快速?gòu)?fù)制表
將查詢的結(jié)果放入一張新表:
以下將創(chuàng)建一張新表,表的內(nèi)容是emp里的內(nèi)容:
mysql> create table temp as select * from emp; Query OK, 14 rows affected (0.05 sec) Records: 14 Duplicates: 0 Warnings: 0
8.快速刪除表數(shù)據(jù)
delete語(yǔ)句刪除數(shù)據(jù)原理:
只是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)刪除,而在物理存儲(chǔ)的數(shù)據(jù)并未刪除,依然占用著一定的空間,所以可以進(jìn)行回滾回復(fù)數(shù)據(jù)??
缺點(diǎn):刪除效率比較低
優(yōu)點(diǎn):支持回滾數(shù)據(jù)
下面我們來(lái)介紹一個(gè)快速刪除表數(shù)據(jù)的語(yǔ)法:truncate
mysql> truncate table dept_bak;
此操作會(huì)刪除表中的全部數(shù)據(jù),并且無(wú)法回滾,優(yōu)點(diǎn)是刪除的效率較高,主要用于億級(jí)大表刪除操作
到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)中表的操作詳解的文章就介紹到這了,更多相關(guān)MySQL 表操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL每天自動(dòng)增加分區(qū)的實(shí)現(xiàn)
本文主要介紹了MySQL每天自動(dòng)增加分區(qū)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08MySql中的json_extract函數(shù)處理json字段詳情
這篇文章主要介紹了MySql中的json_extract函數(shù)處理json字段詳情,利用json_extract函數(shù)可以通過(guò)key查詢value值的一個(gè)介紹展開(kāi)相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-06-06mysql隨機(jī)查詢?nèi)舾蓷l數(shù)據(jù)的方法
這篇文章主要介紹了mysql中獲取隨機(jī)內(nèi)容的方法,需要的朋友可以參考下2013-10-10MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描)
這篇文章主要介紹了MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描),需要的朋友可以參考下2016-05-05MySQL數(shù)據(jù)庫(kù)大小寫(xiě)敏感的問(wèn)題
今天小編就為大家分享一篇關(guān)于MySQL數(shù)據(jù)庫(kù)大小寫(xiě)敏感的問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫(kù)
下面通過(guò)圖文并茂的方式給大家介紹通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫(kù)的創(chuàng)建過(guò)程,感興趣的朋友一起學(xué)習(xí)2016-04-04MySQL中UPDATE與DELETE語(yǔ)句的使用教程
這篇文章主要介紹了MySQL中UPDATE與DELETE語(yǔ)句的使用教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12