国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SQl 數(shù)據(jù)庫 使用介紹

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

SQL 是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計(jì)算機(jī)語言。提供了安全機(jī)制、便于通過Sql語句對數(shù)據(jù)直接進(jìn)行操作

MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。

什么是數(shù)據(jù)庫?

數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫。

每個(gè)數(shù)據(jù)庫都有一個(gè)或多個(gè)不同的 API 用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù)。

我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫數(shù)據(jù)速度相對較慢。

所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲(chǔ)和管理大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。

RDBMS 即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)的特點(diǎn):

  • 1.數(shù)據(jù)以表格的形式出現(xiàn)
  • 2.每行為各種記錄名稱
  • 3.每列為記錄名稱所對應(yīng)的數(shù)據(jù)域
  • 4.許多的行和列組成一張表單
  • 5.若干的表單組成database

需要的軟件有: 

MySQL服務(wù)
navicat

RDBMS 術(shù)語

  • 數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合。
  • 數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣。在一個(gè)數(shù)據(jù)庫中的表看起來像一個(gè)簡單的電子表格。
  • 列: 一列(數(shù)據(jù)元素) 包含了相同類型的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。
  • 行:一行(=元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)。
  • 冗余:存儲(chǔ)兩倍數(shù)據(jù),冗余降低了性能,但提高了數(shù)據(jù)的安全性。
  • 主鍵:主鍵是唯一的。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵。你可以使用主鍵來查詢數(shù)據(jù)。
  • 外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表。
  • 復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵,一般用于復(fù)合索引。
  • 索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。類似于書籍的目錄。
  • 參照完整性: 參照的完整性要求關(guān)系中不允許引用不存在的實(shí)體。與實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性。

  • 表頭(header): 每一列的名稱;
  • 列(col): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合;
  • 行(row): 每一行用來描述某條記錄的具體信息;
  • 值(value): 行的具體信息, 每個(gè)值必須與該列的數(shù)據(jù)類型相同;
  • 鍵(key): 鍵的值在當(dāng)前列中具有唯一性。

 

數(shù)據(jù)庫可視化工具navicat的基本使用

  1. 打開和關(guān)閉數(shù)據(jù)庫連接

  2. 創(chuàng)建用戶、設(shè)置用戶權(quán)限

  3. 新建數(shù)據(jù)庫、新建表、設(shè)計(jì)表(設(shè)置字段類型)、設(shè)置Id自增、日期自動(dòng)插入

  • 示例:
  • 新建users用戶表,表字段為:id、name、age、gender、address、isdel

  • Id自增:設(shè)置為主鍵,勾選自動(dòng)遞增

  • 主鍵:是用來標(biāo)識(shí)數(shù)據(jù)表中每一行數(shù)據(jù)的唯一性的,確保獨(dú)一無二性。

 

使用Sql語句對數(shù)據(jù)庫執(zhí)行基本操作

查詢 :

1 -- 查詢的SQL語句  查詢出來的數(shù)據(jù)都是結(jié)果集
2 -- 語法:  select * from 表名 where 條件 
3 -- && 用 and 代替   || 用 or 代替   ! 用 not 代替
4 select * from  stuInfo;  --  表示查詢所有的數(shù)據(jù)信息
5 select id,name,gender from stuinfo; -- 根據(jù)指定的字段來查詢
6 select * from stuinfo where id = 2;  -- 查詢id為2的那一條數(shù)據(jù)
7 select name,age from stuinfo where id = 3;  -- 查詢id為3的那條數(shù)據(jù)中的name age id
8 select * from stuinfo where id =3 or id= 5; -- 查詢id為3 和5 的那兩條數(shù)據(jù)
9 select * from stuinfo where id in (2,3,4,5,7);  -- 查詢id為 2  3  4  5  7 的那些數(shù)據(jù)

 

 

增加 :

1 -- 增加語句
2 -- 語法: insert [into] 表名 (字段1,字段2...) values (值1,值2...);
3 insert into stuinfo (id,name,gender,age,phone) values (NULL,'張三','',20,'1302012345');
4 insert into stuinfo (name,age,gender) values ('李四',21,'');
5 insert into stuinfo values (null,"王五","男",21);  -- 如果直接寫值的話,必須和字段匹配起來,這樣寫會(huì)報(bào)錯(cuò)的
6 insert into stuinfo values (null,"王五","男",21,"1234666"); -- 沒有字段的時(shí)候,如果要是直接添加值的話,必須和字段對應(yīng),不能缺少

 

 

修改 :

-- 修改語句
-- 語法: UPDATE 表名 set 字段1= 值1,字段2 = 值2... where 條件 
UPDATE stuinfo set gender = '';  -- 如果后面沒有跟條件的話,則表示將表中所有的數(shù)據(jù)中的gender都改成了男
UPDATE stuinfo set gender = '' WHERE id = 3; --  將id為3的那條數(shù)據(jù)中的gender修改為“女”
UPDATE stuinfo set gender = '' WHERE age = 21 and name = '李四'; -- 將數(shù)據(jù)表中名字叫"李四"

 

 

 

刪除 :

1 --  刪除語句
2 -- 語法: DELETE FROM 表名 where 條件  
3 DELETE FROM stuinfo where id = 7; -- 刪除id=7的數(shù)據(jù)
4 DELETE FROM stuinfo where id = 2 or id = 8; --刪除id=2 和 id=8 的數(shù)據(jù)
5 DELETE FROM stuinfo where id in (4,5,10); -- 刪除id為 4 5 10 的數(shù)據(jù)
6 DELETE FROM stuinfo WHERE gender ='' AND age = 20;  -- 通過多條件來刪除數(shù)據(jù)  and 在這里表示并且的關(guān)系 
7 DELETE FROM stuinfo WHERE id > 10;   -- 還可以根據(jù)id的特性 刪除id大于10的數(shù)據(jù)
8 DELETE FROM stuinfo        -- 不寫條件 則會(huì)刪除庫中所有的數(shù)據(jù)

 

 

mySQL 常用函數(shù):

COUNT()函數(shù)

SELECT count(*) FROM stuinfo; -- count用來統(tǒng)計(jì)所有的數(shù)據(jù)條數(shù) 會(huì)根據(jù)里面的參數(shù)來進(jìn)行統(tǒng)計(jì)
SELECT count(id) FROM stuinfo; -- 根據(jù)id來統(tǒng)計(jì)具體的數(shù)據(jù)條數(shù)
SELECT count(phone) FROM stuinfo; -- 根據(jù)phone字段來統(tǒng)計(jì)具體的條數(shù),如果數(shù)據(jù)為空則會(huì)忽略

 

 

MAX,   MIN,   AVG  函數(shù)

 

SELECT MAX(age) FROM stuinfo;     -- 查詢年齡中的最大值
SELECT MIN(age) FROM stuinfo;    -- 查詢年齡中的最小值
SELECT avg(age) FROM stuinfo;    -- 查詢年齡中的平均值 average 平均值

 

 

order by 函數(shù)

1 SELECT * FROM stuinfo order by id;       -- order by是用來排序的,默認(rèn)是以升序進(jìn)行排序 asc就是升序排序
2 SELECT * FROM stuinfo ORDER BY id desc; 
3 SELECT * FROM stuinfo ORDER BY age desc;    -- desc是降序排列

 

 

limit  函數(shù)  : 主要用于分頁場合

 1 SELECT * FROM stuinfo ORDER BY id;
 2 select * from stuinfo limit 3;  -- 取結(jié)果集中的前3條
 3 SELECT * FROM stuinfo  ORDER BY id limit 3;
 4 
 5 -- limit  n (索引) m (數(shù)量)   數(shù)據(jù)表中數(shù)據(jù)的索引默認(rèn)也是從0開始的,索引只會(huì)對剩下的數(shù)據(jù)進(jìn)行排序
 6 SELECT * FROM stuinfo ORDER BY id LIMIT 3, 3;
 7 
 8 -- 還可以這樣來實(shí)現(xiàn)一個(gè)分頁  limit count(數(shù)量)  offset index(索引);
 9 SELECT * FROM stuinfo ORDER BY id limit 3 offset 0; -- 從索引為0的位置向下查詢3條
10 SELECT * FROM stuinfo ORDER BY id limit 3 offset 3; -- 從索引為3的位置向下查詢3條
11 SELECT * FROM stuinfo ORDER BY id limit 3 offset 6; -- 從索引為6的位置向下查詢3條
12 
13 -- 經(jīng)過上面的規(guī)律可以總結(jié)如下:
14 int pageCount = 3 ; -- 每頁顯示的條數(shù)
15 int  pageSize = 1 ; -- 當(dāng)前的頁碼  1 第1頁  2 第2頁 3 第3頁
16 
17  SELECT * FROM stuinfo ORDER BY id LIMIT pageCount offset (pageSize - 1)* pageCount;

Node.js 連接 MySQL

安裝驅(qū)動(dòng)

在項(xiàng)目跟目錄下安裝 :  $ cnpm install mysql

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

let mysql = require('mysql');
let connection = mysql.createPool({
  host     : 'localhost', // 
  user     : 'root',
  password : '123456',
  database : 'test'
});
 
connection.connect();
 
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

 

數(shù)據(jù)庫連接參數(shù)說明:

 

數(shù)據(jù)庫操作( CURD )

查詢數(shù)據(jù)

var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
 
var  sql = 'SELECT * FROM websites';
//
connection.query(sql,function (err, result) {
        if(err){
          console.log('[SELECT ERROR] - ',err.message);
          return;
        }
 
       console.log('--------------------------SELECT----------------------------');
       console.log(result);
       console.log('------------------------------------------------------------\n\n');  
});
 
connection.end();

插入數(shù)據(jù)

var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
 
var  addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
var  addSqlParams = ['菜鳥工具', 'https://c.runoob.com','23453', 'CN'];
//
connection.query(addSql,addSqlParams,function (err, result) {
        if(err){
         console.log('[INSERT ERROR] - ',err.message);
         return;
        }        
 
       console.log('--------------------------INSERT----------------------------');
       //console.log('INSERT ID:',result.insertId);        
       console.log('INSERT ID:',result);        
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();

更新數(shù)據(jù)

var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
 
var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';
var modSqlParams = ['菜鳥移動(dòng)站', 'https://m.runoob.com',6];
//
connection.query(modSql,modSqlParams,function (err, result) {
   if(err){
         console.log('[UPDATE ERROR] - ',err.message);
         return;
   }        
  console.log('--------------------------UPDATE----------------------------');
  console.log('UPDATE affectedRows',result.affectedRows);
  console.log('-----------------------------------------------------------------\n\n');
});
 
connection.end();

刪除數(shù)據(jù)

ar mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
 
var delSql = 'DELETE FROM websites where id=6';
//
connection.query(delSql,function (err, result) {
        if(err){
          console.log('[DELETE ERROR] - ',err.message);
          return;
        }        
 
       console.log('--------------------------DELETE----------------------------');
       console.log('DELETE affectedRows',result.affectedRows);
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
centos7下安裝mysql及測試centos
nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫
Nodejs操作MySQL數(shù)據(jù)庫
小程序云開發(fā)全套實(shí)戰(zhàn)教程(最全)
mysql中SQL語句刪除
Node.js 的 MySQL 分表分庫訪問中間件 TribeDB
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服