常用的MySql數(shù)據(jù)庫SQL語言特點(diǎn)及用法,幫助新手快速上車

SQL全稱Structured Query Language 結(jié)構(gòu)化查詢語言庵佣,跟編程語言有明顯的語言區(qū)別歉胶,編程語言例如PHP、JAVA巴粪、C等是HOW型怎么去設(shè)計(jì)的語言通今,而SQL為WHAT型查詢是什么的語言粥谬。

在SQL的執(zhí)行上可以分為三個種類,且各種類的執(zhí)行角度辫塌,實(shí)際我們編程操作中的比例各不相同漏策。

數(shù)據(jù)操作語言:DML is Data Manipulation Language statements,SQL中處理數(shù)據(jù)等操作統(tǒng)稱為數(shù)據(jù)操縱語言臼氨,為數(shù)據(jù)庫使用角度掺喻,所占比例大概為80%,即大部分SQL操作中都是DML储矩,而在DML中80%操作為增刪改查中的查感耙,對SELECT查中的靈活運(yùn)用是SQL程序猿需要掌握的內(nèi)容。

數(shù)據(jù)定義語言:DDL is Data Definition Language statements持隧,SQL中用于定義和管理數(shù)據(jù)庫中的所有對象的語言即硼,為數(shù)據(jù)庫建設(shè)角度,例如:建表屡拨、建庫只酥、建視圖等,所占比例大概為15%呀狼。

數(shù)據(jù)控制語言:DCL is Data Control Language statements裂允,SQL中用于授權(quán)或回收訪問數(shù)據(jù)庫的某種特權(quán),為數(shù)據(jù)庫建設(shè)角度哥艇,實(shí)現(xiàn)控制數(shù)據(jù)庫操縱事物發(fā)生的時間及效果绝编,對數(shù)據(jù)庫實(shí)行監(jiān)視等,所占比例5%她奥。

mysql語法

請點(diǎn)擊此處輸入圖片描述

下面是附上MySql的基本語法

MySQL:眾多關(guān)系型數(shù)據(jù)庫中的一種瓮增,

倉庫 --數(shù)據(jù)庫

箱子 --表

數(shù)據(jù)庫:

進(jìn)入mysql 命令行: mysql -uroot -p

查看所有數(shù)據(jù)庫: show databases;

創(chuàng)建數(shù)據(jù)庫: create database niu charset utf8;

刪除數(shù)據(jù)庫: drop database niu;

選擇數(shù)據(jù)庫: use databases;

查看所有表: show tables;

查看創(chuàng)建數(shù)據(jù)庫的語句:show create database databasename;

查看創(chuàng)建表的語句:show create table tablename;

查看表結(jié)構(gòu):desc tablenmae;

表:

約束

#自增長

auto_increment

#非空

not null

#默認(rèn)值

default 'xx'

#唯一

unique

#指定字符集

charset

#主鍵

primary key

#外鍵

增加兩個表之間的聯(lián)系

增:

#學(xué)生表

create table students(

id int auto_increment primary key,

name varchar(10) not null哩俭,

sex varchar(3) default '女',

address varchar(50),

phone int not null unique,

age绷跑,

);

#成績表

create table scores(

id int auto_increnent primary key,

s_id int not null,

grade float not null,

);

刪:

drop table tablename;

truncate tablename;#快速刪除表

改:

alter table oldtable rename newtable; #改表名

alter table tablename modify name varchar(20);#改表結(jié)構(gòu)

alter table tablename change name newname varchar(20);#改表結(jié)構(gòu)

alter (table tablename add age float

after name;#新增字段的位置

查:

show create table tablename ;#查看新建表語句

desc table;#查看表結(jié)構(gòu)

show tables ;#查看所有表

數(shù)據(jù):

insert into student (name,money,sex,phone) values ('hk',10000,'男',188);

insert into student values('','小明',100,'',120);

turncate tablename; #刪除整表數(shù)據(jù)凡资,自增長id從頭再來砸捏,快速,從磁盤直接刪除隙赁,不可恢復(fù)

delete from student垦藏;

#刪除整個表的數(shù)據(jù),自增長繼續(xù)

update student set money=100伞访;#不指定條件掂骏,修改所有

update student set money=110 where name='hk';#只改hk

自動提交

取消自動提交 set @@autocommitt=0;

select @@autocommitt=0;

#自動提交取消后,當(dāng)前會話顯示已經(jīng)成功執(zhí)行厚掷,其實(shí)后臺并沒有執(zhí)行

查:

select * from students limit 1,5; #從第幾條開始弟灼,下面的x條级解,不包含開始的那一條

SELECT * from students limit 5;查詢5條

SELECT id,stu_name,sex,money,phone from students;#指定查詢的字段

SELECT * from students;#查詢所有的數(shù)據(jù)

SELECT * from students where sex='男';#指定條件

SELECT * from students where sex='男' and money>100; #多個條件,必須同時滿足

SELECT * from students where sex='男' or sex='未知' ; #多個條件田绑,有一個滿足即可

SELECT * from students where sex !='男'; #<>也是不等于

SELECT * FROM students where addr like '%東京%';#模糊匹配勤哗,%代表的是通配符,必須得用like

SELECT * from students a where a.stu_name like '姚_';#_通配符表示任意一個單字符掩驱,姚字后面只能跟一個字

SELECT a.stu_name '學(xué)生名稱',a.phone '學(xué)生電話' from students as a where a.stu_name='姚遠(yuǎn)';#給表起別名,as可以省略

SELECT * from students a where a.stu_name in ('牛牛','林倩','姚遠(yuǎn)');# in

SELECT * from students a where a.money BETWEEN 1000 and 10000;#在什么什么之間的數(shù)據(jù)

SELECT * from students ORDER BY money desc;

#order by xxx desc芒划,根據(jù)哪個字段繼續(xù)排序,默認(rèn)是升序欧穴,

降序是desc民逼,升序asc

SELECT * from students a where a.addr = '' or a.addr is null; #查詢字段為空的數(shù)據(jù)

SELECT DISTINCT a.money from students a ;#去重

SELECT COUNT(*) '學(xué)生人數(shù)' from students where sex='女'; #統(tǒng)計(jì)行數(shù)

SELECT MAX(a.money) 錢最多 from students a; #最大值

SELECT min(money) 錢最少 from students;#最小值

SELECT AVG(a.money) 平均多少錢 from students a; #平均數(shù)

SELECT sum(a.money) 總共多少錢 from students a;#總和

SELECT sex 性別,count(*) 人數(shù) from students GROUP BY sex; #分組

SELECT

sex 性別,

count(*) 人數(shù),

a.stu_name 名字

FROM

students a WHERE a.money > 300 GROUP BY a.id HAVING a.stu_name LIKE '姚%';

#如果group by后面有條件的話,必須得用having子句苔可,having子句里面用到的字段必須出現(xiàn)在select后面缴挖,如果group by和order by一起用的話,order by必須寫在group by后面

SELECT *,COUNT(*) from students GROUP BY sex,class; #多個字段進(jìn)行分組

SELECT id,stu_name from students UNION SELECT id,t_name from teacher;

#用來合并兩條select語句的結(jié)果焚辅,兩條select語句字段數(shù)量要一致,并且數(shù)據(jù)類型也要一致

union和union all的區(qū)別就是一個會去重一個不會

多表關(guān)聯(lián):

SELECT * FROM USER a, accounts b WHERE

a.id = b.user_id

AND a.username = 'niuhy';

-- SELECT * from students a ,scores b where a.id=b.s_id; -- 多表關(guān)聯(lián)

-- 兩個表里面都存在的數(shù)據(jù)查出來

SELECT * from students a LEFT JOIN scores b on a.id=b.s_id;

-- LEFT JOIN會把左邊表所有的數(shù)據(jù)都查出來苟鸯,右邊表有匹配的就查出來

SELECT * from students a RIGHT JOIN scores b on a.id=b.s_id;

-- RIGHT JOIN會把右邊表所有的數(shù)據(jù)都查出來同蜻,左邊表有匹配的就查出來

SELECT * from students a inner JOIN scores b on a.id=b.s_id;

-- INNER JOIN兩邊表里都匹配的數(shù)據(jù)才查到

子查詢:

把一條sql的結(jié)果,作為另一條sql的條件

SELECT * from scores a where a.s_id = (SELECT id from students where stu_name='牛牛');

把子查詢當(dāng)成一個表

SELECT

a.grade 成績,

b.stu_name 學(xué)生名稱,

b.id 學(xué)號

FROM

scores a,

( SELECT id,stu_name FROM students WHERE stu_name = '牛牛') b

WHERE

a.s_id = b.id;

數(shù)據(jù)庫權(quán)限:

mysql數(shù)據(jù)的權(quán)限實(shí)質(zhì)上都是在user表里控制的

1早处、grant

#所有的權(quán)限 所有數(shù)據(jù)庫下面的所有表 用戶 用戶ip

grant all on *.* to 'andashu'@'localhost' IDENTIFIED BY '123456' with grant option;

密碼 #有執(zhí)行g(shù)rant語句的權(quán)限

grant all on *.* to 'andashu'@'%' IDENTIFIED BY '123456' with grant option;

取消授權(quán):

Revoke select on *.* from dba@localhost;

Revoke all on *.* from andashu@localhost;

2湾蔓、修改user表的數(shù)據(jù)

對user表進(jìn)行增加、修改和刪除

flush privileges;#刷新權(quán)限

備份數(shù)據(jù)庫:

mysqldump -uroot -p123456 db > db.sql

mysqldump -uroot -p123456 -A > all.sql

恢復(fù)數(shù)據(jù):

mysql -uroot -p123456 db < db.sql

存儲過程:

批量的造數(shù)據(jù)

delimiter $$; #為了改結(jié)束符

CREATE PROCEDURE big_data1(num int)#代表要造多少條數(shù)據(jù) 100

BEGIN

DECLARE i int;

set i=0;

WHILE i

insert into students (stu_name,money) VALUES (CONCAT('宋灝志',i),20000);

#CONCAT的作用是連接不同類型的數(shù)據(jù)

#把字符串和數(shù)字拼接到一起

set i=i+1;

end WHILE;

End

$$;

delimiter;

call big_data1(500); #調(diào)用

原文詳見:https://www.qwzyj.com/thread-120-1-1.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砌梆,一起剝皮案震驚了整個濱河市默责,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咸包,老刑警劉巖桃序,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烂瘫,居然都是意外死亡媒熊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門坟比,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芦鳍,“玉大人,你說我怎么就攤上這事葛账∧疲” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵籍琳,是天一觀的道長菲宴。 經(jīng)常有香客問我贷祈,道長,這世上最難降的妖魔是什么裙顽? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任付燥,我火速辦了婚禮,結(jié)果婚禮上愈犹,老公的妹妹穿的比我還像新娘键科。我一直安慰自己,他們只是感情好漩怎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布勋颖。 她就那樣靜靜地躺著,像睡著了一般勋锤。 火紅的嫁衣襯著肌膚如雪饭玲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天叁执,我揣著相機(jī)與錄音茄厘,去河邊找鬼。 笑死谈宛,一個胖子當(dāng)著我的面吹牛次哈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吆录,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼窑滞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恢筝?” 一聲冷哼從身側(cè)響起哀卫,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撬槽,沒想到半個月后此改,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恢氯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年带斑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勋拟。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡勋磕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敢靡,到底是詐尸還是另有隱情挂滓,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布啸胧,位于F島的核電站赶站,受9級特大地震影響幔虏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贝椿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一想括、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烙博,春花似錦瑟蜈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乔宿,卻和暖如春位迂,著一層夾襖步出監(jiān)牢的瞬間详瑞,已是汗流浹背掂林。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坝橡,地道東北人党饮。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像驳庭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氯窍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法饲常,類相關(guān)的語法,內(nèi)部類的語法狼讨,繼承相關(guān)的語法贝淤,異常的語法,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • 目錄 簡介 在Android中存儲數(shù)據(jù)有時會用到數(shù)據(jù)庫政供,Android給我們提供了 一系列的API來操作數(shù)據(jù)庫播聪,非...
    慕涵盛華閱讀 1,014評論 1 2
  • 星期三 雨 每日一我 下雨天,早起上班布隔,8:30到公司离陶,買了蔓越莓面包做早飯。 英早讀衅檀,專業(yè)閱讀招刨。中午吃秋刀魚日式...
    sophietyl閱讀 97評論 0 0
  • 最近真的是年末開啟瘋狂加班的節(jié)奏,沒得休息哀军,一直在干活沉眶,感到很累打却,有些事情稍微偷一下懶就忘記做了,比如說寫作谎倔。 昨...
    蕭Alley閱讀 260評論 0 0