2資料庫
㈠ 什麼是資料庫
1.什麼是資料庫呢?
每個人家裡都會有冰箱,冰箱是用來干什麼的?冰箱是用來存放食物的地方。
同樣的,資料庫是存放數據的地方。正是因為有了資料庫後,我們可以直接查找數據。例如你每天使用余額寶查看自己的賬戶收益,就是從資料庫讀取數據後給你的。
你可能會問了:我的數據就存放在自己電腦的excel表裡就可以了,為什麼還要搞個資料庫呢?
這是因為資料庫比excel有更多的優勢。資料庫可以存放大量的數據,允許很多人同時使用裡面的數據。
舉個例子你就明白了,excel好比是一個移動硬碟,你使用了這個移動硬碟其他人就用不了了。
資料庫好比是網盤,很多人可以同時訪問裡面里的數據。
而且網盤比移動硬碟能放更多的數據。
2.資料庫是如何存放數據的?
資料庫有很多種類,這里我們重點學習使用最廣泛的關系資料庫。
關系資料庫是由多個表組成的。如果你用過Excel,就會知道Excel是一張一張的二維表。每個表都是由行和列組成的。
同樣的,關系資料庫里存放的也是一張一張的表,只不過各個表之間是有聯系的。所以,簡單來說:
關系資料庫=多張表+各表之間的關系
應的,學會關系資料庫我們只要掌握兩點就可以:
1)多張表裡面,每一張表的結構
2)各表之間的關系
我們接下來分別來看看這兩個知識點。
1) 表的結構
表的結構是指要了解關系資料庫中每張表長什麼樣。
每個表由一個名字標識。表包含帶有列名的列,和記錄數據的行。我們舉個具體的例子就一目瞭然了。
下面圖片里的表名是:學生表,記錄了每個學生的信息。
表中每一列都有一個名字來標識出該列,這個表裡有4列,列名分別是學號,姓名,出生日期,性別。從列名上你也可以知道這一列對應記錄的是什麼數據。
表的每一行里記錄著數據。這里的一行表示該名學生的信息,比如第2行是學號0002學生的信息,他的姓名是猴子,出生日期是1990-12-21,性別是女。
2)各表之間的關系
關系資料庫是由多張表組成的,圖片里是存放在學校資料庫里的4張表。
你能發現下面這4張表之間有什麼關系嗎?
什麼是關系呢?
你是你爸爸的兒子,你是你的兒子的爸爸,這就是生活中的關系。其實,數據之間也是有關系的。關系資料庫里各個表之間如何建立起關系呢?
我們來看圖中「學生表」,「成績表」這兩個表之前的關系。
這兩張表通過」學號」關聯起來,為了更清楚的看到這兩個表的關系,PPT里我用相同顏色代表同一個學生的信息。
例如我想知道學生表裡學號「0001」 的成績是多少?那麼我就可以在成績表裡去查找「學號」值是0001的行,最後在成績表裡發現有3行數據的學號都是「0001」 ,對應的就找到了該學生的三門課程的成績。
通過這個例子你應該對表之間的關系有了大概的了解。關系就是數據能夠對應的匹配,在關系資料庫中正式名稱叫聯結,對應的英文名稱叫做join。
聯結是關系型資料庫中的核心概念,務必記住這個概念,後面會在多表查詢中具體學到。
3.什麼是資料庫管理系統?
前面講的都是關系資料庫原理方面的基本理論。理論有了,當然的就的有對應的軟體實現才能用起來,不然再強大的理論都是一堆無用的東東。這就好比,建築師如果只有設計草圖是無法蓋起樓房的,得有具體的建築人員才能蓋起樓房。
所以,上面講的關系資料庫原理就是「設計草圖」,那麼對應的「建築人員」是誰呢?
實現資料庫原理的「建築人員」就是資料庫管理系統,用來管理資料庫的計算機軟體。
關系資料庫管理系統有很多種,比如Mysql、Oracle、SQL Server等都是實現上面理論的關系資料庫。
4.什麼是sql?
建築施工人員通過使鏟子,拉土機等工具來蓋房子。
那麼,我們通過什麼工具來操作資料庫里的數據呢?
這個工具就是SQL。
SQL是為操作資料庫而開發的一種語言,它可以對資料庫里的表進行操作,比如修改數據,查找數據。
之前我在社群里舉過一個例子,我覺得可以很好的說明白資料庫和sql是什麼關系。
把資料庫比如一碗米飯,裡面放的米是數據。現在我們要吃碗里的米飯,怎麼取出碗里的米飯呢?
這時候我們拿一雙筷子,用筷子操作碗里的米飯。這里的筷子就是SQL,用來操作資料庫里的數據。
5.總結
1)什麼是資料庫?
資料庫用於存放數據,
關系資料庫=多張表+各表之間的關系
2)關系資料庫表長什麼樣?
關系資料庫中每個表由一個名字標識。表包含帶有列名的列,和記錄數據的行。
主鍵是關系資料庫中重要的概念,用來標識數據的唯一性。
3)關系資料庫里各個表之間如何建立聯系呢?
關系資料庫中,如果一張表要關聯其他表,通過對應的列產生了關系。這個關系叫做聯結。
4)什麼是關系資料庫管理系統?
實現資料庫原理的「施工團隊」就是,用來管理資料庫的計算機軟體叫做資料庫管理系統。
常用的關系資料庫管理系統有mysql,orcale,sql server為了方便描述,我們後面說到資料庫,都是指資料庫管理系統。
5)什麼是SQL?
資料庫裡面放著數據,SQL是用來操作資料庫里數據的工具。
現在我們可以理解支付寶的背後的運行原理了,用戶把錢存放到支付寶資料庫里,當用戶查看支付寶余額的時候,後台使用SQL這個工具操作支付寶的資料庫,把裡面的數據查找出來,然後返回給用戶,這樣用戶就可以看到存放到支付寶里的錢和每天的收益了。
㈡ 2個資料庫都在變化時,怎麼做到資料庫增量導入/導出
如果你想要這個自增的數值,就開啟這個選項,如果不想要就insert
select
的時候把列名都羅列出來,只要不寫出標識列,插入時會自動跳過
㈢ 有2個資料庫,怎麼實現數據同步
在pgsql的資料庫中將要同步的表建立一個一模一樣的同步表。然後建觸發器,將進入源表中的數據觸發到同步表中。然後做一個windows服務掃描這個同步表並且將同步表中的數據同步到mysql
或access中。
如果是整個資料庫中有許多表要進行同步。則建立一個共用的同步表,結構非常簡單。欄位如下:
主鍵(f_id),源表名(f_tablename),主鍵欄位名(f_keyname),主鍵值(f_keyvalue),操作標識(f_operflag
i:插入
u:更新
d:刪除),時間欄位(f_time).將要同步的表都建立觸發器,只要有增、改、刪都觸發到這個表裡。這樣你只掃描這個共用的同步表,根據這些欄位值完全可以實現數據的同步。隔離網閘就是這么個原理,只不過它的要比這復雜多了!
㈣ 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的用戶創建的歌單
學生表:
用於更正成績的觸發器:
㈤ 資料庫都有哪些
一、資料庫種類有哪些
早期較為時興的資料庫種類有三種,分別是層次式資料庫、網路式資料庫和關系型資料庫。而在如今的互聯網中,最常見的資料庫種類主要有2種,即關系型資料庫和非關系型資料庫。
二、層次資料庫介紹
層次資料庫是最開始研製的資料庫系統軟體,它把數據根據層次構造(樹結構)的方法呈現。層次資料庫以前是非常熱門的資料庫,但伴隨著關系資料庫的逐漸流行,如今早已非常少應用了。
較為具備象徵性的層次資料庫是IMS(Information Management System)資料庫,由IBM企業研發。
三、關系型資料庫詳細介紹
網路資料庫和層次資料庫在數據獨立性和抽象性級別上有所欠缺,用戶開展存儲時,需要聲明數據的存儲結構和相對路徑。而關系資料庫就可以較切實解決這種問題。
和Excel工作簿一樣,關系型資料庫也選用由列和行構成的二維表來管理數據,簡單易懂。另外,它還利用SQL(Structured Query Language,結構化查詢語言)對數據開展實際操作。
四、非關系型資料庫詳細介紹
伴隨著互聯網技術Web2.0的興起,傳統關系型資料庫在應對大數據量,比如大規模和高並發的微博、微信或者SNS類型的web2.0動態網頁時,已經有些力不從心,曝露了許多難以克服的難題。因此出現了針對大規模數據量場景,以性能卓越和應用便捷為目的的的資料庫產品——NOSQL資料庫。
㈥ 什麼是生物信息學中的二級資料庫
一、生物信息學資料庫的種類
分子生物信息資料庫種類繁多。歸納起來,大體可以分為4個大類:
基因組資料庫
核酸和蛋白質一級結構資料庫
生物大分子(主要是蛋白質)三維空間結構資料庫
由上述3類資料庫和文獻資料為基礎構建的二級資料庫
一級資料庫(一次資料庫) :基因組資料庫來自基因組作圖,序列資料庫來自序列測定,結構資料庫來自X射線衍射和核磁共振等結構測定。這些資料庫是分子生物學的基本數據資源,通常稱為基本資料庫、初始資料庫,也稱一次資料庫。
二級資料庫(二次資料庫) :是在一級資料庫、實驗數據、理論分析的基礎上,衍生整理而得。它是根據生命科學不同研究領域的實際需要,對基因組圖譜、核酸和蛋白質序列、蛋白質結構以及文獻等數據進行分析、整理、歸納、注釋,構建具有特殊生物學意義和專門用途的資料庫。
一般說來,一級資料庫的數據量大,更新速度快,用戶面廣,通常需要高性能的計算機伺服器、大容量的磁碟空間和專門的資料庫管理系統支撐。
二級資料庫的容量則小得多,更新速度也不像一次資料庫那樣快,也可以不用大型商業資料庫軟體支持,這類針對不同問題開發的二次資料庫的最大特點是使用方便,特別適用於計算機使用經驗不太豐富的生物學家。
序列資料庫是分子生物信息資料庫中最基本的資料庫,包括核酸和蛋白質兩類,以核苷酸鹼基順序或氨基酸殘基順序為基本內容,並附有注釋信息。
GenBank:由美國國家生物技術信息中心(National Center for Biotechnology Information, NCBI)建立(1979-1982)。該中心隸屬於美國國家醫學圖書館,位於美國家衛生研究院(NIH)內。
EMBL:由歐洲分子生物學實驗室(European Molecular Biology Laboratory, 其下有European Bioinformatics Centre)建立(1982),主要位於英國劍橋Cambridge和德國漢堡Hamburg。
DDBJ:日本DNA資料庫(DNA Data Bank of Japan)。由the National Institute of Genetics建立(1984-1987), NIG主管。
二級資料庫的形式:大多以web界面為基礎,具有文字信息、表格、圖形、圖表等方式顯示資料庫內容。
一級資料庫與二級資料庫之間並無明確的界限。(例如:GDB、AceDB、SCOP、CATH等都已經具有二級資料庫的特色)。
㈦ 資料庫有哪幾種
常用資料庫有mysql、oracle、sqlserver、sqlite等。
1、Oracle資料庫
Oracle資料庫管理系統是由甲骨文(Oracle)公司開發的,在資料庫領域一直處於領先地位。目前,Oracle資料庫覆蓋了大、中、小型計算機等幾十種計算機型,成為世界上使用最廣泛的關系型數據管理系統(由二維表及其之間的關系組成的一個資料庫)之一。
2、SQLServer資料庫
SQLServer是由微軟公司開發的一種關系型據庫管理系統,它已廣泛用於電子商務、銀行、保險、電力等行業。SQLServer提供了對XML和Internet標準的支持,具有強大的、靈活的、基於Web的應用程序管理功能。
3、DB2資料庫
DB2資料庫是由IBM公司研製的一種關系型資料庫管理系統,主要應用於OS/2、Windows等平台下,具有較好的可伸縮性,可支持從大型計算機到單用戶環境。
4、MongoDB資料庫
MongoDB是由10gen公司開發的一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。它支持的數據結構非常鬆散,是類似JSON的bjson格式,因此可以存儲比較復雜的數據類型。
5、MySQL資料庫
MySQL資料庫管理系統是由瑞典的MySQLAB公司開發的,但是幾經輾轉,現在是Oracle產品。它是以「客戶/伺服器」模式實現的,是一個多用戶、多線程的小型資料庫伺服器。而且MySQL是開源數據的,任何人都可以獲得該資料庫的源代碼並修正MySQL的缺陷。
6、Sybase資料庫
美國Sybase公司研製的一種關系型資料庫系統,是一種典型的UNIX或WindowsNT平台上客戶機/伺服器環境下的大型資料庫系統。
㈧ 2個資料庫安裝時怎麼選擇順序
這里假設已安裝了Sql2000,下面開始安裝Sql2005運行光碟選擇「伺服器組件、工具、聯機叢書和示例」。 接著是許可協議然後是進行安裝前的支持組件安裝、掃描計算機配置在安
這里假設已安裝了Sql2000,下面開始安裝Sql2005
運行光碟
選擇「伺服器組件、工具、聯機叢書和示例」。
接著是許可協議
然後是進行安裝前的支持組件安裝、掃描計算機配置
在安裝向導里,sqlserver 2005安裝程序會對系統進行配置檢查
接下來輸入注冊信息;選擇要安裝的組件,在這個過程中可以點擊"高級"來選擇安裝路徑
接下來在「實例名」中這是關鍵的一步,如果機子上沒有別的Sql版本的,選擇默認實例名就行了,但是由於已裝有Sql2000,所以這一步得選「新實例名」,然後輸入實例名
接著到服認證模式選用混合認證模式,同時設置sa密碼;剩下部分的安裝都選默認值,一路「下一步」,最後安裝,完成!
至此兩個版本的資料庫實現並存。
兩個版本資料庫共用中的一些問題
* SQL2000客戶端工具無法連接SQL2005,SQL2005客戶端工具可以同時連接SQL2000和SQL2005.
* SQL2000伺服器始終是1433埠,SQL2005使用的是動態埠。通過SQL2005提供了一個SQL BROWER服務,開啟這個服務後,就可以通過查詢SQL BROWER服務知道SQL2005現在正在使用哪個埠。當然也可以把SQL2005的動態埠改成靜態的,修改過程如下:運行SQL配置管理程序,找到SQL的實例名稱下面的協議,雙擊右邊的TCP/IP協議,在第二選項卡中IPALL裡面輸入SQL運行的埠就可以了(注意不能同時填寫動態埠和靜態埠,否則SQL下次將無法啟動),修改完成後重新啟動SQL服務即可生效。
* 修改埠後如果仍然不能連接,需要開啟SQL2005的遠程登陸服務。在Microsoft SQL Server 2005中默認的是不允許遠程登錄的,會出現【provider: SQL 網路介面, error: 26 - 定位指定的伺服器/實例時出錯】的錯誤,通過如下方法可以打開:
配置工具->sql server外圍應用配置器->服務和連接的外圍應用配置器->打開MSSQLSERVER節點下的Database Engine 節點,先擇"遠程連接",接下建議選擇"同時使用TCP/IP和named pipes",確定後,重啟資料庫服務就可以。
* 假設同時裝了sql2000(埠1443)和sql2005(埠1433),應用程序連接字元串用server=127.0.0.1可以訪問sql2005,用server=機器名/實例名可以訪問sql2000
問題在於:用server=127.0.0.1:1443訪問sql2000不成功
如果遠程訪問資料庫家埠,寫法如下:
逗號分隔 server=127.0.0.1,1443
望採納,謝謝!!
㈨ 資料庫是什麼
資料庫,可視為電子化的文件櫃,即存儲電子文件的處所。
所謂「資料庫」是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗餘度、與應用程序彼此獨立的數據集合。在資料庫中,用戶可以對文件中的數據進行新增、查詢、更新、刪除等操作。
因為使用io流文件存儲數據有很多弊端如文件存儲數據存儲效率低、不管存還取操作都較麻煩、一般只能保存小量字元串數據等。為了解決這些弊端,才有資料庫的出現,使用資料庫存儲數據就可以很好的解決這些弊端。
(9)2資料庫擴展閱讀:
資料庫的結構:
一個資料庫由一個或一組數據表組成。每個資料庫都以文件的形式存放在磁碟上,即對應於一個物理文件。不同的資料庫,與物理文件對應的方式也不一樣。
對於dBASE,FoxPro和Paradox格式的資料庫來說,一個數據表就是一個單獨的資料庫文件,而對於Microsoft Access、Btrieve格式的資料庫來說,一個資料庫文件可以含有多個數據表。
資料庫中的數據是以表為單位進行組織的。一個表是一組相關的按行排列的數據;每個表中都含有相同類型的信息。表實際上是一個二維表格,例如,一個班所有學生的考試成績,可以存放在一個表中,表中的每一行對應一個學生,這一行包括學生的學號,姓名及各門課程成績。
參考資料來源:網路-資料庫
㈩ 二、資料庫與數據表--2、SQLServer的數據類型
(1)文本類型: 字元數據包含任意字母、符號或數字字元的組合
char: 固定長度的非Unicode字元數據,最大長度為8000個字元
varchar: 可變長度的非Unicode數據,最大長度為8000個字元
text: 存儲長文本信息,最大長度為2^31-1(2147483647)個字元
nchar: 固定長度的Unicode數據,最大長度為4000個字元
narchar: 可變長度的Unicode數據,最大長度為4000個字元
ntext: 存儲長文本信息,最大長度為2^30-1(1073741823)個字元
(Unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案,編碼數據長度是非編碼數據的兩倍)
(2)整數類型
bigint: 佔用8個位元組,可表示範圍-2^63~2^63-1之間的整數
int: 佔用4個位元組
smallint: 佔用2個位元組
tinint: 佔用1個位元組,可表示0~255之間的整數
(3)精確數字類型
decimal: -10^38~10^38-1之間固定精度和小數位的數字
numeric(常用): 功能等同於decimal
寫法:
decimal(整數,小數)和numeric(整數,小數)——若不指定位數,默認18位整數,0位小數:
(4)近似數字(浮點)類型(很少用,可以用numeric替代)
float[(n)]: 表示範圍-1.79E+308~1.79E+308
n 表示精度,在1-53之間取值,當n在1~24之間時,精度為7位有效數字,佔用4個位元組;當n在25~53之間時,精度為15位有效數字,佔8個位元組。
real: 表示範圍-3.40E+38~3.40E+38佔用4個位元組,相當於float(24)
(5)日期類型
datetime: 允許范圍1753-1-1至9999-1-1
smalldatetime(常用): 允許范圍1900-1-1至2079-6-6
時間精度不同: datetime精確到3%秒;smalldatetime精確到1分鍾
格式說明:
分隔符數字方式: 2013-08-20 或 08/20/2013
純數字方式: 08202013
英文數字類型: Aug 20,2013
注意問題: 日期在使用的時候需要使用單引號' ' 括起來
(6)貨幣類型
money: 貨幣數值介於-2^63與2^63-1之間,精確到貨幣單位的千分之一
smallmoney: 貨幣數據介於-214748.3648與214748.3648之間,精確到貨幣單位的千分之十
(7)位類型
bit: 表示「是/否」類型的數據(1/0,true/false)
(8)二進制類型
binary: 固定長度的二進制數據,最大8000個位元組
vbinary: 可變長度的二進制數據,最大8000個位元組
image: 可變長度的二進制數據,最大長度2^31個位元組—— 應用場合: 可存儲圖片