《Mysql入門三十分鐘MySQL快速入門(圖解)》要點(diǎn):
本文介紹了Mysql入門三十分鐘MySQL快速入門(圖解),希望對您有用。如果有疑問,可以聯(lián)系我們。
MYSQL必讀一、MySQL安裝
MYSQL必讀MySQL的下載
MYSQL必讀http://dev.mysql.com/downloads/mysql/
MYSQL必讀MySQL版本選擇
MYSQL必讀
MYSQL必讀MySQL功能自定義選擇安裝
MYSQL必讀功能自定義選擇
MYSQL必讀
MYSQL必讀路徑自定義選擇
MYSQL必讀
MYSQL必讀設(shè)置root用戶暗碼
MYSQL必讀
MYSQL必讀安裝完成,點(diǎn)擊MySQL Workbench 6.3 CE進(jìn)入MySQL客戶端
MYSQL必讀二、SQL基礎(chǔ)
MYSQL必讀SQL語句分類
MYSQL必讀1.DDL(Data Definition Languages)語句:數(shù)據(jù)定義語言,這些語句定義了不同的數(shù)據(jù)段、數(shù)據(jù)庫、表、列、索引等數(shù)據(jù)庫對象.常用的語句關(guān)鍵字主要包括create/drop/alter
MYSQL必讀2.DML(Data Manipulation Language)語句:數(shù)據(jù)把持語句,用于添加、刪除、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性.常用的語句關(guān)鍵字主要包括 insert/delete/update/select等
MYSQL必讀3.DCL(Data Control Language)語句:數(shù)據(jù)控制語句,用于控制不同數(shù)據(jù)段直接的許可和訪問級別的語句.這些語句定義了數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和平安級別.主要的語句關(guān)鍵字包括grant/revoke等
MYSQL必讀DDL語句(涉及表的定義、結(jié)構(gòu)的修改)
MYSQL必讀一、create語句
MYSQL必讀
MYSQL必讀Query Ok代表語句執(zhí)行成功
MYSQL必讀1 row affected代表數(shù)據(jù)庫一行收到影響
MYSQL必讀0.01 sec代表操作執(zhí)行的時(shí)間
MYSQL必讀
create table student(
SID int not null auto_increment,
sNo int ,
sName varchar(50) not null,
primary key(SID)
);
MYSQL必讀1.查看系統(tǒng)中都存在哪些數(shù)據(jù)庫(show databases;)
MYSQL必讀2.在查看系統(tǒng)中已有的數(shù)據(jù)庫后,可以用(use dbname)選擇對應(yīng)的數(shù)據(jù)庫
MYSQL必讀3.在選擇對應(yīng)的數(shù)據(jù)庫后,查詢該數(shù)據(jù)庫下面的所有的表(show tables)
MYSQL必讀二、刪除數(shù)據(jù)庫
MYSQL必讀刪除數(shù)據(jù)庫的語法:drop databse dbname;
MYSQL必讀三、創(chuàng)建表
MYSQL必讀語法:create table tablename(column_name_1 column_type_1 constraints,column_name_2 column_type2 constrationts)
MYSQL必讀mysql的表名是以目錄形式存儲(chǔ)在磁盤上,表名的字符可以是任何目錄名允許的字符.
MYSQL必讀column_name是列名
MYSQL必讀column_type是列的數(shù)據(jù)類型
MYSQL必讀constrationts是列的約束條件
MYSQL必讀
MYSQL必讀1.查看表定義:desc tablename
MYSQL必讀2.查看創(chuàng)建表的SQL語句:show create table tablename
MYSQL必讀四、刪除表
MYSQL必讀刪除表的語法:drop table tablename;
MYSQL必讀五、修改表
MYSQL必讀aleter 語法 | 說明
MYSQL必讀
---|---
alter table tablename modify columnname newColumnType | 修改表字段的類型(==modify 不能更改字段名稱==)
alter table tablename add newColumnname newColumnType| 增加表字段
alter table tablename drop oldCloumnname|刪除表字段
alter table tablename change oldColumname newColumnname newColumntype|修改字段的名稱及類型
alter table tablename rename (to) newtablename|修改表名稱
MYSQL必讀修改字段的排列順序
MYSQL必讀在alter的語法后面都有[first\after columnname]可選項(xiàng)
MYSQL必讀
alter table user add address varchar(20) first ;
alter table user add age int after name ;
MYSQL必讀DML(對數(shù)據(jù)庫表記錄進(jìn)行操作,增(insert)刪(delete)改(update)查(select))
MYSQL必讀1.insert語句
MYSQL必讀語法:
MYSQL必讀插入一條:insert into tablename(columnname1,columnname2...)values(val1,val2...);
MYSQL必讀插入多條:insert into tablename(columnname1,columnname2...)values(val1,val2...),(val1,val2...);
MYSQL必讀2.update語句
MYSQL必讀語法:update tablename set columnname=value [where condition]
MYSQL必讀如果使用MySQL Workbench,update語句不加where條件的會(huì)執(zhí)行錯(cuò)誤,需要如下圖設(shè)置取消設(shè)置:
MYSQL必讀
MYSQL必讀-3.delete語句
MYSQL必讀語法:delete from tablename where condition
MYSQL必讀-4.select語句
MYSQL必讀語法:select * from tablename [where condition]
MYSQL必讀5.表連接
MYSQL必讀1.內(nèi)連接(僅選出兩張表中互相匹配的數(shù)據(jù))
MYSQL必讀
select cno,cname,sname from student inner join course on cno=sno;
select cno,cname,sname from student,course where cno=sno;
MYSQL必讀2.外連接
MYSQL必讀外連接又區(qū)分:
MYSQL必讀1.左連接(left join):包含左邊表的所有記錄,右邊沒有的為Null
MYSQL必讀2.右連接(right join):包含右邊表的所有記錄,左邊沒有的為null
MYSQL必讀6.子查詢
MYSQL必讀-7.記錄聯(lián)合
MYSQL必讀語法:
MYSQL必讀
select * from t1 union all select * from t2;
select * from t1 union select * from t2;
MYSQL必讀union all與union的區(qū)別:
MYSQL必讀union all是把結(jié)果集直接合并在一起,而union是將union all后的結(jié)果進(jìn)行一次distinct,去除重復(fù)后的結(jié)果
MYSQL必讀DCL語句(DCL語句主要是dba用來管理系統(tǒng)中的對象權(quán)限)
MYSQL必讀grant與revoke
MYSQL必讀三、MySQL支持的數(shù)據(jù)類型
MYSQL必讀數(shù)值類型
MYSQL必讀MySQL支持類型后面的小括號(hào)指定顯示寬度,例如:int(5)表示當(dāng)數(shù)值寬度小于5的時(shí)候在數(shù)字前面填滿寬度,如果不顯示指定寬度則默認(rèn)為int(11).如果插入的數(shù)據(jù)大于這個(gè)數(shù)值寬度,對實(shí)際的插入值是沒有影響的,是依照int類型的實(shí)際大小進(jìn)行的.
MYSQL必讀
create table valuetype(
age int,
age1 int
)
insert into valuetype(age,age1)values(1,2);//這時(shí)候數(shù)據(jù)庫就顯示1
alter table valuetype modify age int zerofill;//這時(shí)候數(shù)據(jù)庫就顯示'0000000001'
MYSQL必讀數(shù)據(jù)插入bit類型字段時(shí),首先轉(zhuǎn)換為二進(jìn)制,如果位數(shù)允許,將插入成功,如果位數(shù)小于實(shí)際的位置,則插入失敗.
MYSQL必讀日期時(shí)間類型
MYSQL必讀mysql里面獲取當(dāng)前時(shí)間為now().mssql獲取當(dāng)前時(shí)間為getdate()
MYSQL必讀timestamp,支持的范圍非常小,從1970-2038年,timestamp受時(shí)區(qū)的影響
MYSQL必讀
create table timestamptest(
tp timestamp)
MYSQL必讀系統(tǒng)會(huì)自動(dòng)給tp賦予默認(rèn)值current_timestamp(系統(tǒng)日期),但是mysql只給第一個(gè)timestamp設(shè)置默認(rèn)值,如果有第二個(gè)timestamp類型,則默認(rèn)值設(shè)置為0
MYSQL必讀字符串類型
MYSQL必讀1.char與varchar類型的區(qū)別:
MYSQL必讀char列最后的空格已經(jīng)刪除,而varchar保留空格
MYSQL必讀四、MySQL中運(yùn)算符
MYSQL必讀算術(shù)運(yùn)算符
MYSQL必讀比較運(yùn)算符,滿足返回1,否則返回0
MYSQL必讀邏輯運(yùn)算符(布爾運(yùn)算符)
MYSQL必讀位運(yùn)算符
MYSQL必讀運(yùn)算符優(yōu)先級,大多情況下使用()進(jìn)行操作
MYSQL必讀五、常用函數(shù)
MYSQL必讀字符串函數(shù)
MYSQL必讀數(shù)值函數(shù)
MYSQL必讀日期和時(shí)間函數(shù)
MYSQL必讀流程函數(shù)
MYSQL必讀其他函數(shù)
MYSQL必讀六、選擇合適的數(shù)據(jù)類型
MYSQL必讀char與varchar
MYSQL必讀在Innodb存儲(chǔ)引擎中,建議使用varchar類型.對于Innodb數(shù)據(jù)表,內(nèi)部的行存儲(chǔ)格式?jīng)]有區(qū)分固定長度和可變長度列,因此固定長度列的性能不一定比不可變長度的性能好.
MYSQL必讀Text與blob
MYSQL必讀一般在保存少量字符串的時(shí)候,我們會(huì)選擇char或者varchar,而在保存較大文本的時(shí)候,通常會(huì)選擇使用text或者blob.兩者的區(qū)別:text只能保存字符數(shù)據(jù),比如日志.blob能保存二進(jìn)制數(shù)據(jù),比如照片.
MYSQL必讀浮點(diǎn)數(shù)與定點(diǎn)數(shù)
MYSQL必讀在MySQL中,decimal或者(numberic)用來表示定點(diǎn)數(shù)
MYSQL必讀日期類型的選擇
MYSQL必讀date/time/datetime/timestamp
MYSQL必讀七、索引的設(shè)計(jì)和使用
MYSQL必讀索引概述
MYSQL必讀索引是數(shù)據(jù)庫中用來提高性能的最常用工具.在MySQL中,MyISAM與Innodb存儲(chǔ)引擎的表默認(rèn)創(chuàng)建的都是Btree索引.
MYSQL必讀1.索引的創(chuàng)建
MYSQL必讀
create table indexTest(
id int not null auto_increment,
memberid int not null,
createtime datetime not null default current_timestamp,
primary key (id)
)
alter table indextest add orderserial varchar(50) not null;
create unique index IX_orderserial on indexTest(orderserial);
MYSQL必讀insert into indextest (memberid,createtime,orderserial)values(112123,'2016-08-14','sz121213')
說明:上面創(chuàng)建一個(gè)表,其中定義orderserial為唯一索引.
MYSQL必讀語法:create [unique\fulltext\spatial] index index_name on tablename(columname)
MYSQL必讀2.設(shè)計(jì)索引的原則
MYSQL必讀1.最合適的索引列是出現(xiàn)在where子句中列,或連接子句中指定的列,而不是出現(xiàn)在select關(guān)鍵字后面的選擇列表的列
MYSQL必讀2.使用唯一索引,需要考慮列中某個(gè)值得分布,如果索引列種的基數(shù)越大,則索引的效果越好.舉個(gè)例子:訂單號(hào)就可以設(shè)置唯一索引,因?yàn)橛唵翁?hào)的不一樣.而對于rowstatus就無須了,因?yàn)閞owstatus要么是有效要么是無效.這樣的篩選出的范圍還是很多,沒有意義
MYSQL必讀3.不要過度索引.因?yàn)樗幸惨加妙~外的磁盤空間,如果一個(gè)索引很少使用,那么會(huì)不必要的減緩表的修改速度
顯示MySQL的執(zhí)行計(jì)劃:explain 后面加mysql語句
MYSQL必讀八、視圖
MYSQL必讀視圖(View)
MYSQL必讀定義:視圖是一種虛擬存在的表,對于使用視圖的用戶來說基本上是透明的,視圖并不是在數(shù)據(jù)庫中實(shí)際存在.
MYSQL必讀優(yōu)勢:
MYSQL必讀1.簡單,用戶完全不需要關(guān)心后面對應(yīng)的表的結(jié)構(gòu)/關(guān)聯(lián)條件和篩選條件.對用戶來說已經(jīng)是過濾好的符合條件的結(jié)果集
MYSQL必讀2.平安,使用視圖的用戶只能訪問他們被允許查詢的結(jié)果集
MYSQL必讀3.數(shù)據(jù)獨(dú)立,一旦視圖的結(jié)構(gòu)確定了,可以屏蔽表結(jié)構(gòu)變化對用戶的影響,源表增加列對視圖沒有影響.
MYSQL必讀語法:
MYSQL必讀
create or replace view index_view as
select * from indextest
MYSQL必讀1.創(chuàng)建create [or replace] view viewName as select ...
MYSQL必讀2.查詢 select * from 視圖名稱
MYSQL必讀3.展示視圖 show tables;
MYSQL必讀4.刪除視圖 drop view viewname
MYSQL必讀九、存儲(chǔ)過程和函數(shù)
MYSQL必讀一、存儲(chǔ)過程(store procedure)和函數(shù)
MYSQL必讀存儲(chǔ)過程和函數(shù)是事先經(jīng)過編譯并存在數(shù)據(jù)庫中的一段SQL語句的集合,調(diào)用存儲(chǔ)過程和函數(shù)可以簡化應(yīng)用開發(fā)人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫和應(yīng)用服務(wù)器之間的傳輸,對于提高數(shù)據(jù)處理的效率是有好處的
MYSQL必讀語法:
MYSQL必讀
create database finance;//創(chuàng)建finance數(shù)據(jù)庫
use finance;
create table orders(
orderId bigint not null auto_increment,
memberId int not null default 0,
serialNumber varchar(50) not null default '',
amount decimal(18,2) not null default 0,
createTime datetime not null default current_timestamp,
primary key (orderid)
)//創(chuàng)建orders訂單表
insert into orders (memberId,serialNumber,amount) values(6561121,'sz12234222',5),(233444,'ys1652233',10)//插入測試數(shù)據(jù)
delimiter &
create procedure orders_serial(in serial varchar(50))
reads sql data
begin
select * from orders
where serialNumber=serial;
end &
MYSQL必讀注釋:delimiter $$命令就是將語句的結(jié)束符從分號(hào);修改成其他符號(hào),這里指的是$$為結(jié)尾.這樣在number后面的分號(hào)就不會(huì)認(rèn)為結(jié)束.
MYSQL必讀1.調(diào)用存儲(chǔ)過程
MYSQL必讀
call orders_serial('sz12234222')
MYSQL必讀2.存儲(chǔ)過程的好處
MYSQL必讀邏輯封裝在數(shù)據(jù)庫端,調(diào)用者不需要了解中間的處理邏輯,一旦調(diào)用邏輯發(fā)生變化,只需要修改存儲(chǔ)過程即可,而對調(diào)用者的程序完全沒有影響.
MYSQL必讀3.刪除存儲(chǔ)過程
MYSQL必讀
drop procedure if exists orders_serial
//if exists可選
MYSQL必讀4.查看存儲(chǔ)過程差狀態(tài)
MYSQL必讀
show procedure status like 'orders_serial'
MYSQL必讀5.查詢存儲(chǔ)過程的定義
MYSQL必讀
show create procedure orders_serial
MYSQL必讀二、存儲(chǔ)過程變量的使用
MYSQL必讀存儲(chǔ)過程可以使用變量,并且在MySQL5.1版本后,不區(qū)分大小寫
MYSQL必讀1.變量的定義
MYSQL必讀變量的作用域只能在begin...end塊中,可以嵌套在塊中
MYSQL必讀declare currentTime date;
MYSQL必讀2.變量的賦值
MYSQL必讀
set currentTime=now();//直接賦值
select XX into currentTime from XX;//也可以通過sql語句進(jìn)行賦值
MYSQL必讀3.定義條件和處理
MYSQL必讀
declare handler_type handler for contidtion_value;
MYSQL必讀handler_type:
MYSQL必讀1.continue;
2.exit;
3.undo;
MYSQL必讀condition_value:
MYSQL必讀1.sqlstate
2.sqlwarning
3.not found
4.sqlexception
MYSQL必讀eg: declare continue handler for sqlstate '2' set @x=1;
MYSQL必讀三、光標(biāo)的使用
MYSQL必讀在存儲(chǔ)過程和函數(shù)中,可以使用光標(biāo)對結(jié)果集進(jìn)行循環(huán)處理,光標(biāo)的使用包含光標(biāo)的聲明: open、fetch、close
MYSQL必讀定義:
MYSQL必讀declare cur_id cursor for select * from orders;
open cur_id;
fetch cur_id;
close cur_id;
MYSQL必讀四、事件調(diào)度器
MYSQL必讀事件調(diào)度器是MySQL5.1后面新增的功能,可以將數(shù)據(jù)庫依照自定義時(shí)間周期觸發(fā)某種操作.數(shù)據(jù)庫默認(rèn)操作是關(guān)閉的.需要打開
MYSQL必讀
create event x
on schedule
every 5 second
do
insert into orders (memberId,serialNumber,amount) values(6561121,'222',5)
MYSQL必讀
set global event_scheduler =1//打開調(diào)度器
alter event x disable;//禁用事件調(diào)度器
drop event x;//刪除事件調(diào)度器
MYSQL必讀十、 觸發(fā)器
MYSQL必讀觸發(fā)器
MYSQL必讀觸發(fā)器是在5.02版本后支持的,觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫對象,在滿足條件時(shí)觸發(fā),并執(zhí)行觸發(fā)器中定義的語句集合.可以幫忙應(yīng)用在數(shù)據(jù)庫端確保數(shù)據(jù)的完整性
MYSQL必讀
drop trigger orderlog
delimiter $
create trigger orderlog
after insert on orders for each row
begin
insert into orderslog (content) values(new.serialNumber);
end
insert into orders (memberId,serialNumber,amount) values(6561121,'sz12234222',5)
MYSQL必讀解釋:上面描述的是創(chuàng)建一個(gè)觸發(fā)器,當(dāng)往訂單表中插入數(shù)據(jù)之后,在訂單日志表插入一條記錄.使用old和new來引用觸發(fā)器發(fā)生變化的記錄內(nèi)容,目前只支出行級觸發(fā),不支持語句級觸發(fā)
MYSQL必讀觸發(fā)器執(zhí)行的順序
MYSQL必讀
before insert\before update\after update
MYSQL必讀十一、 事務(wù)控制和鎖定語句
MYSQL必讀MySQL存儲(chǔ)引擎的事務(wù)說明
MYSQL必讀1.Lock Table與Unlock Table
MYSQL必讀語法:
MYSQL必讀use finance;
lock table orders read;
unlock table;
MYSQL必讀如果某個(gè)進(jìn)程(session1)lock定了表,那么其他的進(jìn)程(session2)可以查詢,但是不能進(jìn)行更新操作,直到第一個(gè)進(jìn)程釋放了鎖
MYSQL必讀2.事務(wù)控制
MYSQL必讀十二、總結(jié)
MYSQL必讀很高興您能閱讀到這里,可能在三十分鐘很難吸收這么多的知識(shí),這篇文章也是我之前學(xué)習(xí)MySQL筆記整合的.這篇文章也是理論偏多,對于其中比較比較難理解知識(shí)點(diǎn)寫些Demo,權(quán)當(dāng)個(gè)人理解,如有不足的地方,請您指出.如果對您有所贊助,請點(diǎn)個(gè)贊!
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql入門三十分鐘MySQL快速入門(圖解)》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7818.html