国产亚洲av在线,国产高清,欧美激情,国产精品久久久久7777,国产精品人成在线观看,国产精品永久免费视频

IT之道-艾銻知道

您當(dāng)前位置: 主頁(yè) > 資訊動(dòng)態(tài) > 艾銻分享 >

北京艾銻無(wú)限為您整理:常用數(shù)據(jù)庫(kù)SQL語(yǔ)句大全


2020-02-09 15:10 作者:admin 瀏覽量:
迎戰(zhàn)疫情,艾無(wú)限用愛(ài)與您同行
中國(guó)中小企業(yè)提供免費(fèi)IT外包服務(wù)
 

 
這次的肺炎疫情對(duì)中國(guó)的中小企業(yè)將會(huì)是沉重的打擊,據(jù)釘釘和微信兩個(gè)辦公平臺(tái)數(shù)據(jù)統(tǒng)計(jì)現(xiàn)有2億左右的人在家遠(yuǎn)程辦公,那么對(duì)于中小企業(yè)的員工來(lái)說(shuō)不懂IT技術(shù)將會(huì)讓他們面臨的最大挑戰(zhàn)和困難。
 
電腦不亮了怎么辦?系統(tǒng)藍(lán)屏如何處理?辦公室的電腦在家如何連接?網(wǎng)絡(luò)應(yīng)該如何設(shè)置?VPN如何搭建?數(shù)據(jù)如何對(duì)接?服務(wù)器如何登錄?數(shù)據(jù)安全如何保證?數(shù)據(jù)如何存儲(chǔ)?視頻會(huì)議如何搭建?業(yè)務(wù)系統(tǒng)如何開(kāi)啟等等一系列的問(wèn)題,都會(huì)困擾著并非技術(shù)出身的您。
 
 
好消息是當(dāng)您看到這篇文章的時(shí)候,就不用再為上述的問(wèn)題而苦惱,您只需撥打艾銻無(wú)限的全國(guó)免費(fèi)熱線電話:400 650 7820,就會(huì)有我們的遠(yuǎn)程工程師為您解決遇到的問(wèn)題,他們可以遠(yuǎn)程幫您處理遇到的一些IT技術(shù)難題。
 
如遇到免費(fèi)熱線占線,您還可以撥打我們的24小時(shí)值班經(jīng)理電話:15601064618或技術(shù)經(jīng)理的電話:13041036957,我們會(huì)在第一時(shí)間接聽(tīng)您的來(lái)電,為您提供適合的解決方案,讓您無(wú)論在家還是在企業(yè)都能無(wú)憂辦公。
 
那艾銻無(wú)限具體能為您的企業(yè)提供哪些服務(wù)呢?
艾銻無(wú)限始創(chuàng)于2005年,歷經(jīng)15年服務(wù)了5000多家中小企業(yè)并保障了幾十萬(wàn)臺(tái)設(shè)備的正常運(yùn)轉(zhuǎn),積累了豐富的企業(yè)IT緊急問(wèn)題和特殊故障的解決經(jīng)驗(yàn),制定了相對(duì)應(yīng)的解決方案。我們?yōu)槟钠髽I(yè)提供的IT服務(wù)分為三大版塊:
 
第一版塊是保障性IT外包服務(wù):如電腦設(shè)備運(yùn)維,辦公設(shè)備運(yùn)維,網(wǎng)絡(luò)設(shè)備運(yùn)維,服務(wù)器運(yùn)維等綜合性企業(yè)IT設(shè)備運(yùn)維服務(wù)。
 
第二版塊是功能性互聯(lián)網(wǎng)外包服務(wù):如網(wǎng)站開(kāi)發(fā)外包,小程序開(kāi)發(fā)外包,APP開(kāi)發(fā)外包,電商平臺(tái)開(kāi)發(fā)外包,業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)外包和后期的運(yùn)維外包服務(wù)。
 
第三版塊是增值性云服務(wù)外包:如企業(yè)郵箱上云,企業(yè)網(wǎng)站上云,企業(yè)存儲(chǔ)上云,企業(yè)APP小程序上云,企業(yè)業(yè)務(wù)系統(tǒng)上云,阿里云產(chǎn)品等后續(xù)的云運(yùn)維外包服務(wù)。
 
您要了解更多服務(wù)也可以登錄艾銻無(wú)限的官網(wǎng):www.bjitwx.com查看詳細(xì)說(shuō)明,疫情期間,您企業(yè)遇到的任何困境只要找到艾銻無(wú)限,能免費(fèi)為您提供服務(wù)的我們絕不收一分錢(qián),我們?nèi)w艾銻人承諾此活動(dòng)直到中國(guó)疫情結(jié)束,我們將這次活動(dòng)稱為——春雷行動(dòng)
 
以下還有我們?yōu)槟峁┑囊恍┘夹g(shù)資訊,以便可以幫助您更好的了解相關(guān)的IT知識(shí),幫您渡過(guò)疫情中辦公遇到的困難和挑戰(zhàn),艾銻無(wú)限愿和中國(guó)中小企業(yè)一起共進(jìn)退,因?yàn)槲覀兿嘈湃f(wàn)物同體,能量合一,只要我們一起齊心協(xié)力,一定會(huì)成功。再一次祝福您和您的企業(yè),戰(zhàn)勝疫情,您和您的企業(yè)一定行。
 
北京艾銻無(wú)限為您整理:常用數(shù)據(jù)庫(kù)SQL語(yǔ)句大全
 
1、說(shuō)明:創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE database-name
2、說(shuō)明:刪除數(shù)據(jù)庫(kù)
drop database dbname
3、說(shuō)明:備份sql server
--- 創(chuàng)建 備份數(shù)據(jù)的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 開(kāi)始 備份
BACKUP DATABASE pubs TO testBack 
4、說(shuō)明:創(chuàng)建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據(jù)已有的表創(chuàng)建新表: 
A:create table tab_new like tab_old (使用舊表創(chuàng)建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說(shuō)明:刪除新表
drop table tabname 
6、說(shuō)明:增加一個(gè)列
Alter table tabname add column col type注:列增加后將不能刪除。DB2中列加上后數(shù)據(jù)類型也不能改變,唯一能改變的是增加varchar類型的長(zhǎng)度。
7、說(shuō)明:添加主鍵: Alter table tabname add primary key(col) 
說(shuō)明:刪除主鍵: Alter table tabname drop primary key(col) 
8、說(shuō)明:創(chuàng)建索引:create [unique] index idxname on tabname(col….) 
刪除索引:drop index idxname
注:索引是不可更改的,想更改必須刪除重新建。
9、說(shuō)明:創(chuàng)建視圖:create view viewname as select statement 
刪除視圖:drop view viewname
10、說(shuō)明:幾個(gè)簡(jiǎn)單的基本的sql語(yǔ)句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like ’%value1%’ ---like的語(yǔ)法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數(shù):select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說(shuō)明:幾個(gè)高級(jí)查詢運(yùn)算詞
A: UNION 運(yùn)算符 
UNION 運(yùn)算符通過(guò)組合其他兩個(gè)結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(shí)(即 UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來(lái)自 TABLE1 就是來(lái)自 TABLE2。 
B:EXCEPT 運(yùn)算符 
EXCEPT運(yùn)算符通過(guò)包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時(shí) (EXCEPT ALL),不消除重復(fù)行。
C:INTERSECT 運(yùn)算符
INTERSECT運(yùn)算符通過(guò)只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL隨 INTERSECT 一起使用時(shí) (INTERSECT ALL),不消除重復(fù)行。 
注:使用運(yùn)算詞的幾個(gè)查詢結(jié)果行必須是一致的。 
12、說(shuō)明:使用外連接 
A、left (outer) join: 
左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。 
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join: 
右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。 
C:full/cross (outer) join: 
全外連接:不僅包括符號(hào)連接表的匹配行,還包括兩個(gè)連接表中的所有記錄。
12、分組:Group by:
一張表,一旦分組 完成后,查詢后只能得到組相關(guān)的信息。
組相關(guān)的信息:(統(tǒng)計(jì)信息) count,sum,max,min,avg  分組的標(biāo)準(zhǔn))
在SQLServer中分組時(shí):不能以text,ntext,image類型的字段作為分組依據(jù)
在selecte統(tǒng)計(jì)函數(shù)中的字段,不能和普通的字段放在一起;
13、對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作:
分離數(shù)據(jù)庫(kù): sp_detach_db;附加數(shù)據(jù)庫(kù):sp_attach_db 后接表明,附加需要完整的路徑名
14.如何修改數(shù)據(jù)庫(kù)的名稱:
sp_renamedb 'old_name', 'new_name'
4.文章出處
https://mp.weixin.qq.com/s/ZLIogpD2sMD43MJRjwTSJg
 
艾銻無(wú)限告訴你:SQL 注入的原理及防范
什么是SQL注入?
SQL注入是一種非常常見(jiàn)的數(shù)據(jù)庫(kù)攻擊手段,SQL注入漏洞也是網(wǎng)絡(luò)世界中最普遍的漏洞之一。大家也許都聽(tīng)過(guò)某某學(xué)長(zhǎng)通過(guò)攻擊學(xué)校數(shù)據(jù)庫(kù)修改自己成績(jī)的事情,這些學(xué)長(zhǎng)們一般用的就是SQL注入方法。
SQL注入其實(shí)就是惡意用戶通過(guò)在表單中填寫(xiě)包含SQL關(guān)鍵字的數(shù)據(jù)來(lái)使數(shù)據(jù)庫(kù)執(zhí)行非常規(guī)代碼的過(guò)程。簡(jiǎn)單來(lái)說(shuō),就是數(shù)據(jù)「越俎代庖」做了代碼才能干的事情。這個(gè)問(wèn)題的來(lái)源是,SQL數(shù)據(jù)庫(kù)的操作是通過(guò)SQL語(yǔ)句來(lái)執(zhí)行的,而無(wú)論是執(zhí)行代碼還是數(shù)據(jù)項(xiàng)都必須寫(xiě)在SQL語(yǔ)句之中,這就導(dǎo)致如果我們?cè)跀?shù)據(jù)項(xiàng)中加入了某些SQL語(yǔ)句關(guān)鍵字(比如說(shuō)SELECT、DROP等等),這些關(guān)鍵字就很可能在數(shù)據(jù)庫(kù)寫(xiě)入或讀取數(shù)據(jù)時(shí)得到執(zhí)行。
多言無(wú)益,我們拿真實(shí)的案例來(lái)說(shuō)話。下面我們先使用SQLite建立一個(gè)學(xué)生檔案表。
SQL數(shù)據(jù)庫(kù)操作示例
import sqlite3
# 連接數(shù)據(jù)庫(kù)
conn = sqlite3.connect('test.db')
# 建立新的數(shù)據(jù)表
conn.executescript('''DROP TABLE IF EXISTS students;
       CREATE TABLE students
       (id INTEGER PRIMARY KEY AUTOINCREMENT,
       name TEXT NOT NULL);''')
# 插入學(xué)生信息
students = ['Paul','Tom','Tracy','Lily']
for name in students:
    query = "INSERT INTO students (name) VALUES ('%s')" % (name)
    conn.executescript(query);
# 檢視已有的學(xué)生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
    print('{0}{1}'.format(row[0], row[1]))
conn.close()

點(diǎn)擊運(yùn)行按鈕將會(huì)打印目前表中的內(nèi)容。上述程序中我們建立了一個(gè)test.db數(shù)據(jù)庫(kù)以及一個(gè)students數(shù)據(jù)表,并向表中寫(xiě)入了四條學(xué)生信息。
那么SQL注入又是怎么一回事呢?我們嘗試再插入一條惡意數(shù)據(jù),數(shù)據(jù)內(nèi)容就是漫畫(huà)中的"Robert');DROP TABLE students;--",看看會(huì)發(fā)生什么情況。

 
 
 
SQL數(shù)據(jù)庫(kù)注入示例
 
conn = sqlite3.connect('test.db')
# 插入包含注入代碼的信息
name = "Robert');DROP TABLE students;--"
query = "INSERT INTO students (name) VALUES ('%s')" % (name)
conn.executescript(query)
# 檢視已有的學(xué)生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
    print('{0}{1}'.format(row[0], row[1]))
conn.close()

你將會(huì)發(fā)現(xiàn),運(yùn)行后,程序沒(méi)有輸出任何數(shù)據(jù)內(nèi)容,而是返回一條錯(cuò)誤信息:表單students無(wú)法找到!
這是為什么呢?問(wèn)題就在于我們所插入的數(shù)據(jù)項(xiàng)中包含SQL關(guān)鍵字DROP TABLE,這兩個(gè)關(guān)鍵字的意義是從數(shù)據(jù)庫(kù)中清除一個(gè)表單。而關(guān)鍵字之前的Robert');使得SQL執(zhí)行器認(rèn)為上一命令已經(jīng)結(jié)束,從而使得危險(xiǎn)指令DROP TABLE得到執(zhí)行。也就是說(shuō),這段包含DROP TABLE關(guān)鍵字的數(shù)據(jù)項(xiàng)使得原有的簡(jiǎn)單的插入姓名信息的SQL語(yǔ)句

"INSERT INTO students (name) VALUES ('Robert')"
變?yōu)榱送瑫r(shí)包含另外一條清除表單命令的語(yǔ)句
"INSERT INTO students (name) VALUES ('Robert');DROP TABLE students;--"
而SQL數(shù)據(jù)庫(kù)執(zhí)行上述操作后,students表單被清除,因而表單無(wú)法找到,所有數(shù)據(jù)項(xiàng)丟失。
 
如何防止SQL注入問(wèn)題

那么,如何防止SQL注入問(wèn)題呢?
大家也許都想到了,注入問(wèn)題都是因?yàn)閳?zhí)行了數(shù)據(jù)項(xiàng)中的SQL關(guān)鍵字,那么,只要檢查數(shù)據(jù)項(xiàng)中是否存在SQL關(guān)鍵字不就可以了么?的確是這樣,很多數(shù)據(jù)庫(kù)管理系統(tǒng)都是采取了這種看似『方便快捷』的過(guò)濾手法,但是這并不是一種根本上的解決辦法,如果有個(gè)美國(guó)人真的就叫做『Drop Table』呢?你總不能逼人家改名字吧。
合理的防護(hù)辦法有很多。首先,盡量避免使用常見(jiàn)的數(shù)據(jù)庫(kù)名和數(shù)據(jù)庫(kù)結(jié)構(gòu)。在上面的案例中,如果表單名字并不是students,則注入代碼將會(huì)在執(zhí)行過(guò)程中報(bào)錯(cuò),也就不會(huì)發(fā)生數(shù)據(jù)丟失的情況——SQL注入并不像大家想象得那么簡(jiǎn)單,它需要攻擊者本身對(duì)于數(shù)據(jù)庫(kù)的結(jié)構(gòu)有足夠的了解才能成功,因而在構(gòu)建數(shù)據(jù)庫(kù)時(shí)盡量使用較為復(fù)雜的結(jié)構(gòu)和命名方式將會(huì)極大地減少被成功攻擊的概率。
使用正則表達(dá)式等字符串過(guò)濾手段限制數(shù)據(jù)項(xiàng)的格式、字符數(shù)目等也是一種很好的防護(hù)措施。理論上,只要避免數(shù)據(jù)項(xiàng)中存在引號(hào)、分號(hào)等特殊字符就能很大程度上避免SQL注入的發(fā)生。
另外,就是使用各類程序文檔所推薦的數(shù)據(jù)庫(kù)操作方式來(lái)執(zhí)行數(shù)據(jù)項(xiàng)的查詢與寫(xiě)入操作,比如在上述的案例中,如果我們稍加修改,首先使用execute()方法來(lái)保證每次執(zhí)行僅能執(zhí)行一條語(yǔ)句,然后將數(shù)據(jù)項(xiàng)以參數(shù)的方式與SQL執(zhí)行語(yǔ)句分離開(kāi)來(lái),就可以完全避免SQL注入的問(wèn)題,如下所示:

SQL數(shù)據(jù)庫(kù)反注入示例
 
conn = sqlite3.connect('test.db')
# 以安全方式插入包含注入代碼的信息
name = "Robert');DROP TABLE students;--"
query = "INSERT INTO students (name) VALUES (?)"
conn.execute(query, [name])
# 檢視已有的學(xué)生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
    print('{0}{1}'.format(row[0], row[1]))
conn.close()

而對(duì)于PHP而言,則可以通過(guò)mysql_real_escape_string等方法對(duì)SQL關(guān)鍵字進(jìn)行轉(zhuǎn)義,必要時(shí)審查數(shù)據(jù)項(xiàng)目是否安全來(lái)防治SQL注入。
當(dāng)然,做好數(shù)據(jù)庫(kù)的備份,同時(shí)對(duì)敏感內(nèi)容進(jìn)行加密永遠(yuǎn)是最重要的。某些安全性問(wèn)題可能永遠(yuǎn)不會(huì)有完美的解決方案,只有我們做好最基本的防護(hù)措施,才能在發(fā)生問(wèn)題的時(shí)候亡羊補(bǔ)牢,保證最小程度的損失。
 
 
 
 

相關(guān)文章

IT外包服務(wù)
二維碼 關(guān)閉