從前端到后端,龍哥講nodejs基礎(chǔ)(六)

nodejs連接數(shù)據(jù)庫


經(jīng)過了前面的學習抗楔,相信你一定了解了nodejs是一個包依賴的開發(fā)方式棋凳,用哪個功能就require哪個模塊,萬一這個模塊自身沒有谓谦,就通過npm安裝一個贫橙。

使用數(shù)據(jù)庫也是一樣的,如果你需要使用mysql來儲存數(shù)據(jù)反粥,就安裝一個mysql模塊卢肃。

準備


首先需要在項目中安裝mysql

npm install mysql

然后引用mysql模塊,在mysql模塊中才顿,可以使用createConnection方法來創(chuàng)建一個表示與mysql服務(wù)器之間連接的Connection對象莫湘。

//配置數(shù)據(jù)庫對象
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: '數(shù)據(jù)庫地址如:localhost',
    user: '數(shù)據(jù)庫用戶名',
    password: '密碼',
    database:'數(shù)據(jù)庫名'
});
connection.connect(); //連接數(shù)據(jù)庫
//執(zhí)行操作
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
    if (err) throw err;
    console.log('The solution is: ', rows[0].solution);
});
//關(guān)閉連接
connection.end();

createConnection 方法中可以傳入一個json對象,里面的內(nèi)容不止這些郑气。

然后幅垮,執(zhí)行connect方法,與mysql數(shù)據(jù)庫進行連接尾组。

然后忙芒,調(diào)用connection對象的query方法來統(tǒng)一執(zhí)行數(shù)據(jù)的增刪改查示弓。

常用方法


mysql常用增刪該查語句:


1.1【插入單行】

insert [into] <表名> (列名) values (列值)

例:

insert into Strdents (姓名,性別,出生日期) values ('開心朋朋','男','1980/6/15')

1.2【將現(xiàn)有表數(shù)據(jù)添加到一個已有表】

insert into <已有的新表> (列名) select <原表列名> from <原表名>

例:

insert into tongxunlu ('姓名','地址','電子郵件')
select name,address,email
from Strdents

1.3【直接拿現(xiàn)有表數(shù)據(jù)創(chuàng)建一個新表并填充】

select <新建表列名> into <新建表名> from <源表名>

例:

select name,address,email into tongxunlu from strdents

1.4【使用union關(guān)鍵字合并數(shù)據(jù)進行插入多行】

insert <表名> <列名> select <列值> tnion select <列值>

例:

insert Students (姓名,性別,出生日期)
select '開心朋朋','男','1980/6/15' union(union表示下一行)
select '藍色小明','男','19**/**/**'


2.1【刪除<滿足條件的>行】

delete from <表名> [where <刪除條件>]

例:

delete from a where name='開心朋朋'(刪除表a中列值為開心朋朋的行)

2.2【刪除整個表】

truncate table <表名>
truncate table tongxunlu

注意:刪除表的所有行,但表的結(jié)構(gòu)呵萨、列奏属、約束、索引等不會被刪除潮峦;不能用語有外建約束引用的表

update <表名> set <列名=更新值> [where <更新條件>]

例:

update tongxunlu set 年齡=18 where 姓名='藍色小名'


4.1精確(條件)查詢

select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列名>[asc或desc]]

4.1.1【查詢所有數(shù)據(jù)行和列】
例:

select * from a

說明:查詢a表中所有行和列

4.1.2【查詢部分行列--條件查詢】
例:

select i,j,k from a where f=5

說明:查詢表a中f=5的所有行囱皿,并顯示i,j,k3列

4.1.3【在查詢中使用AS更改列名】
例:

select name as 姓名 from a where xingbie='男'

說明:查詢a表中性別為男的所有行,顯示name列忱嘹,并將name列改名為(姓名)顯示

4.1.4【查詢空行】
例:

select name from a where email is null

說明:查詢表a中email為空的所有行嘱腥,并顯示name列;SQL語句中用is null或者is not null來判斷是否為空行

4.1.5【在查詢中使用常量】
例:

select name, '唐山' as 地址 from Student

說明:查詢表a拘悦,顯示name列齿兔,并添加地址列,其列值都為'唐山'

4.1.6【查詢返回限制行數(shù)(關(guān)鍵字:top percent)】
例1:

select top 6 name from a

說明:查詢表a窄做,顯示列name的前6行愧驱,top為關(guān)鍵字
例2:

select top 60 percent name from a

說明:查詢表a,顯示列name的60%椭盏,percent為關(guān)鍵字

4.1.7【查詢排序(關(guān)鍵字:order by , asc , desc)】
例:

select name
from a
where chengji>=60
order by desc

說明:查詢a表中chengji大于等于60的所有行组砚,并按降序顯示name列;默認為ASC升序

4.2模糊查詢

4.2.1【使用like進行模糊查詢】
注意:like運算副只用于字符串掏颊,所以僅與char和varchar數(shù)據(jù)類型聯(lián)合使用
例:

select * from a where name like '趙%'

說明:查詢顯示表a中糟红,name字段第一個字為趙的記錄

4.2.2【使用between在某個范圍內(nèi)進行查詢】
例:

select * from a where nianling between 18 and 20

說明:查詢顯示表a中nianling在18到20之間的記錄

4.2.3【使用in在列舉值內(nèi)進行查詢】
例:

select name from a where address in ('北京','上海','唐山')

說明:查詢表a中address值為北京或者上海或者唐山的記錄乌叶,顯示name字段

4.3 分組查詢
4.3.1【使用group by進行分組查詢】
例:

select studentID as 學員編號,AVG(score) as 平均成績 (注釋:這里的score是列名)
from score (注釋:這里的score是表名)
group by studentID

說明:在表score中查詢盆偿,按strdentID字段分組,顯示strdentID字段和score字段的平均值准浴;select語句中只允許被分組的列和為每個分組返回的一個值的表達式事扭,例如用一個列名作為參數(shù)的聚合函數(shù)

4.3.2【使用having子句進行分組篩選】
例:

select studentID as 學員編號,AVG(score) as 平均成績 (注釋:這里的score是列名)
from score (注釋:這里的score是表名)
group by studentID
having count(score)>1

說明:接上面例子,顯示分組后count(score)>1的行乐横,由于where只能在沒有分組時使用求橄,分組后只能使用having來限制條件。

4.4 多表聯(lián)接查詢

4.4.1內(nèi)聯(lián)接
4.4.1.1【在where子句中指定聯(lián)接條件】
例:

select a.name,b.chengji
from a,b
where a.name=b.name

說明:查詢表a和表b中name字段相等的記錄葡公,并顯示表a中的name字段和表b中的chengji字段

4.4.1.2【在from子句中使用join…on】
例:

select a.name,b.chengji
from a inner join b
on (a.name=b.name)

說明:同上

4.4.2 外聯(lián)接

4.4.2.1【左外聯(lián)接查詢】
例:

select s.name,c.courseID,c.score
from strdents as s
left outer join score as c
on s.scode=c.strdentID

說明:在strdents表和score表中查詢滿足on條件的行罐农,條件為score表的strdentID與strdents表中的sconde相同

4.4.2.2【右外聯(lián)接查詢】
例:

select s.name,c.courseID,c.score
from strdents as s
right outer join score as c
on s.scode=c.strdentID

說明:在strdents表和score表中查詢滿足on條件的行,條件為strdents表中的sconde與score表的strdentID相同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末催什,一起剝皮案震驚了整個濱河市涵亏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖气筋,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拆内,死亡現(xiàn)場離奇詭異,居然都是意外死亡宠默,警方通過查閱死者的電腦和手機矛纹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來光稼,“玉大人,你說我怎么就攤上這事孩等“” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵肄方,是天一觀的道長冰垄。 經(jīng)常有香客問我,道長权她,這世上最難降的妖魔是什么虹茶? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮隅要,結(jié)果婚禮上蝴罪,老公的妹妹穿的比我還像新娘。我一直安慰自己步清,他們只是感情好要门,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著廓啊,像睡著了一般欢搜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谴轮,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天炒瘟,我揣著相機與錄音,去河邊找鬼第步。 笑死疮装,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的雌续。 我是一名探鬼主播斩个,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驯杜!你這毒婦竟也來了受啥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滚局,沒想到半個月后居暖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡藤肢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年太闺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘁圈。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡省骂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出最住,到底是詐尸還是另有隱情钞澳,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布涨缚,位于F島的核電站轧粟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脓魏。R本人自食惡果不足惜兰吟,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茂翔。 院中可真熱鬧混蔼,春花似錦、人聲如沸檩电。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俐末。三九已至料按,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卓箫,已是汗流浹背载矿。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烹卒,地道東北人闷盔。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像旅急,于是被迫代替她去往敵國和親逢勾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

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