1.? DDL
數(shù)據(jù)定義語(yǔ)言(DDL仅叫,Data Defintion Language)語(yǔ)句:數(shù)據(jù)定義語(yǔ)句笙隙,用于定義不同的數(shù)據(jù)對(duì)象掏呼、數(shù)據(jù)庫(kù)憎夷、表祥得、列饮焦、索引等疏之。常用的語(yǔ)句關(guān)鍵字包括create、drop耸黑、alter等。
1.1 ?數(shù)據(jù)庫(kù)操作
(1)添加數(shù)據(jù)庫(kù): create database name;
(2)查看數(shù)據(jù)庫(kù): show databases;
(3)刪除數(shù)據(jù)庫(kù): drop database name;
(4)使用數(shù)據(jù)庫(kù): use name;
1.2 ?數(shù)據(jù)表操作
(1)添加表:
基本語(yǔ)法:create table表名(字段名1字段類(lèi)型,....字段名n字段類(lèi)型n);
示例:create table user(username varchar(32),password varchar(32));
要是需要增加主鍵并自增:id int(3) primary key auto_increment
(2)查看表: show tables;
(3)刪除表:drop table name;
(4)修改表名:alter table舊表名rename新的表名;
1.3? 數(shù)據(jù)字段操作
(1)修改字段類(lèi)型:alter table 表名 modify 字段名 varchar(20);
(2)增加表字段:alter table 表名 add column 字段名 類(lèi)型;
(3)刪除表字段:alter table 表名 drop column 字段名;
2.? DML
增刪改查搜锰,CRUD
(1)插入數(shù)據(jù):
insert into表values(值1,值2,值n);
insert into表(字段1,字段2,字段n) values(值1,值2,值n);
(2)查詢數(shù)據(jù):
select * from表;
select字段from表;
select distinct字段from表;? // 去除重復(fù)的
select字段from表where條件;
select字段from表order by字段 排序關(guān)鍵詞
select字段from表group by字段 排序關(guān)鍵詞? //分組排列
結(jié)果集限制:select字段from表limit數(shù)量;
asc升序排列伴郁,從小到大(默認(rèn))
desc降序排列,從大到小
統(tǒng)計(jì)類(lèi)函數(shù)使用(聚合函數(shù))
函數(shù)說(shuō)明
sum求和
count統(tǒng)計(jì)總數(shù)
max最大值
min最小值
avg平均值
(3)表連接:
當(dāng)需要查詢多個(gè)表中的字段時(shí)蛋叼,就可以使用表連接來(lái)實(shí)現(xiàn)焊傅。表聯(lián)接分為內(nèi)連接和外連接。
內(nèi)聯(lián)結(jié):將兩個(gè)表中存在聯(lián)結(jié)關(guān)系的字段符合聯(lián)結(jié)關(guān)系的那些記錄形成記錄集的聯(lián)結(jié)鸦列。
外連接:會(huì)選出其他不匹配的記錄租冠,分為外左聯(lián)結(jié)和外右聯(lián)結(jié)。
①內(nèi)連接
select表1.字段,表n.字段from表1 [別名],表n where條件;
select表1.字段,表n.字段from表1 INNER JOIN表n on條件;
②外連接
左連接:包含所有的左邊表中的記錄甚至是右邊表中沒(méi)有和它匹配的記錄
select表1.字段[as別名],表n.字段from表1 LEFT JOIN表n on條件;
右連接:包含所有的右邊表中的記錄甚至是右邊表中沒(méi)有和它匹配的記錄
select表1.字段[as別名],表n.字段from表1 right JOIN表n on條件;
(4)更新數(shù)據(jù):
update表名set字段1=值1,字段2=值2,字段n=值n where條件
(5)刪除數(shù)據(jù):
delete from表[where條件];
TRUNCATE TABLE表名;//清空表的數(shù)據(jù)薯嗤,并且讓自增的id從1開(kāi)始自增
3.? DCL
首先顽爹,需創(chuàng)建用戶
3.1 添加權(quán)限
類(lèi)別詳細(xì)解示
基本語(yǔ)法grant 權(quán)限 on 庫(kù).表 to '用戶'@'主機(jī)' identified by '密碼';
示例grant select, insert on test.* to 'huangguizhao'@'localhost' identified by '4311';
示例說(shuō)明給予huangguizhao用戶,在本機(jī)連接test庫(kù)所有表的權(quán)限骆姐。操作的這些表具有查詢和寫(xiě)入權(quán)限
注:可以針對(duì)一個(gè)用戶增加多條權(quán)限镜粤。
3.2 刪除權(quán)限
類(lèi)別詳細(xì)解示
基本語(yǔ)法revoke 權(quán)限 on 庫(kù).表 from '用戶'@'主機(jī)';
示例revoke select, insert on test.* from 'huangguizhao'@'localhost';
示例說(shuō)明給予huangguizhao用戶,在本機(jī)連接test庫(kù)所有表的權(quán)限玻褪。操作的這些表具有查詢和寫(xiě)入權(quán)限
參數(shù)說(shuō)明
符號(hào)說(shuō)明
grant all在grant后接all說(shuō)明給予所有權(quán)限
revoke all在revoke后接all說(shuō)明刪除所有權(quán)限
權(quán)限 on .. 所明給予所有庫(kù)所有表的操作權(quán)限
'用戶'@'主機(jī)'主機(jī)里面若為%肉渴。任意來(lái)源的主機(jī)均可以使用這個(gè)用戶來(lái)訪問(wèn)
創(chuàng)建數(shù)據(jù)庫(kù)用戶huangguizhao,具有對(duì)test數(shù)據(jù)庫(kù)中所有標(biāo)的select / insert權(quán)限