當前位置:首頁 » 操作系統 » 資料庫使用說明

資料庫使用說明

發布時間: 2022-05-09 00:13:23

sql2000資料庫的使用方法

此方法適合操作MSSQL2000

使用此方式的條件
(1)自己電腦安裝MSSQL2000資料庫
(2)您的網站和資料庫在自己電腦調試成功
此方法是將遠程伺服器中的資料庫備份到本地電腦的資料庫或是將本地電腦資料庫還原到遠程伺服器的資料庫
( 以下將重點講解如何把本地資料庫還原到遠程伺服器的資料庫,備份的方式和還原類似不再講解)
1.連接上遠程資料庫伺服器:a:打開自己電腦的MSSQL企業管理器--找到SQL Server 組--點擊右鍵--新建SQL Server 注冊(I)--下一步--在可用的伺服器 下輸入資料庫的IP地址如192.168.0.1 點擊添加和下一步---點擊 系統管理員給我分配的SQL SERVER 登陸信息 和下一步-- 在登陸名內輸入資料庫名,在密碼內輸入資料庫密碼 點擊下一步--繼續點擊下一步直到完成 這樣就和遠程的資料庫建立了連接. 2.把本地資料庫導入到遠程資料庫:打開剛建立的資料庫伺服器如192.168.0.1--點開資料庫--找到自己的資料庫名---右鍵---所有任務里的導入數據---下一步--到了選擇數據源頁---伺服器中默認local 點使用 SQL Server身份驗證,用戶名輸入sa 密碼輸入您電腦資料庫的sa密碼,資料庫選擇你要導入到遠程資料庫的原始資料庫名,然後下一步---到了選擇目的畫面 伺服器 選擇您遠程資料庫的IP 比如192.168.0.1--點使用SQL Server 身份驗證,用戶名中輸入您在我們公司開通的資料庫名,密碼中寫上對應的資料庫密碼,資料庫中選擇您在本站開通的資料庫,然後下一步---點 在SQL Server資料庫之間復制對象和數據,下一步--到了選擇要復制的對象畫面,把使用默認選項前面的勾去掉,然後點擊右邊的 選項 ,把安全措施選項中的 3個選擇前的勾全部去掉,然後確定,下一步--到了 保存、調度和復制包畫面,把立即運行前 保證打上勾(選擇上)--然後默認下一步 直到完成,本地電腦的資料庫將自動復制到遠程資料庫。

Ⅱ 資料庫應用

一、請解釋下列概念或術語
1.資料庫系統(注意要答到資料庫系統包含哪些組成部分)
答:資料庫系統(DateBase System,簡稱DBS)是指引進資料庫技術後的計算機系統,實現有組織地、動態地存儲大量相關數據,提供數據處理和信息資源共享的便利手段。資料庫系統由五部分組成:硬體系統、資料庫集合、資料庫管理系統及相關軟體、資料庫管理員和用戶。
2.資料庫管理系統DBMS(DBMS是DBS的核心,主要提供哪些功能)
答:資料庫管理系統(DateBase Management System,簡稱DBMS),是管理資料庫的軟體系統。它的主要功能是建立、使用和維護資料庫。
3.映象
答:數據元素之間的關系有兩種不同的表示方法:順序映象和非順序映象,並由此得到兩種不同的存儲結構:順序存儲結構和鏈式存儲結構。順序存儲方法:它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常藉助於程序設計語言中的數組來實現。鏈接存儲方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針欄位表示的。由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常藉助於程序設計語言中的指針類型來實現。
4.主屬性:主要屬性,可以起到唯一標識的作用,例如:教師,有教師編號,姓名,性別等屬性,編號是主屬性,其他是非住屬性
5.數據獨立性:數據獨立性是資料庫系統的一個最重要的目標之一,它使數據能獨立於應用程序。可以說數據處理的發展史就是數據獨立性不斷進化的歷史。在手工管理階段,數據和程序完全交織在一起,沒有獨立性可言,數據結構作任何改動,應用程序也需要做相應的修改;文件系統出現後,雖然將兩者分離,但實際上應用程序中依然要反映文件在存儲設備上的組織方法、存取方法等物理細節,因而只要數據作了任何修改,程序仍然需要作改動。而資料庫系統的一個重要目標就是要使程序和數據真正分離,使它們能獨立發展。數據獨立性包括數據的物理獨立性和數據的邏輯獨立性。數據與程序的獨立,把數據的定義從程序中分離出去,加上數據的存取又由DBMS負責,從而簡化了應用程序的編制,大大減少了應用程序的維護和修改。
6.邏輯獨立性:邏輯獨立性是指用戶的應用程序與資料庫的邏輯結構是相互獨立的,即,當數據的邏輯結構改變時,用戶程序也可以不變。
7.物理獨立性:物理獨立性是指用戶的應用程序與存儲在磁碟上的資料庫中數據是相互獨立的。即,數據在磁碟上怎樣存儲由DBMS管理,用戶程序不需要了解,應用程序要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變了,應用程序不用改變。
二、回答問題(以下問題應簡單說明各要點,不宜只羅列各要點。)
1. 資料庫管理系統的功能:建立、使用和維護資料庫。
2. 資料庫系統的構成:(一)硬體平台及資料庫:(二)軟體:(三)人員:最終用戶:應用程序員:系統分析員:資料庫管理員(DBA):
3. 數據模型的三要素:1.數據結構:數據結構用於描述系統的靜態特性。在資料庫系統中,通常按照其數據結構的類型來命名數據模型。2.數據操作:數據操作用於描述系統的動態特徵。數據操作是指對資料庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。操作有檢索、插入、刪除、修改。3.數據完整性約束:數據完整性約束是一組完整性規則的集合。
4. 資料庫管理系統的特點:資料庫管理系統(DBMS):它是為資料庫的建立,使用和維護而配置的軟體;其特點有:1 數據結構化.2 數據冗餘小易擴充,3 數據獨立於程序,4 數據由DBMS統一管理和控制,
5. 資料庫系統的三級模式結構及這種結構的優點:三級模式結構:外模式、模式和內模式。
模式(Schema):也稱邏輯模式,是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。
理解:
① 一個資料庫只有一個模式;
② 是資料庫數據在邏輯級上的視圖;
③ 資料庫模式以某一種數據模型為基礎;
④ 定義模式時不僅要定義數據的邏輯結構(如數據記錄由哪些數據項構成,數據項的名字、類型、取值范圍等),而且要定義與數據有關的安全性、完整性要求,定義這些數據之間的聯系。
外模式(External Schema):也稱子模式(Subschema)或用戶模式,是資料庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特徵的描述,是資料庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。
理解:
① 一個資料庫可以有多個外模式;
② 外模式就是用戶視圖;
③ 外模式是保證數據安全性的一個有力措施。
內模式(Internal Schema):也稱存儲模式(Storage Schema),它是數據物理結構和存儲方式的描述,是數據在資料庫內部的表示方式(例如,記錄的存儲方式是順序存儲、按照B樹結構存儲還是按hash方法存儲;索引按照什麼方式組織;數據是否壓縮存儲,是否加密;數據的存儲記錄結構有何規定)。
理解:
① 一個資料庫只有一個內模式;
② 一個表可能由多個文件組成,如:數據文件、索引文件。
它是資料庫管理系統(DBMS)對資料庫中數據進行有效組織和管理的方法
其目的有:
① 為了減少數據冗餘,實現數據共享;
② 為了提高存取效率,改善性能。

Ⅲ dealogic資料庫的使用方法

摘要 用MyEclipse直接連接Informix資料庫和用ODBC連接Informix資料庫。

Ⅳ 簡要說明資料庫的基本概念

資料庫是長期儲存在計算機內,有組織,可共享的數據集合。
資料庫特性:冗餘度小,數據獨立性高,易擴展。
資料庫系統(DBS):在計算機系統中引入資料庫後的系統構成。
資料庫系統的構成:資料庫,資料庫管理系統(及其開發工具),應用系統,資料庫管理員。數據模型就是現實世界的模擬。
數據模式要素:數據結構,
數據操作,
完整性約束條件。
定義屬性值間的相互關連(主要體現於值的相等與否),這就是數據依賴,它是資料庫模式設計的關鍵

函數依賴:設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。
若對於R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,
而在Y上的屬性值不等,
則稱
「X函數確定Y」

「Y函數依賴於X」,記作X→Y。
封鎖就是事務T在對某個數據對象(例如表、記錄等)操作之前,先向系統發出請求,對其加鎖

兩段鎖協議:指所有事務必須分兩個階段對數據項加鎖和解鎖
在對任何數據進行讀、寫操作之前,事務首先要獲得對該數據的封鎖

Ⅳ MYSQL資料庫怎麼用

、使用SHOW語句找出在伺服器上當前存在什麼資料庫:mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec) 2、創建一個資料庫abccs
mysql> CREATE DATABASE abccs;
注意不同操作系統對大小寫的敏感。 3、選擇你所創建的資料庫
mysql> USE abccs
Database changed
此時你已經進入你剛才所建立的資料庫abccs. 4、 創建一個資料庫表 首先看現在你的資料庫中存在什麼表:
mysql> SHOW TABLES;
Empty set (0.00 sec)
說明剛才建立的資料庫中還沒有資料庫表。下面來創建一個資料庫表mytable:
我們要建立一個你公司員工的生日表,表的內容包含員工姓名、性別、出生日期、出生城市。mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), -> birth DATE, birthaddr VARCHAR(20)); Query OK, 0 rows affected (0.00 sec) 由於name、birthadd的列值是變化的,因此選擇VARCHAR,其長度不一定是20。可以選擇從1到255的任何長度,如果以後需要改變它的字長,可以使用ALTER TABLE語句。);性別只需一個字元就可以表示:"m"或"f",因此選用CHAR(1);birth列則使用DATE數據類型。 創建了一個表後,我們可以看看剛才做的結果,用SHOW TABLES顯示資料庫中有哪些表:mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | mytables | +---------------------+ 5、顯示表的結構:mysql> DESCRIBE mytable; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | deathaddr | varchar(20) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) 6、 往表中加入記錄 我們先用SELECT命令來查看錶中的數據:
mysql> select * from mytable;
Empty set (0.00 sec)
這說明剛才創建的表還沒有記錄。 加入一條新記錄:mysql> insert into mytable -> values (′abccs′,′f′,′1977-07-07′,′china′); Query OK, 1 row affected (0.05 sec) 再用上面的SELECT命令看看發生了什麼變化。我們可以按此方法一條一條地將所有員工的記錄加入到表中。 7、用文本方式將數據裝入一個資料庫表 如果一條一條地輸入,很麻煩。我們可以用文本文件的方式將所有記錄加入你的資料庫表中。創建一個文本文件「mysql.txt」,每行包含一個記錄,用定位符(tab)把值分開,並且以在CREATE TABLE語句中列出的列次序給出,例如:abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa 使用下面命令將文本文件「mytable.txt」裝載到mytable表中:mysql> LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet; 再使用如下命令看看是否已將數據輸入到資料庫表中:mysql> select * from mytable;

Ⅵ 請教access2000資料庫的具體使用方法

首先我們先來熟悉一下將要使用的對象方法。我們用來獲取上一個頁面傳遞過來的數據一般是使用Request對象。同樣的,我們也可以使用Request對象來獲取上傳上來的文件數據,使用的方法是Request.BinaryRead()。而我們要從資料庫中讀出來圖片的數據顯示到網頁上面要用到的方法是:
Request.BinaryWrite()。在我們得到了圖片的數據,要保存到資料庫中的時候,不可以直接使用Insert語句對資料庫進行操作,而是要使用ADO的AppendChunk方法,同樣的,讀出資料庫中的圖片數據,要使用GetChunk方法。各個方法的具體語法如下:
*Request.BinaryRead語法:
variant=Request.BinaryRead(count)
參數
variant
返回值保存著從客戶端讀取到數據。
count
指明要從客戶端讀取的數據量大小,這個值小於或者等於使用方法Request.TotalBytes得到的數據量。
*Request.BinaryWrite語法:
Request.BinaryWritedata
參數
data
要寫入到客戶端瀏覽器中的數據包。
*Request.TotalBytes語法:
variant=Request.TotalBytes
參數
variant
返回從客戶端讀取到數據量的位元組數。
*AppendChunk語法
將數據追加到大型文本、二進制數據Field或Parameter對象。
object.AppendChunkData
參數
objectField或Parameter對象
Data變體型,包含追加到對象中的數據。
說明
使用Field或Parameter對象的AppendChunk方法可將長二進制或字元數
據填寫到對象中。在系統內存有限的情況下,可以使用AppendChunk方法對長整型值進行部分而非全部的操作。
*GetChunk語法
返回大型文本或二進制數據Field對象的全部或部分內容。
variable=field.GetChunk(Size)
返回值
返回變體型。
參數
Size長整型表達式,等於所要檢索的位元組或字元數。
說明
使用Field對象的GetChunk方法檢索其部分或全部長二進制或字元數據。在系統內存有限的情況下,可使用GetChunk方法處理部分而非全部的長整型值。
GetChunk調用返回的數據將賦給「變數」。如果Size大於剩餘的數據,則
GetChunk僅返回剩餘的數據而無需用空白填充「變數」。如果欄位為空,則
GetChunk方法返回Null。
每個後續的GetChunk調用將檢索從前一次GetChunk調用停止處開始的數據。但是,如果從一個欄位檢索數據然後在當前記錄中設置或讀取另一個欄位的值,ADO將認為已從第一個欄位中檢索出數據。如果在第一個欄位上再次調用GetChunk方法,ADO將把調用解釋為新的GetChunk操作並從記錄的起始處開始讀取。如果其他Recordset對象不是首個Recordset對象的副本,則訪問其中的欄位不會破壞GetChunk操作。
如果Field對象的Attributes屬性中的adFldLong位設置為True,則可以對該欄位使用GetChunk方法。
如果在Field對象上使用Getchunk方法時沒有當前記錄,將產生錯誤3021(無當前記錄)。
接下來,我們就要來設計我們的資料庫了,作為測試我們的資料庫結構如下(access2000):

欄位名稱 類型 描述
id 自動編號 主鍵值
img OLE對象 用來保存圖片數據

對於在MSSQLServer7中,對應的結構如下:
欄位名稱 類型 描述
id int(Identity) 主鍵值
img image 用來保存圖片數據

現在開始正式編寫我們的純ASP代碼上傳部分了,首先,我們有一個提供給用戶的上傳界面,可以讓用戶選擇要上傳的圖片。代碼如下
(upload.htm):
<html>
<body>
<center>
<form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>
<inputtype=filename=mefile><br>
<inputtype=submitname=okvalue="OK">
</form>
</center>
</body>
</html>
注意enctype="multipart/form-data",一定要在Form中有這個屬性,否則,將無法得到上傳上來的數據。接下來,我們要在process.asp中對從瀏覽器中獲取的數據進行必要的處理,因為我們在process.asp中獲取到的數據不僅僅包含了我們想要的上傳上來的圖片的數據,也包含了其他的無用的信息,我們需要剔除冗餘數據,並將處理過的圖片數據保存到資料庫中,這里我們以access2000為例。具體代碼如下(process.asp):
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13)&chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&server.MapPath("images.mdb")&";uid=WD=;"
connGraph.Open
setrec=server.createobject("ADODB.recordset")
rec.Open"SELECT*FROM[images]whereidisnull",connGraph,1,3
rec.addnew
rec("img").appendchunkmydata
rec.update
rec.close
setrec=nothing
setconnGraph=nothing
%>
好了,這下我們就把上傳來的圖片保存到了名為images.mdb的資料庫中了,剩下的工作就是要將資料庫中的圖片數據顯示到網頁上面了。一般在HTML中,顯示圖片都是使用<IMG>標簽,也就是<IMGSRC="圖片路徑">,但是我們的圖片是保存到了資料庫中,「圖片路徑」是什麼呢?呵呵,其實這個SRC屬性除了指定路徑外,也可以這樣使用哦:
<IMGSRC="showimg.asp?id=xxx">
所以,我們所要做的就是在showimg.asp中從資料庫中讀出來符合條件的
數據,並返回到SRC屬性中就可以了,具體代碼如下(showimg.asp):
<%
setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&
server.MapPath("images.mdb")&";uid=WD=;"
connGraph.Open
setrec=server.createobject("ADODB.recordset")
strsql="selectimgfromimageswhereid="&trim(request("id"))
rec.openstrsql,connGraph,1,1
Response.ContentType="image/*"
Response.BinaryWriterec("img").getChunk(7500000)
rec.close
setrec=nothing
setconnGraph=nothing
%>
注意在輸出到瀏覽器之前一定要指定Response.ContentType="image/*",
以便正常顯示圖片。
最後要注意的地方是,我的process.asp中作的處理沒有考慮到第一頁(upload.htm)中還有其他數據,比如<INPUT type=tesxt name=userid>等等,如果有這些項目,你的process.asp就要注意處理掉不必要的數據。

Ⅶ 資料庫得一些常用語句及其使用方法

--數據操作
SELECT --從資料庫表中檢索數據行和列
INSERT --向資料庫表添加新數據行
DELETE --從資料庫表中刪除數據行
UPDATE --更新資料庫表中的數據
--數據定義
CREATE TABLE --創建一個資料庫表
DROP TABLE --從資料庫中刪除表
ALTER TABLE --修改資料庫表結構
CREATE VIEW --創建一個視圖
DROP VIEW --從資料庫中刪除視圖
CREATE INDEX --為資料庫表創建一個索引
DROP INDEX --從資料庫中刪除索引
CREATE PROCEDURE --創建一個存儲過程
DROP PROCEDURE --從資料庫中刪除存儲過程
CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從資料庫中刪除觸發器
CREATE SCHEMA --向資料庫添加一個新模式
DROP SCHEMA --從資料庫中刪除一個模式
CREATE DOMAIN --創建一個數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從資料庫中刪除一個域
--數據控制
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
--事務控制
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特徵
--程序化SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行准備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述准備好的查詢
---局部變數
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局變數
---必須以@@開頭

Ⅷ MySQL資料庫基礎+ 資料庫的基本操作

需要用的資料以鏈接的形式給需要的同學。

我用的mysql版本為: Mysql-5.5.45-win64.msi 密碼是:26zw

圖形化工具 Navicat(前期不推薦用,直接手動敲): Navicat 密碼:c7fs

開始我的MySQL之旅吧 始於2016.12.04

--WH

一、資料庫的安裝

這個就不在這里過多闡述了,因為網上實在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程(MySQL安裝教程)去看,就能夠安裝完好。

安裝好mysql後,如果需要使用windows命令窗口(也就是cmd)來操作mysql,那麼就需要配置環境變數,在安裝好的mysql下找到bin,將其目錄放到環境變數path中去,就行了,檢測成功與否的方法是在cmd命令窗口中輸入mysql,就會出現一大段英文,就說明成功了,反之失敗,如果不會的話就去網路搜教程。

二、資料庫的基本操作

1、開啟mysql服務命令

net start mysql

2、進入mysql的兩種方式

明文進入:mysql -uroot -proot格式:mysql -u帳號-p密碼

密文進入:mysql -uroot -p 按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示為***這樣。

3、查看mysql中所有的資料庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)

前面四個資料庫是mysql中自帶的,也就是必須的.

SHOW DATABASES;

4、創建名為test_1的資料庫

格式:CREATE DATABASE 資料庫名

CREATE DATABASE test_1;

5、刪除名為test_1的資料庫

格式:DROP DATABASE 資料庫名

DROP DATABASE test_1;

總結:學習了對資料庫的三個操作,1、查看所有資料庫 2、創建資料庫 3、刪除資料庫

三、數據表的基本操作

數據表和資料庫還有Mysql三者的關系

mysql中保存了很多資料庫、一個資料庫中可以保存很多表。

對數據表的增(創建表)刪(刪除表)改(修改表欄位)查(查詢表結構)。 注意:這里的操作對象是表,對表的操作也就是表的結構,和表中的欄位的操作(欄位和記錄要分清楚)

前提:表是在資料庫下的,所以要先確實使用哪個資料庫。

USE test_1;

1、創建數據表

格式:CREATE TABLE 數據表名(

欄位名1數據類型[列級別約束條件],

欄位名2數據類型[列級別約束條件],

欄位名3數據類型[列級別約束條件]

);

注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。

解釋:

1、[]中括弧中的內容表示可以有可以沒有,

2、列級別這個「列」一定要搞清楚說的是什麼,一張表中有行有列,列表示豎,行表示橫

3、約束條件後面會講到

1.1、創建沒有約束的student表
CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11) );

注釋:SHOW TABLES 查詢資料庫底下的所有表。

1.2、創建有約束的student表

六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認約束、自動增加

1.2.1:主鍵約束

PRIMARY KEY(primary key):獨一無二(唯一)和不能為空(非空),通俗的講,就是在表中增加記錄時,在該欄位下的數據不能重復,不能為空,比如以上面創建的表為例子,在表中增加兩條記錄,如果id欄位用了主鍵約束。則id不能一樣,並且不能為空。一般每張表中度有一個欄位為主鍵,唯一標識這條記錄。以後需要找到該條記錄也可以同這個主鍵來確認記錄,因為主鍵是唯一的,並且非空,一張表中每個記錄的主鍵度不一樣,所以根據主鍵也就能找到對應的記錄。而不是多條重復的記錄。如果沒有主鍵,那麼表中就會存在很多重復的記錄,那麼即浪費存儲空間,在查詢時也消耗更多資源。

一般被主鍵約束了的欄位度習慣性的稱該欄位為該表的主鍵

單欄位主鍵約束

兩種方式都可以

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12),nameVARCHAR(12),

ageINT(11) ageINT(11),

);PRIMARY KEY(id) );

多欄位主鍵約束(復合主鍵)

這個id和name都市主鍵,說明在以後增加的插入的記錄中,id和name不能同時一樣,比如說可以是這樣。一條記錄為id=1,name=yyy、另一條記錄為:id=1,name=zzz。 這樣是可以的。並不是你們所理解的兩個欄位分別度不可以相同。

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12) PRIMARY KEY,nameVARCHAR(12),

ageINT(11)ageINT(11),

);PRIMARY KEY(id,name) );

1.2.2:外鍵約束

什麼是外鍵舉個例子就清楚了,有兩張表,一張表是emp(員工)表,另一張表是dept(部門)表,一個員工屬於一個部門,那麼如何通過員工能讓我們自己他在哪個部門呢?那就只能在員工表中增加一個欄位,能代表員工所在的部門,那該欄位就只能是存儲dept中的主鍵了(因為主鍵是唯一的,才能確實是哪個部門,進而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區分了。),像這樣的欄位,就符合外鍵的特點,就可以使用外鍵約束,使該欄位只能夠存儲另一張表的主鍵。如果不被外鍵約束,那麼該欄位就無法保證存儲進來的值就一定是另一張表的主鍵值。

外鍵約束的特點:

1、外鍵約束可以描述任意一個欄位(包括主鍵),可以為空,並且一個表中可以有多個外鍵。但是外鍵欄位中的值必須是另一張表中的主鍵。

2、這樣被外鍵關聯的兩種表的關系可以稱為父子表或者主從表。子表(從表)擁有外鍵欄位的表,父表(主表)被外鍵欄位所指向的表。

3、子表被外鍵約束修飾的欄位必須和父表的主鍵欄位的類型一樣。

注意:一個表中有被外鍵修飾的欄位,就稱該表有外鍵(是「有外鍵」。而不是「是外鍵」),並會給該表中的外鍵約束取一個名稱,所以我們常說的這個表有沒有外鍵,指的不是被外鍵約束修飾的欄位名,而是指這個表是否有存在外鍵約束。也就是說,不能說這個表的外鍵是xxx(該表中被外鍵約束修飾的欄位名),這種說法是錯誤的,但是大多數人已經習慣了這樣,雖然影響不大,但是在很多時候需要理解一個東西時,會造成一定的困擾。

格式:CONSTRAINT外鍵名稱FOREIGN KEY(被外鍵約束的欄位名稱)REFERENCES 主表名(主鍵欄位)

英文解釋:CONSTRAINT:約束REFERENCES:參考

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);

解釋:tableB中有一個名為tableA_tableB_1的外鍵關聯了tableA和tableB兩個表,被外鍵約束修飾的欄位為tableB中的deptId,主鍵欄位為tableA中的id

1.2.3:非空約束

NOT NULL. 被該約束修飾了的欄位,就不能為空,主鍵約束中就包括了這個約束

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);

1.2.4:唯一約束

UNIQUE 被唯一約束修飾了的欄位,表示該欄位中的值唯一,不能有相同的值,通俗點講,就好比插入兩條記錄,這兩條記錄中處於該欄位的值不能是一樣的。

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);

也就是說在插入的記錄中,每條記錄的name值不能是一樣的。

1.2.5:默認約束

Default 指定這一列的默認值為多少,比如,男性同學比較多,性別就可以設置為默認男,如果插入一行記錄時,性別沒有填,那麼就默認加上男

CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);

1.2.6:自動增加

AUTO_INCREMENT 一個表只能一個欄位使用AUTO_INCREMENT,並且使用這個約束的欄位只能是整數類型(任意的整數類型 TINYINT,SMALLIN,INT,BIGINT),默認值是1,也就是說從1開始增加的。一般就是給主鍵使用的,自動增加,使每個主鍵的值度不一樣,並且不用我們自己管理,讓主鍵自己自動生成
CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );
2、查詢表結構

2.1、查看錶基本結構語句

格式1:DESCRIBE 表名/DESC 表名這兩個的功能是一樣的,簡寫了單詞describe

DESCRIBEstudent;

2.2、查看創建表的語句

格式:SHOW CREATE TABLE 表名

SHOW CREATE TABLE student;

這樣顯示的格式很不好,看不清楚,所以有了下面這個語句

格式:SHOW CREATE TABLE 表名\G

SHOW CREATE TABLE student\G;

3、修改數據表

修改數據表包括:對表中欄位的增加、刪除、修改。 在這個裡面用的關鍵字為 ALTER

3.1、修改表名

格式:ALTER TABLE<舊表名> RENAME[TO]<新表名>;

將student表名改為student1(改完後在改回來)

ALTER TABLE student RENAME TO student1;

3.2、修改表中的欄位名

格式:ALTER TABLE<表名> CHANGE<舊欄位名><新欄位名><新數據類型>

將student表中的name欄位名改為 username

ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的數據類型

格式:ALTER TABLE<表名> MODIFY<欄位名><數據類型>

ALTER TABLE student MODIFY username VARCHAR(20);

解釋:只能修改欄位名的數據類型,但是其原理跟上面change做的事情一樣,這里也有修改欄位名的過程,只不過修改後的欄位名和修改前的欄位名相同,但是數據類型不一樣。

3.4、修改欄位的排列位置

方式1:ALTER TABLE<表名> MODIFY<欄位1><數據類型> FIRST|AFTER<欄位2>

解釋:將欄位1的位置放到第一,或者放到指定欄位2的後面

ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

方式2:ALTER TABLE<表名> CHANGE<欄位1><欄位2><數據類型> FIRST|AFTER<欄位3>

解釋:其實是一樣的,將是欄位2覆蓋欄位1,然後在進行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

總結

CHANGE和MODIFY的區別?

原理都市一樣的,MODIFY只能修改數據類型,但是CHANGE能夠修改數據類型和欄位名,也就是說MODIFY是CHANGE的更具體化的一個操作。可能覺得用CHANGE只改變一個數據類型不太爽,就增加了一個能直接改數據類型的使用關鍵字MODIFY來操作。

3.5、添加欄位

格式:ALTER TABLE<表名稱> ADD<新欄位名><數據類型>[約束條件][FIRST|AFTER<已存在的表名>]

解釋:在一個特定位置增加一個新的欄位,如果不指定位置,默認是最後一個。

ALTER TABLE student ADD sex VARCHAR(11);

3.6、刪除欄位

格式:ALTER TABLE<表名稱> DROP<欄位名>;

ALTER TABLE student DROP sex;

3.7、刪除表的外鍵約束

格式:ALTER TABLE<表名稱> DROP FOREIGN KEY<外鍵約束名>

注意:外鍵約束名 指的不是被外鍵約束修飾的欄位名,切記,而是我們在創建外鍵約束關系時取的名字。

3.8、更改表的存儲引擎

格式:ALTER TABLE<表名> ENGINE=<更改後的存儲引擎名>

這個存儲引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點就不清楚了,所以打算留到日後在說。

4、刪除表

4.1、刪除無關聯表

格式:DROP TABLE<表名>;

ALTER TABLE student;

4.2、刪除被其他表關聯的主表

這個是比較重要的一點,在有外鍵關聯關系的兩張表中,如果刪除主表,那麼是刪不掉的,並且會報錯。因為有張表依賴於他。那怎麼辦呢?針對這種情況,總共有兩種方法

1、先刪除你子表,然後在刪除父表,這樣就達到了刪除父表的目的,但是子表也要被刪除
2、先解除外鍵關系,然後在刪除父表,這樣也能達到目的,並且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關系。

Ⅸ 求MYSQL資料庫 詳細使用 教程

其一:
mssql
是微軟SQL
Server,運行於windows
2000,2003等平台
mssql
的正式名字是
SQL
Server
MS公司出的。圖形操作界面好一些,性能還可以。在mssql和oracle上不能互換.支持OLEDB連接.asp﹑mssql
只能for
windows
mysql
是個開源的資料庫Server,可運行在windows平台、unix\\linux平台,其標准版是免費的,性能也可以。速度快,用於小規模.命令行界
面.
其二:
驅動程序不一樣,欄位類型不一樣,比如說,mysql裡面沒有nvarchar這些數據類型,而mssql裡面有。
其三:
mysql有完整的許可權控制,全面的tcp協議支持,能跨web存取,只要結構設計地好,mysql也是一套非常有價值和資料庫系統,但是不支持外鍵,不
支持事務,不支持存儲過程,不支持觸發器.全文搜索就更沒有了﹐除for
window版要給錢﹐其它平台都是免費,可以把它理解為有用戶控管的
access資料庫.但是它比較適用於中小型的項目,存儲大量數據還是不行。
但是mssql的容量大,穩定性好,大中型項目都可以用它來做,速度沒有mysql快。也就是以下兩句話:
MYSQL
用PHPMYADMIN管理的,一般都是本機直接調用,對伺服器資源佔用小,存儲量一般
MSSQL
用SQL2000管理的,一般都是遠程調用,對伺服器資源佔用比較大,存儲量很大
其四:
分頁區別就在SQL語句在獲取記錄總數的時候不同。
select
count(*)
from
guestbook
;
//mssql
select
name
from
note;
//mysql
其五:
最佳組合
ASP/ASPX+MSSQL
PHP/JSP+MYSQL

熱點內容
2013年二級c語言真題 發布:2024-10-08 10:44:47 瀏覽:243
linux的locale 發布:2024-10-08 10:44:36 瀏覽:91
2rsa演算法 發布:2024-10-08 10:29:53 瀏覽:542
南京社保密碼多少 發布:2024-10-08 10:21:01 瀏覽:472
國內的少兒編程 發布:2024-10-08 10:21:00 瀏覽:521
vscode編譯調試閃退 發布:2024-10-08 10:19:27 瀏覽:671
oracle資料庫用戶許可權 發布:2024-10-08 09:46:00 瀏覽:708
立方的演算法口訣 發布:2024-10-08 09:44:30 瀏覽:820
python輸入到excel表格 發布:2024-10-08 09:36:31 瀏覽:285
腳本拒絕訪問閃退 發布:2024-10-08 09:34:55 瀏覽:939