㈠ sql刪除多條記錄保留兩條
sql刪除多條數據的方法:執行【delete from 表名 where id in (id_1,id_2,id_3)】命令即可。sql是一種資料庫查詢和程序設計語言,它用於存取數據以及查詢、更新和管理關系資料庫系統。
結構化查詢語言(Structured Query Language)簡稱SQL(發音:/?es kju? ?el/ "S-Q-L"),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
如何用一條sql語句刪除多條記錄?
如:表中有ID為a,b,c,d,e的行,用一條SQL刪除ID號為abc的行:
答:delete from 表名 where id in (a,b,c)
sql觸發器之常用語句(總結)
如何在sql server中重命名json密鑰(t-sql)?
sql創建視圖的語句是什麼
sql資料庫觸發器怎麼創建
mysql與sql的區別有哪些
php中常見的sql攻擊正則表達式匯總
navicat如何導出sql sever腳本文件
認識sql 高級進階
sql怎麼使用觸發器
springboot整合ureport2報表及常見使用方法
相關推薦
介紹手動配置phpmyadmin和mysql密碼的兩種方法
怎麼本地啟動phpmyadmin
如何在eclipse中通過jdbc連接mysql資料庫
關於MySQL5.7.19安裝目錄下如何創建my.ini文件的示例詳解
phpmyadmin怎麼添加導出格式
MySql安裝與卸載詳細教程
mysql索引是什麼及怎麼使用的?整理的很詳細
SQL Server 201
㈡ 零基礎學sql要多久
入門需要一個月。
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式。
介紹:
SQL的核心部分相當於關系代數,但又具有關系代數所沒有的許多特點,如聚集、資料庫更新等。它是一個綜合的、通用的、功能極強的關系資料庫語言。其特點是:
1、數據描述、操縱、控制等功能一體化。
2、兩種使用方式,統一的語法結構。SQL有兩種使用方式。一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。
㈢ 資料庫進階:ERP管理軟體資料庫系統的幾種設計方法
自增長primary key
採用自增長primary key主要是性能 早期的資料庫系統 經常採用某種編號 比如身份證號碼 公司編號等等作為資料庫表的primary key 然而 很快 大家就發現其中的不利之處
比如早期的醫院管理系統 用身份證號碼作為病人表的primary key 然而 第一 不是每個人都有身份證;第二 對於國外來的病人 不同國家的病人的證件號碼並不見得沒有重復 因此 用身份證號碼作為病人表的primary key是一個非常糟糕的設計 考慮到沒有醫生或者護士會刻意去記這些號碼 使用自增長primary key是更好的設計
公司編號採用某種特定的編碼方法 這也是早期的資料庫系統常見的做法 它的缺點也顯而易見 很容易出現像千年蟲的軟體問題 因為當初設計資料庫表的時候設計的位數太短 導致系統使用幾年後不能滿足要求 只有修改程序才能繼續使用 問題在於 任何人設計系統的時候 在預計某某編號多少位可以夠用的時候 都存在預計不準的風險 而採用自增長primary key 則不存在這種問題 同樣的道理 沒有人可以去記這些號碼
使用自增長primary key另外一個原因是性能問題 略有編程常識的人都知道 數字大小比較比字元串大小比較要快得多 使用自增長primary key可以大大地提高數據查找速度
避免用復合主鍵 (pound primary key)
這主要還是因為性能問題 數據檢索是要用到大量的 primary key 值比較 只比較一個欄位比比較多個欄位快很多 使用單個primary key 從編程的角度也很有好處 sql 語句中 where 條件可以寫更少的代碼 這意味著出錯的機會大大減少
雙主鍵
雙主鍵是指資料庫表有兩個欄位 這兩個欄位獨立成為主鍵 但又同時存在 資料庫系統的雙主鍵最早用在用戶管理模塊 最早的來源可能是參照操作系統的用戶管理模塊
操作系統的用戶管理有兩個獨立的主鍵 操作系統自己自動生成的隨機 ID (Linux windows 的 SID) login id 這兩個 ID 都必須是唯一的 不同的是 刪除用戶 test 然後增加一個用戶 test SID 不同 login id 相同 採用雙主鍵主要目的是為了防止刪除後增加同樣的 login id 造成的混亂 比如銷售經理 hellen 本機共享文件給總經理 peter 一年後總經理離開公司 進來一個普通員工 peter 兩個peter 用同樣的 login id 如果只用 login id 作操作系統的用戶管理主鍵 則存在漏洞 普通員工 peter 可以訪問原來只有總經理才能看的文件 操作系統自己自動生成的隨機 ID 一般情況下面用戶是看不到的
雙主鍵現在已經廣泛用在各種資料庫系統中 不限於用戶管理系統
以固定的資料庫 表應付變化的客戶需求
這主要基於以下幾個因素的考慮
大型EPR系統的正常使用 維護需要軟體廠商及其眾多的合作夥伴共同給客戶提供技術服務 包括大量的二次開發
如果用戶在軟體正常使用過程中需要增加新的表或者資料庫 將給軟體廠商及其眾多的合作夥伴帶來難題
軟體升級的需要
沒有一個軟體能夠讓客戶使用幾十上百年不用升級的 軟體升級往往涉及資料庫表結構的改變 軟體廠商會做額外的程序將早期版本軟體的資料庫數據升級到新的版本 但是對於用戶使用過程中生成的表進行處理就比較為難
軟體開發的需要
使用固定的資料庫庫表從開發 二次開發來說 更加容易 對於用戶使用過程中生成的表 每次查找數據時都要先查表名 再找數據 比較麻煩
舉例來說 早期的用友財務軟體用Access作資料庫 每年建立一個新的資料庫 很快 用戶和用友公司都發現 跨年度數據分析很難做 因此這是一個不好的設計 在 ERP 中 很少有不同的年度數據單獨分開 一般來說 所有年份的數據都在同一個表中 對於跨國公司甚至整個集團公司都用同一個 ERP 系統的時候 所有公司的數據都在一起 這樣的好處是數據分析比較容易做
現在大多數資料庫系統都能做到在常數時間內返回一定量的數據 比如 Oracle 資料庫中 根據 primary key 在 萬條數據中取 條數據 與在 億條數據中取 條數據 時間相差並不多
避免一次取資料庫大量數據 取大量數據一定要用分頁
這基本上是現在很多資料庫系統設計的基本守則 ERP 系統中超過 萬條數據的表很多 對於很多表中的任何一個 一次取所有的會導致資料庫伺服器長時間處於停滯狀態 並且影響其它在線用戶的系統響應速度
一般來說 日常操作 在分頁顯示的情況下面 每次取得數據在 之間 系統響應速度足夠快 客戶端基本沒有特別長的停頓 這是比較理想的設計 這也是大型資料庫系統往往用 ODBC ADO 等等通用的資料庫聯接組件而不用特定的速度較快的專用資料庫聯接組件的原因 因為系統瓶頸在於資料庫( Database) 方面(數據量大) 而不在於客戶端(客戶端每次只取少量數據)
在 B/S 資料庫系統中 分頁非常普遍 早期的資料庫系統經常有客戶端程序中一次性取大量數據做緩沖 現在已經不是特別需要了 主要原因有
資料庫本身的緩沖技術大大提高
大部分資料庫都會自動將常用的數據自動放在內存中緩沖 以提高性能
資料庫聯接組件的緩沖技術也在提高
包括 ADO 在內的一些資料庫聯接組件都會自動對數據結果集(result set)進行緩沖 並且效果不錯 比較新穎的資料庫聯接組件 比如 Hibernate 也加入了一些數據結果集緩沖功能
當然 也有一些資料庫聯接組件沒有對數據結果集進行緩沖 比如 JDBC Driver 不過幾年之內情況應該有所改觀 也有些不太成功的數據緩沖 比如 EJB 中的實體Bean 性能就不盡如人意 實體Bean數據也是放在內存中 可能是因為佔用內存過多的緣故
lishixin/Article/program/SQL/201311/16157
㈣ MySQL(2)資料庫對象與應用
庫建立好之後基本不動,和我們接觸最頻繁的是表. 建表就是聲明欄位的過程!
選擇合適的類型[速度快 減少硬碟佔用]
存儲空間,還是存儲范圍有區別?
答案: 兩者本質完全一樣 ,只是在一些特殊情況下兩者顯示有區別(只是在顯示的時候補全0的位數不一樣)
實驗
*zerofill 零填充(本欄位同時即自動帶有unsigned屬性,因為負數不能零填充)
如 數字2在固定寬度4時 零填充 即為0002
M值是一個整數(固定寬度值),只有在欄位有零填充zerofill屬性時 規定M值才有意義!
M值只是 顯示效果 ,不會影響實際數據值!
如M值為1,實際值255,一樣會顯示255
列可以聲明默認值(推薦聲明)
因為null無法和別的值比較
null = 0 返回null
null <> 0 返回null
null只能用is或is not比較 null is null當然對的。
例子:
【浮點型】有誤差,不穩定!定點數更精確。
實際測試數據
Float(M,D)
M精度(總位數,不包含點) 精度值M 影響 存儲的 值的范圍.
D標度(小數位) 小數點後有幾位(mysql比較特殊,mssql/oracle都不能指定)
testcolumn float(5,2) unsigned; 范圍0到999.99
float(5,2)的范圍-999.99到999.99
給float(5,2)這樣的欄位插入值在進位時有一些規矩:暫時沒搞清楚,不是簡單的四捨五入
插入值688.826實際是688.83 末尾6 進位
插入值688.825實際是688.83 末尾5 進位
插入值688.824實際是688.82 末尾4 捨去
插入值688.005實際是688.00
插入值688.015實際是688.01 末尾5 5前面是1 捨去
插入值688.025實際是688.02 末尾5 5前面是2 捨去
插入值688.035實際是688.03 末尾5 5前面是3 捨去
插入值688.045實際是688.04 末尾5 5前面是4 捨去
一般使用tinyint、char(1)、enum類型。
varchar(M)
M代表寬度 即可容納的【字元數】 (並不是位元組數) varchar佔用的位元組數與編碼有關:
utf-8 一個漢字3位元組英文字母1位元組
對於utf8mb4號稱佔用4位元組但是並不絕對(在utf8可以覆蓋到的范圍則仍然佔用3位元組)
utf8mb4最有優勢的應用場景:存儲emoji表情
例子:
性能太差,不推薦
MySQL在5.6.4版本之後,TimeStamp和DateTime支持到微妙
一個例子:
以如下這張表為例
show privileges 命令可以查看全部許可權
查詢時從user->db->table_pirv->columns_pirv依次驗證,如果通過則執行查詢。
本課程涉及建表SQL
場景1:歌單按時間排序
場景2:統計雲音樂創建歌單的用戶
場景3-1:統計雲音樂創建歌單的用戶列表和每人創建歌單的數量。
場景3-2:統計雲音樂創建歌單的用戶列表和每人創建歌單的數量,並且只顯示歌單數量排序大於等於2的用戶
SQL進階語法-like
場景4:查詢一個月內創建歌單(從第6行開始顯示10條記錄)
場景5:對於未錄入歌曲的歌單(trackcount = null),輸出結果時歌曲數返回0.
連接的作用是用一個SQL語句把多個表中相互關聯的數據查出來
場景6:查詢收藏「老男孩」歌單的用戶列表
子查詢:內層查詢的結果作為外層的比較條件。一般子查詢都可以轉換成連接,推薦使用連接。
場景7:查詢出沒有用戶收藏的歌單
場景8:老闆想看創建和收藏歌單的所有用戶,查詢play_list和play_fav兩表中所有的userid
實例還是上節中的那些表
場景1:查詢每張專輯總的點播次數和每首歌的平均點播次數。
場景2:查詢全部歌曲中的最大的播放次數和最小的播放次數。
場景2續:查詢播放次數最多的歌曲
count(*) 和 count(1) 基本一樣,沒有明顯的性能差異。
count(*) 和 count(song_name) 差別在於 count(song_name) 會除去song_name is null的情況
場景3:顯示每張專輯的歌曲列表
實例:查詢一個月內userid為1,3,5的用戶創建的歌單
學生表:
用於更正成績的觸發器:
㈤ 什麼是SQL
SQL是Structured Quevy Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支持SQL。 <br>
##1 二、SQL資料庫數據體系結構 <br>
SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為「基本表」(base table);存儲模式(內模式)稱為「存儲文件」(stored file);子模式(外模式)稱為「視圖」(view);元組稱為「行」(row);屬性稱為「列」(column)。名稱對稱如^00100009a^: <br>
##1 三、SQL語言的組成 <br>
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成: <br>
1.一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。 <br>
2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。 <br>
3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。 <br>
4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。 <br>
5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。 <br>
6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。 <br>
##1 四、對資料庫進行操作 <br>
SQL包括了所有對資料庫的操作,主要是由4個部分組成: <br>
1.數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。 <br>
2.數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。 <br>
3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。 <br>
4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。 <br>
下面我們將分別介紹: <br>
##2 (一)數據定義 <br>
SQL數據定義功能包括定義資料庫、基本表、索引和視圖。 <br>
首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^) <br>
1.資料庫的建立與刪除 <br>
(1)建立資料庫:資料庫是一個包括了多個基本表的數據集,其語句格式為: <br>
CREATE DATABASE <資料庫名> 〔其它參數〕 <br>
其中,<資料庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。〔其它參數〕因具體資料庫實現系統不同而異。 <br>
例:要建立項目管理資料庫(xmmanage),其語句應為: <br>
CREATE DATABASE xmmanage <br>
(2) 資料庫的刪除:將資料庫及其全部內容從系統中刪除。 <br>
其語句格式為:DROP DATABASE <資料庫名> <br>
例:刪除項目管理資料庫(xmmanage),其語句應為: <br>
DROP DATABASE xmmanage <br>
2.基本表的定義及變更 <br>
本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對資料庫中已存在的基本表進行刪除與修改。 <br>
……<br>
㈥ 學習SQL資料庫哪些教材或者視頻好!比較適合菜鳥用!謝謝
不知道你有沒有其他編程的基礎。單資料庫來說,你要是看書來學習的話,可能會一團霧水,為什麼這么說呢,因為好多的專門講資料庫方面的書,講的東西實在是太多了,可如果當你上班或做相關開發時你就會發現,那書上將的東西,也就那麼十分之一是能夠用得到的,其他的東西那全都是高級進階的高級進階,初期根本用不上,所以我建議你最好能夠配合一門編程語言來學習資料庫知識比如 C#+MSSQL,通過一個實際的項目來慢慢體會一下。所以我的建議是
【1】:先學資料庫最基本的幾條語句 Insert into [Table]、 Delete [Table]、Update [Table]、Select [Table] 等等,先能夠熟練掌握這幾條基礎語句。
【2】:結合一門編程語言,來做個小的資料庫相關的項目進一步了解 聯合查詢語句 嵌套查詢等等
【3】:學習資料庫設計,這個就要多看別人優秀的代碼了,這部分學習呢,就是讓你能夠把一個實際的東西,抽象成資料庫的東西,比如要你做個學生選課系統,你就要能夠合力的設計出,資料庫中有幾個表,每個表的關系是怎麼樣的,等等
【4】:學習資料庫優化:這個時候呢,你再返回頭來看書,因為你有了之前的基礎,現在在看書的話,你就能夠明白哪些技術是重點,哪些技術最實際了
【5】:考取相關的證書,這個吧,如果你要是想專門從事這個行業,最好還是要考一個比如DBA,你可以從網上搜搜
就說這么多吧,希望能對你有幫助,如果還有什麼不懂的話,可以給我留言
㈦ 如何學好資料庫
資料庫應用佔到了計算機應用的70%,像計算機程序設計、網頁設計、數據存儲都用到了它,它有很多的產品,比如:access,SQL server,MySQL,Oracle等的。我認為資料庫的學習可以這么來看,第一,認清目的,你學資料庫是要做什麼?是計算機編程,還是網頁設計,還是你想用它來存儲公司的材料信息。要是前兩者,你必須學SQL語言,再選擇會操作一個資料庫產品比如access,來熟練操作它。但是要是後者你需要的是全面的資料庫知識,SQL語言是所有的資料庫產品都通用,還是一定要學,這時就不能學些簡單的東西了,要學習功能更全更強的了,比如中型資料庫SQL server,超大型資料庫Oracle等的。這完全取決於你的需要,但是你要是為設計一個大型的電子商務網站做努力,那學access是遠遠不夠的。第二,要想全面的學習資料庫知識,應當分兩個部分,第一,現在流行的關系型資料庫的基礎知識是一定要知道的,比如ER模型,屬性,記錄,聯系的概念,SQL語言等的,學完之後還要掌握各個資料庫的特點,比如SQL server,Oracle的特點在哪——就是這樣,通用的部分+特殊的部分。希望我的介紹對你有用
㈧ sql數據加密有幾種方法
對sql中的數據進行加密,有5種方法,
1、利用CONVERT改變編碼方式:
利用該函數把文字或數據轉換成VARBINARY。但該方式不具備保護數據的能力,僅避免瀏覽數據的過程中能直接看到敏感數據的作用。
2、利用對稱密鑰:
搭配EncryptByKey進行數據加密。使用DecryptByKey函數進行解密。這種方式比較適合大數據量。因為對稱密鑰的過程耗用資源較少。
3、利用非對稱密鑰:
搭配EncryptByAsymKey進行數據加密。使用DecryptByAsymKey函數進行解密。用於更高安全級別的加解密數據。因為耗用資源叫多。
4、利用憑證的方式:
搭配EncryptByCert進行加密和DecryptByCert函數進行解密。比較類似非對稱密鑰。
5、利用密碼短語方式:
搭配EncryptBypassPhrase進行加密,使用DecryptByPassPhrase函數來解密。可以使用有意義的短語或其他數據行,當成加密、解密的關鍵字,比較適合一般的數據加解密。
(8)sql資料庫進階擴展閱讀:
sql資料庫的組成:
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
1、一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。
2、一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
3、一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
4、一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
5、用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
6、SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。
SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
參考資料來源:網路-SQL資料庫