MySql常用數(shù)據(jù)類(lèi)型與操作詳解
常用數(shù)據(jù)類(lèi)型
1、int:整形
2、double(m,d)
decimal(m,d):浮點(diǎn)數(shù)類(lèi)型 (m指定長(zhǎng)度,d表示小數(shù)點(diǎn)位數(shù))
3、varchar(size):字符串類(lèi)型
4、timestamp:日期類(lèi)型
數(shù)據(jù)庫(kù)基本操作
不管執(zhí)行什么語(yǔ)句,都要在語(yǔ)句的最后加上;(分號(hào))。
1、創(chuàng)建數(shù)據(jù)庫(kù)
create database 數(shù)據(jù)庫(kù)名;
2、顯示當(dāng)前數(shù)據(jù)庫(kù)
show databases;
3、刪除數(shù)據(jù)庫(kù)
drop database 數(shù)據(jù)庫(kù)名;
4、使用數(shù)據(jù)庫(kù)
use 數(shù)據(jù)庫(kù)名;
5、創(chuàng)建表
create table 表名;
6、查看表結(jié)構(gòu)
desc 表名;
7、插入數(shù)據(jù)
insert into 表名 values(對(duì)照列的類(lèi)型寫(xiě)入);
8、查找語(yǔ)句
全列查找
select * from 表名;
指定列查詢(xún)
select 列名,列名…… from 表名;
指定查詢(xún)字段為表達(dá)式(在查詢(xún)時(shí),同時(shí)進(jìn)行一些運(yùn)算)
select 列名+(-*/)列名 from 表名;
查詢(xún)字段指定別名
select 列名…… as 別名 from 表名;
針對(duì)查詢(xún)結(jié)果去重
select distinct 列名 from 表名;
針對(duì)查詢(xún)結(jié)果進(jìn)行排序
select * from 表名 order by 列名 asc/desc;//升序/降序
分頁(yè)查詢(xún)
select * from 表名 limit n;// 從0開(kāi)始,篩選n條結(jié)果 select * from 表名 limit n offset s;//從s開(kāi)始,篩選n條結(jié)果
條件查詢(xún)
select 列名 from 表名 where 條件;
常用運(yùn)算符:
and,or,not 與或非 (and優(yōu)先級(jí)比or高)
>,>=,<,<= 大于,大于等于……
= 比較相等,不比較NULL
<=>比較相等,比較NULL
!=,<> 不等于
between a and b 范圍匹配,在閉區(qū)間 [a,b]范圍內(nèi)
in (option, ...) 如果是 option 中的任意一個(gè),返回 TRUE(1)
is NULL 是 NULL
is not NULL 不是 NULL
like 模糊匹配,% 表示任意多個(gè)(包括 0 個(gè))任意字符;_ 表示任意一個(gè)字符
以上查找的結(jié)果都是一個(gè)"臨時(shí)表",數(shù)據(jù)庫(kù)的表都是在硬盤(pán)上的,而此處的這個(gè)查詢(xún)結(jié)果臨時(shí)表,不是在硬盤(pán)上,而是在內(nèi)存中,隨著進(jìn)行了輸出之后,數(shù)據(jù)也就被釋放了。所以上面操作都是對(duì)臨時(shí)表操作,對(duì)原始數(shù)據(jù)不會(huì)產(chǎn)生影響。
當(dāng)用戶(hù)輸入sql之后,客戶(hù)端就會(huì)把這個(gè)sql包裝成網(wǎng)絡(luò)請(qǐng)求,發(fā)給服務(wù)器,服務(wù)器這邊收到請(qǐng)求之后,就會(huì)操作硬盤(pán),從硬盤(pán)中讀取數(shù)據(jù)把數(shù)據(jù)包裝成響應(yīng)。客戶(hù)端收到這個(gè)響應(yīng)數(shù)據(jù)之后,就會(huì)臨時(shí)的在內(nèi)存中把這個(gè)響應(yīng)結(jié)果保存起來(lái)并且在顯示器上輸出(標(biāo)準(zhǔn)輸出上打印)隨著打印完畢,在客戶(hù)端內(nèi)存中保存的結(jié)果數(shù)據(jù)也就被釋放了。
9、修改語(yǔ)句
update 表名 set 列名=值…… where 條件;
10、刪除語(yǔ)句
delete from 表名 where 條件;
這里修改的是原始數(shù)據(jù)。
舉例說(shuō)明:
創(chuàng)建數(shù)據(jù)庫(kù):
顯示當(dāng)前數(shù)據(jù)庫(kù):
創(chuàng)建名為student的表(需要操作數(shù)據(jù)庫(kù)中的表時(shí),需要先使用該數(shù)據(jù)庫(kù)):
查看表結(jié)構(gòu):
插入并查看:
insert進(jìn)行插入的時(shí)候,可以只插入其中的某一列或者某幾個(gè)列的. 此時(shí)其他的列將采用默認(rèn)值
可一次性插入多列,用(),隔開(kāi)
如果某一種類(lèi)型是datetime,可以用以下三種方式插入
查找:
指定列查找
指定查詢(xún)字段為表達(dá)式
查詢(xún)字段指定別名
針對(duì)查詢(xún)結(jié)果去重
針對(duì)查詢(xún)結(jié)果進(jìn)行排序
升序
降序
如果有NULL值,默認(rèn)NULL值為最小值
條件查詢(xún)
% 匹配任意多個(gè)(包括 0 個(gè))字符 ,可以匹配到任意張開(kāi)頭的名字
_ 匹配嚴(yán)格的一個(gè)任意字符 ,一個(gè)_能匹配到一個(gè)字符。
分頁(yè)查詢(xún)
查詢(xún)前三名的成績(jī)
修改:
把張三語(yǔ)文成績(jī)改為80
把所有人語(yǔ)文成績(jī)進(jìn)行修改
將總分前三的每個(gè)人語(yǔ)文成績(jī)加上10
刪除:
約束類(lèi)型
1、not null--- 指示某列不能存儲(chǔ) NULL 值。
2、unique---保證某列的每行必須有唯一的值。
3、default---規(guī)定沒(méi)有給列賦值時(shí)的默認(rèn)值。
指定默認(rèn)值后,沒(méi)有給該列賦值時(shí),該列默認(rèn)值為指定默認(rèn)值。
4、primary key(最重要的約束)not null 和 unique 的結(jié)合。確保某列(或兩個(gè)列多個(gè)列的結(jié)合)有有唯一標(biāo)識(shí),有助于更容易更快速地找到表中的一個(gè)特定的記錄。 主鍵約束,相當(dāng)于數(shù)據(jù)的唯一標(biāo)識(shí)。對(duì)于一個(gè)表來(lái)說(shuō),只能有一個(gè)列被指定為主鍵。
自增主鍵 primary key auto_increment,當(dāng)設(shè)定好自增主鍵之后,此時(shí)插入的記錄,就可以不指定自增主鍵的值了(直接使用null來(lái)表示) ,交給mysql自行分配即可。
5、foreign key ---保證一個(gè)表中的數(shù)據(jù)匹配另一個(gè)表中的值的參照完整性。
也稱(chēng)外鍵約束,描述的是兩張表的兩個(gè)列之間的"依賴(lài)關(guān)系”子表依賴(lài)于父表(子表引用自父表)要求子表中對(duì)應(yīng)的記錄得在父表中存在。
舉個(gè)例子:創(chuàng)建一個(gè)班級(jí)表和學(xué)生表如下,每個(gè)學(xué)生都要都屬于一個(gè)具體的班級(jí),這個(gè)班級(jí)首先得存在,這里學(xué)生表依賴(lài)班級(jí)表,就把學(xué)生表稱(chēng)為”子表“,班級(jí)表稱(chēng)為”父表“。
這種情況就可以用外鍵約束來(lái)描述。
外鍵約束,描述的是兩張表的兩個(gè)列之間的"依賴(lài)關(guān)系",子表依賴(lài)于父表(子表引用自父表)要求子表中對(duì)應(yīng)的記錄得在父表中存在,班級(jí)表中的班級(jí)只有1,2,3,此時(shí)我在子表學(xué)生表中插入一個(gè)班級(jí)為10,就會(huì)出現(xiàn)錯(cuò)誤,插入失敗。
插入班級(jí)表中有的班級(jí)就能插入成功。
外鍵約束也同樣在約束父表,當(dāng)父表中的某個(gè)記錄被子表依賴(lài)的時(shí)候,此時(shí)嘗試刪除修改都會(huì)失敗。
到此這篇關(guān)于MySql常用數(shù)據(jù)類(lèi)型與操作詳解的文章就介紹到這了,更多相關(guān)MySql常用數(shù)據(jù)類(lèi)型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 5.5下安裝MySQL 5.5全過(guò)程分享
網(wǎng)絡(luò)上有很多相關(guān)的安裝筆記,但是并不詳盡,或是編譯環(huán)境稍有不同,過(guò)程就會(huì)有差異,所以我總結(jié)了已有的經(jīng)驗(yàn)和我自己安裝過(guò)程中的體驗(yàn),擴(kuò)充并詳盡地記錄了整個(gè)過(guò)程。我選擇安裝的是MySQL5.5.27版本。以下是我的安裝筆記2012-09-09MySQL數(shù)據(jù)分析存儲(chǔ)引擎示例講解
這篇文章主要為大家介紹了MySQL數(shù)據(jù)分析關(guān)于存儲(chǔ)引擎的示例講解,搞懂存儲(chǔ)引擎會(huì)對(duì)大家在數(shù)據(jù)分析方面有很大的幫助,有需要的朋友可以借鑒參考下2021-10-10MySQL數(shù)據(jù)備份之mysqldump的使用詳解
下面小編就為大家?guī)?lái)一篇MySQL數(shù)據(jù)備份之mysqldump的使用詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11