數(shù)據(jù)庫是儲存資料的倉庫。其存儲空間巨大,可存儲數(shù)百萬、千萬、上億條數(shù)據(jù)。但數(shù)據(jù)庫存儲數(shù)據(jù)并非隨意,而是要遵循一定的規(guī)則,否則查詢效率會很低。當(dāng)下網(wǎng)絡(luò)世界就是數(shù)據(jù)世界,有許多來源,如旅行記錄,消費(fèi)記錄,瀏覽網(wǎng)頁,發(fā)送信息等。除文字類型外,圖片,音樂,聲音也是數(shù)據(jù)。那么,在熟練使用數(shù)據(jù)庫的同時,也需要我們對數(shù)據(jù)庫進(jìn)行操作。下面就有小編為您帶來Mysql數(shù)據(jù)庫基礎(chǔ)操作的相關(guān)介紹。
DDL的概述:
用于操作對象和對象的屬性,這種對象包括數(shù)據(jù)庫本身,以及數(shù)據(jù)庫對象,像:表、視圖等等,DDL對這些對象和屬性的管理和定義具體表現(xiàn)在Create、Drop和Alter上。
1.1、創(chuàng)建數(shù)據(jù)庫和表
==操作數(shù)據(jù)庫==
創(chuàng)建數(shù)據(jù)庫,判斷不存在,再創(chuàng)建,并指定字符集
格式:create database if not exists 數(shù)據(jù)庫名稱 character set 字符集名;
例子:create database if not exists db4 character set gbk;
==操作表==
創(chuàng)建表
create table 表名( 列名1 數(shù)據(jù)類型1, 列名2 數(shù)據(jù)類型2, ...);
1.2、查詢數(shù)據(jù)庫和表
==操作數(shù)據(jù)庫==
查詢所有數(shù)據(jù)庫:
show databases;
查詢某個數(shù)據(jù)庫的創(chuàng)建語句:
show create database 數(shù)據(jù)庫名稱;
==操作表==
查詢某個數(shù)據(jù)庫中所有的表名稱:
show tables;
查詢表結(jié)構(gòu):
desc 表名;
1.3、修改數(shù)據(jù)庫和表
==操作數(shù)據(jù)庫==
修改數(shù)據(jù)庫的字符集:
alter database 數(shù)據(jù)庫名稱 character set 字符集名稱;
==操作表==
修改表名:
alter table 表名 rename to 新表名;
修改表的字符集:
alter table 表名 character set 字符集名稱;
添加一列:
alter table 表名 add 列表 數(shù)據(jù)類型;
修改列名稱、類型
alter table 表名 change 列名 新列名 新數(shù)據(jù)類型;
alter table 表名 modify 列名 新數(shù)據(jù)類型;
刪除列
alter table 表名 drop 列名;
1.4、刪除數(shù)據(jù)庫和表
==操作數(shù)據(jù)庫==
判斷數(shù)據(jù)庫存在,存在再刪除:
drop database if exists 數(shù)據(jù)庫名稱;
==操作表==
判斷表存在,存在再刪除:
drop table if exists 表名;
數(shù)據(jù)庫基礎(chǔ)操作
2.1、基本語法
select 字段列表from 表名列表where 條件列表group by 分組列表having 分組字段order by 排序limit 分頁限定
2.2、基礎(chǔ)查詢
多個字段查詢
select 字段1,字段2,.. from 表名;
去除重復(fù):
select distinct 列名;
計(jì)算列
一般可以使用四則運(yùn)算計(jì)算一些列的值
ifnull(表達(dá)式1,表達(dá)式2):null參與的運(yùn)算,計(jì)算結(jié)果都為null
表達(dá)式1:哪個字段需要判斷是否為null
表達(dá)式2:該字段為null后的替換值
起別名
as:as也可以省略(使用空格也行)
2.3、條件查詢
where子句后跟條件
運(yùn)算符
==>、<、<=、>=、=、<>==
between…and
in(集合)
like:模糊查詢
占位符
_:單個任意字符
%:多個任意字符
is null
and 或 &&
or 或 ||
not 或 !
2.4、分組查詢
語法:group by 分組字段;
注意:
1.分組之后查詢的子彈:分組字段、聚合函數(shù)
2.where和having的區(qū)別?
where在分組之前進(jìn)行限定,如果不滿足條件,則不參與分組。having在分組之后進(jìn)行限定,如果不滿足條件,則不會查詢出來
where后不可以跟聚合函數(shù),having后可以進(jìn)行聚合函數(shù)的判斷
2.5、分頁查詢
語法:limit 開始索引,每頁顯示的條數(shù)
公式:==開始索引 =(當(dāng)前的頁碼 -1) * 每頁顯示的條數(shù)==
select * from student limit 0,3;select * from student limit 3,3;-- limit是一個mysql“方言”
數(shù)據(jù)庫基礎(chǔ)操作
DML的概述:
用于操作數(shù)據(jù)庫對象中包含的數(shù)據(jù),也就是說操作的單位是記錄。
3.1、添加數(shù)據(jù):
語法:insert into 表名(列名1,列名2…列名n) values(值1,值2,..值n);
-- 插入數(shù)據(jù)(使用value或values都可以)insert into student values(1,'張三',1); INSERT INTO student(id,username,tid) VALUES -- 同時插入多條數(shù)據(jù)(mysql獨(dú)有)(1,'張三1',1),(2,'張三2',2),(3,'張三3',3),(4,'張三4',4);
3.2、刪除數(shù)據(jù)
語法:delete from 表名 [where 條件]
delete from student where id=3;
3.3、修改數(shù)據(jù)
語法:update 表名 set 列名 = “數(shù)據(jù)” where 條件;
update student set username = "張三修改" where id = 3;
-- 隱式內(nèi)連接SELECT p.`id`,p.`productName`,pr.`dirName` FROM product p,productdir pr WHERE p.`dir
隨著云計(jì)算的發(fā)展和大數(shù)據(jù)時代的到來,關(guān)系型數(shù)據(jù)庫越來越難以滿足需求,這主要是因?yàn)樾枰獙υ絹碓蕉嗟陌腙P(guān)系型和非關(guān)系型數(shù)據(jù)進(jìn)行存儲管理,而分布式技術(shù)等新技術(shù)的出現(xiàn),也對數(shù)據(jù)庫技術(shù)提出了新的要求,導(dǎo)致非關(guān)系型數(shù)據(jù)庫數(shù)量不斷增加。但傳統(tǒng)關(guān)系型數(shù)據(jù)庫在傳統(tǒng)領(lǐng)域中仍具有強(qiáng)大的生命力。上面就是Mysql數(shù)據(jù)庫基礎(chǔ)操作的相關(guān)介紹,希望對您有所幫助。
[免責(zé)聲明]
文章標(biāo)題: Mysql數(shù)據(jù)庫基礎(chǔ)操作
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。