當前位置:首頁 » 編程語言 » c語言和sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言和sql

發布時間: 2022-09-18 20:16:14

sql語言有什麼作用它與c語言有什麼異同點。

SQL既結構化查詢語言,是一種關系型資料庫.作用和ORACLE,DB2,MYSQL類似.
作用:存儲數據,查詢數據.處理數據.
C語言是一種過程性語言,是從事系統軟體和游戲軟體開發的語言,現在主要是用VC++,它也可以從事手機系統開發,像塞班系統就是VC開發的.
SQL是一種非過程化語言,你只用下命令,不用說明怎麼做,軟體幫你解決.而C語言是過程化語言,你不僅要下命令,還要說明怎麼做,難度遠遠大於SQL.

Ⅱ SQL就是C語言嗎兩者有什麼區別

不是,C是面向過程的編程語言,比如編寫應用程序,偏向硬體。sql是結構化查詢查詢語言,比如有大量數據按一定的規律存好了,用sql語言可以快速查出需要的信息。

Ⅲ c語言和SQL的比較

說說C語言:
我學過C語言,它只能編寫DOS程序,功能不是很強大,但卻是基礎,因為大部分流行的編程軟體都與C語言的語法結構類似,一定要先學。

C++:
C語言進化而來的,有強大的功能,舉例吧:
軟體:
微軟的Office系列
Macromedia網頁三劍客 - flash,dreamweaver,fireworks
Adobe出的 超有名的作圖軟體 - PhotoShop
3D動畫軟體 - 3DMax
.....
游戲:
PC平台幾乎所有的游戲
星際爭霸、魔獸爭霸、CS、帝國時代、跑跑卡丁車、傳奇、魔獸世界....
那數不勝數了,自己數吧:)
以上均出自C++之手,原因是C++靠近計算機底層,編寫出來的程序對系統資源依賴較小,功能強大,運行速度快,比如你的兩個朋友與你分別玩 用 VB、Java、與C++編寫的「跑跑卡丁車」,你玩C++那款游戲已經跑玩結束了,發現你的兩個朋友還沒開始跑呢,那是相當的卡啊,所以這一系列的軟體、游戲都會採用C++編寫。
雖然C++很有優點,但是對於學習者來說應該是比較困難的一門語言。(再說明一點,C或C++屬於語言,而VC - 「Visual C++」是用來編寫C或C++的工具)

說說SQL:

SQL是結構化查詢語言(STRUCTURED QUERY LANGUAGE),它是一組專用的程序命令,可完成如下任務:
在一個或多個資料庫的一個或多個表中檢索數據.
通過插入,刪除或更改記錄操縱表中數據.
對表的數據進行數學統計.
創建,更改或刪除資料庫中的表(僅ACCESS資料庫)
創建或刪除表中的索引.
SQL查詢語言主要結構為:
Select 查詢欄位 from 表名 Where 查詢條件語句 [排序語句或分組語句]
查詢欄位必須分別用(西文)逗號分開或就用一個*號代替.
僅供參考.

Ⅳ c語言怎麼使用sql觸發器

c語言怎麼使用sql觸發器:
定義: 何為觸發器?在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。
常見的觸發器有三種:分別應用於Insert , Update , Delete 事件。

我為什麼要使用觸發器?比如,這么兩個表:

Create Table Student( --學生表
StudentID int primary key, --學號
....
)

Create Table BorrowRecord( --學生借書記錄表
BorrowRecord int identity(1,1), --流水號
StudentID int , --學號
BorrowDate datetime, --借出時間
ReturnDAte Datetime, --歸還時間
...
)

用到的功能有:
1.如果我更改了學生的學號,我希望他的借書記錄仍然與這個學生相關(也就是同時更改借書記錄表的學號);
2.如果該學生已經畢業,我希望刪除他的學號的同時,也刪除它的借書記錄。
等等。

這時候可以用到觸發器。對於1,創建一個Update觸發器:

Create Trigger truStudent
On Student --在Student表中創建觸發器
for Update --為什麼事件觸發
As --事件觸發後所要做的事情
if Update(StudentID)
begin

Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted臨時表
Where br.StudentID=d.StudentID

end

理解觸發器裡面的兩個臨時的表:Deleted , Inserted 。注意Deleted 與Inserted分別表示觸發事件的表「舊的一條記錄」和「新的一條記錄」。
一個資料庫系統中有兩個虛擬表用於存儲在表中記錄改動的信息,分別是:
虛擬表Inserted 虛擬表Deleted

在表記錄新增時 存放新增的記錄 不存儲記錄
修改時 存放用來更新的新記錄 存放更新前的記錄
刪除時 不存儲記錄 存放被刪除的記錄

一個Update 的過程可以看作為:生成新的記錄到Inserted表,復制舊的記錄到Deleted表,然後刪除Student記錄並寫入新紀錄。

對於2,創建一個Delete觸發器
Create trigger trdStudent
On Student
for Delete
As
Delete BorrowRecord
From BorrowRecord br , Delted d
Where br.StudentID=d.StudentID

從這兩個例子我們可以看到了觸發器的關鍵:A.2個臨時的表;B.觸發機制。

Ⅳ 資料庫標准語言SQL和C語言、C++語言的關系是什麼

沒有直接關系。 SQL語句可以嵌入到C或C++中,實際上,即使是這種嵌入,他們也和C和C++沒什麼直接關系。 這些SQL語句最終還是要傳到資料庫引擎里,由資料庫引擎完成相關操作。

Ⅵ Vba和SQL和c語言的區別

VBA屬於VB的子類,其主要目的是基於應用程序自動化的編程語言,用來擴展應用程式功能,特別是Office這類辦公軟體。當然因為它比較簡單也容易上手,現在有一些軟體也支持,比如CAD,coredrow等等。

SQL為結構化查詢語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;是高級的非過程化編程語言。關系資料庫操作語言的一種。

C語言為計算機程序設計語言,說到C語言,可能不是一言兩語可以說清它的影響和作用。它是一種通用的、過程式的編程語言,基本上系統和應用軟體等等底層的開發都會基於C語言開發。而且移植性很高,像C++、Objective-C、Java、C#都這些語言都受到C語言的重大影響,俗稱泛C類語言!

所以這三種語言針對的領域各不相同,其中C語言傾向底層開發,像操作系統,晶元等等,而SQL應用領域主要用於高效管理龐大的數據;VBA則主要應用於軟體自動化,使軟體的功能得到擴展,完成一些軟體自身無法完成的工作,或者利用VBA解決一些靠手工根本無法完成的工作。

Ⅶ 關於C語言連接SQL資料庫…

1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:

#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void main()
{
HENV henv; //環境句柄
HDBC hdbc; //數據源句柄
HSTMT hstmt; //執行語句句柄
unsigned char datasource[]="數據源名稱"; //即<a href="https://www..com/s?wd=ODBC&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">ODBC</a>源中設置的源名稱
unsigned char user[]= "用戶名"; //資料庫的帳戶名
unsigned char pwd[]= "密碼"; //資料庫的密碼
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //記錄各SQL函數的返回情況
// 分配環境句柄
retcode= SQLAllocEnv(&henv); // 等介於 SQLAllocHandle(SQL_HANDLE_ENV, SQL_<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>_HANDLE, &henv);
// 設置ODBC環境版本號為3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配連接句柄
retcode= SQLAllocConnect(henv,&hdbc); // 等介於 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);

//直接連接數據源
// 如果是windows身份驗證,第二、三參數可以是<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>,也可以是任何字串
//SQL_NTS 即 "<a href="https://www..com/s?wd=Null&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">Null</a>-Terminated String"
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配語句句柄
retcode= SQLAllocStmt(hdbc,&hstmt); // 等介於 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
//直接執行查詢語句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//將數據緩沖區綁定資料庫中的相應欄位(i是查詢結果集列號,queryData是綁定緩沖區,BUFF_LENGTH是緩沖區長度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍歷結果集到相應緩沖區 queryData
SQLFetch(hstmt);
/*
*對遍歷結果的相關操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯誤!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}

代碼看上去很復雜,其實都可以直接復制。其中需要改的是數據源名稱、資料庫用戶名、資料庫密碼和SQL語句。
然後就是SQLFetch後得到結果集後,如何使用的問題了。
在下面的注釋部分 填寫你的處理代碼即可。

/*
*對遍歷結果的相關操作,如顯示等
*/

Ⅷ SQL與C語言

准確的說SQL是一個資料庫查詢語句, SQL SERVER這個才是資料庫。
一般所說的客戶端伺服器,就是C/S架構的系統,那麼服務端就是資料庫後台了。
使用編程語言,如C語言 C++,然後編寫代碼連接,操控資料庫。

Ⅸ SQL就是C語言嗎兩者有什麼區別

不是,SQL是資料庫,C是編程語言。不是一個概念

Ⅹ C語言嵌套sql查詢

嵌入式SQL程序的VC+SQL server 2000實現的環境配置

嵌入SQL的C應用程序具體到VC++6.0, SQL Server2000 下調試可分為五步:1、環境初始化;2、預編譯;3、編譯;4、連接;5、運行。下面就其中重要的的操作方法給以詳細說明。
1、環境初始化
(1) SQL Server2000為其嵌入式SQL提供了一此特殊的介面;默認的安裝方式沒有安裝這此介面;因此,需要把devtools.rar解壓到SQLServer的系統日錄下(即文件夾devtools中的所有文件);如果操作系統安裝在C盤,則SQL Server的系統目錄是C:\Program Files\Microsoft SQL Server。(或 在安裝Microsoft SQL Server 2000時選擇安裝Development Tools,為使用嵌入式SQL語言准備必要的頭文件和庫文件。)
( 2)初始化Visual C++ 6.0編譯器環境。在命令行方式下運行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
(3)初始化SQL Server的預編譯環境。在命令行方式下運行文件:\Devtools\samples\esqlc\setenv.bat。
( 4) VC++6.0環境配置。具體配置分為如下三步[:
①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。將SQL server自帶的用於資料庫開發的頭文件包含到工程環境中。
②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。將開發用到的包包含到工程中。
③project->Settings->Link->Object/Library Moles,添加庫文件:SQLakw32.lib, Caw32.lib。這兩個文件之間用空格分開。

2、預編譯
C語言編譯程序不能識別應用程序中的SQL語句,需要經過預處理程序將其轉換成C語句。SQL Server的預處理程序是nsqlprep.exe。 nsqlprep.exe在SQL Server安裝日錄的MSSQL\Binn下。若SQL Server資料庫採用的是默任安裝方式,則需要把binn.rar的內容拷貝到指定目錄下。

Microsoft SQL Server 2000提供的預編譯程序nsqlprep.exe,用於對嵌入式SQL程序進行預編譯處理,生成C語言源程序.實際上就是將嵌入式SQL程序中的嵌入式SQL語句替換為對運行時庫文件Sqlakw32. dll的函數調用,接著運行時庫文件調用動態連接庫Ntwdblib. dll通過網路來存取Microsoft SQL Server 2000資料庫伺服器.
預編譯程序nsqlprep的常用語法為:
nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
其中ESQL_File是要預編譯的嵌入式SQL程序;/SQLACCESS通知nsqlprep自動地為嵌入式SQL程序中的靜態SQL語句創建相應的存儲過程;/DB server_name.database_name指明要連接的伺服器以及資料庫名稱;/PASS login.password給出登錄名及相應的口令.

下面的程序demo.sqc實現了從資料庫伺服器hushaobo的資料庫pubs中的authors表中讀取au_lname為white的人對應的 au_fname 值,並保存到變數first_name 中顯示出來。(連接資料庫的用戶為sa,對應密碼為1982)

#include<stdio.h>
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[40];
char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo.pubs
USER sa.1982;
EXEC SQL SELECT au_fname INTO :first_name from authors WHERE au_lname = :last_name;
EXEC SQL DISCONNECT ALL;
printf("first name: %s \n",first_name);
}

在命令行下運行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo.pubs /PASS sa.1982
則生成demo.c,將該文件添加到VC工程中編譯即可。

3、編譯,連接與運行
在VC++6.0中創建一個 "WIN32 Console Application"的Proiect,然後將預編譯生成的c文件加入Proiect,編譯連接即可生成訪問SQL Server的可執行程序。 Visual C++ 6.0進行編譯連接時需要用到動態鏈接庫SQLakw32.d11與SQLaiw32.d11;盡管這兩個文件已經隨同binn.rar被拷貝到SQLServer安裝目錄的MSSQL\Binn文件夾下,但仍然需要把它們的路徑加到系統路徑變數中,以使得程序運行時能找到它們,具體添加方法如下:
方法1:把這兩個文件拷貝到操作系統目錄下的system32子目錄中。
方法2:我的電腦->屬性->高級->環境變數->path->編輯,在變數值中加入路徑值;新路徑與已有路徑間用;間隔。

注意調適程序時,文件名中不要包含cursor,否則可能會出錯。