① 在sqlserver裡面「命名管道」是什麼意思
SQL Server中的命名管道(named pipe)及其使用
1. 什麼是命名管道?
與TCP/IP(傳輸控制協議或internet協議)一樣,命名管道是一種通訊協議。它一般用於區域網中,因為它要求客戶端必須具有訪問伺服器資源的許可權。
要解釋這個問題,我還是摘錄微軟官方的資料比較好
http://msdn.microsoft.com/zh-cn/library/ms187892.aspx
若要連接到 SQL Server 資料庫引擎,必須啟用網路協議。Microsoft SQL Server 可同時通過多種協議處理請求。客戶端用單個協議連接到 SQL Server。如果客戶端程序不知道 SQL Server 正在偵聽哪個協議,可以配置客戶端按順序嘗試多個協議。使用 SQL Server 配置管理器啟用、禁用以及配置網路協議。
Shared Memory
Shared Memory 是可供使用的最簡單協議,沒有可配置的設置。由於使用 Shared Memory 協議的客戶端僅可以連接到同一台計算機上運行的 SQL Server 實例,因此它對於大多數資料庫活動而言是沒用的。如果懷疑其他協議配置有誤,請使用 Shared Memory 協議進行故障排除。
注意:
使用 MDAC 2.8 或更早版本的客戶端不能使用 Shared Memory 協議。如果這些客戶端嘗試使用,將自動切換為 Named Pipes 協議。
TCP/IP
TCP/IP 是 Internet 上廣泛使用的通用協議。它與互連網路中硬體結構和操作系統各異的計算機進行通信。TCP/IP 包括路由網路流量的標准,並能夠提供高級安全功能。它是目前在商業中最常用的協議。將計算機配置為使用 TCP/IP 可能會很復雜,但大多數聯網的計算機已經配置正確。若要配置未在 SQL Server 配置管理器中出現的 TCP/IP 設置,請參閱 Microsoft Windows 文檔。
Named Pipes 是為區域網而開發的協議。內存的一部分被某個進程用來向另一個進程傳遞信息,因此一個進程的輸出就是另一個進程的輸入。第二個進程可以是本地的(與第一個進程位於同一台計算機上),也可以是遠程的(位於聯網的計算機上)。
VIA
虛擬介面適配器 (VIA) 協議和 VIA 硬體一同使用。有關如何使用 VIA 的信息,請與硬體供應商聯系。
Named Pipes 與 TCP/IP 套接字
在快速區域網 (LAN) 環境中,傳輸控制協議或 Internet 協議 (TCP/IP) 套接字客戶端和 Named Pipes 客戶端在性能方面不相上下。但是,網路速度越慢[如在廣域網 (WAN) 或撥號網路上],TCP/IP 套接字客戶端與 Named Pipes 客戶端的性能差異越明顯。這是因為進程間通信 (IPC) 的機制在對等項間的通信方式不同。
對於 Named Pipes,通常網路通信交互性更強。一個對等方直到另一個對等方使用讀取命令請求數據時才發送數據。在開始讀取數據前,網路讀取一般包括一系列窺視 Named Pipes 的信息。這在慢速網路中可能開銷非常大,並會導致過多的網路流量,其他的網路客戶端反過來也會受到影響。
闡明所討論的是本地管道還是網路管道也很重要。如果伺服器應用程序在運行 SQL Server 實例的計算機的本地運行,則可以選擇本地 Named Pipes 協議。本地 Named Pipes 以內核模式運行且速度非常快。
對於 TCP/IP 套接字,數據傳輸的效率更高,開銷也更少。數據傳輸還可以利用 TCP/IP 套接字性能增強機制的優點,例如窗口化、延遲確認等。這在慢速網路中可能非常有益。對於應用程序的不同類型,這類性能差異可能非常大。
TCP/IP 套接字還支持積壓隊列。試圖連接到 SQL Server 時,與可能導致管道忙錯誤的 Named Pipes 相比,該隊列可以帶來有限的平穩效果。
通常,TCP/IP 在慢速 LAN、WAN 或撥號網路中效果較好。而當網路速度不成問題時,Named Pipes 則是更好的選擇,因為其功能更強、更易於使用並具有更多的配置選項。
啟用協議
該協議必須在客戶端和伺服器上都啟用才能正常工作。伺服器可以同時監聽所有已啟用的協議的請求。客戶端計算機可以選取一個協議,或按照 SQL Server 配置管理器中列出的順序嘗試這些協議。
注意:
Microsoft SQL Server 不支持 Banyan VINES 順序包協議 (SPP)、多協議、AppleTalk 或 NWLink IPX/SPX 網路協議。以前使用這些協議連接的客戶端必須選擇其他協議才能連接到 SQL Server。
實際上,命名管道在SQL Server配置管理器中看起來是下面這樣。其實,在安裝好SQL Server之後就自動會有一個管道名稱。你當然也可以修改該名稱的。
2. 為什麼用命名管道?
使用命名管道的原因一般有兩個方面
提高速度
假設同樣在區域網中,那麼使用命名管道協議會比TCP/IP協議快一些。
增加安全性
因為命名管道是只能用於區域網的,那麼如果伺服器關閉了TCP/IP協議而僅啟用命名管道,就可以避免一些安全隱患
3. 如何使用命名管道?
要使用命名管道連接到SQL Server,客戶端代碼中的連接字元串大致的語法是這樣的
"server=.;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"
如果伺服器是命名實例,則
"server=.\instanceName;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"
【注意】必須在伺服器啟用named pipe協議,並且啟動Broswer服務
為了避免在連接字元串中這么麻煩,也為了避免泄露我們連接數據的一些機密信息。SQL Server Native Client還支持定義別名
② 在sql語句中單管道符是什麼意思
有例子嗎?
只有 || 在oracle表示字元連接 '123'||'abc' 相當於 sqlserver的 '123' + 'abc'
③ 關於SQL中的交叉連接到底有什麼實際的用途呢剛剛學習資料庫
1.概念:沒有 WHERE 子句的交叉聯接將產生聯接所涉及的表的笛卡爾積。第一個表的行數乘以第二個表的行數等於笛卡爾積結果集的大小。(table1和table2交叉連接產生3*3=9條記錄)
2.交叉連接:cross join (where...)
3.sql語句
select * from table1 cross join table2 (where ...)
實際應用中很少這樣去設計表,所以查詢時也很少這樣查詢。
查詢出來的結果是,倆張表的所有組合情況。
④ plsql中管聯操作符的作用
1、打開PLSQL,填寫用戶名和密碼(初始有兩個用戶sys和system,密碼是自己安裝oracle資料庫時定的),Database選擇ORCL(默認資料庫,oracle中創建的用戶就像是mysql中建的資料庫,兩者有異曲同工之妙)
以上就是在PLSQL中新建用戶,創建表的步驟,謝謝!
⑤ SQL資料庫中連接有什麼作用
連接字元,有兩個作用,一個是簡單的鏈接作用,能夠鏈接的就連接不能的就不連接;另一個是強行連接。
⑥ mysql管道符怎麼用
|| 是 Oracle 的 連接字元串的用法。
MySQL 連接字元串, 就是用 concat 函數的。
而 SQL Server , 就用 + 來 連接字元串
不同的資料庫, 處理機制都不一樣的。
⑦ sql內連接 有什麼作用啊
內連也叫自連,是和自己做比較..用嗎/這得看實際需要,,吧
⑧ sql 自連接有什麼作用,請舉例說明!!!!
比如查重復記錄
更為通常的,舉個例子,員工表,有些記錄是經理,其他是員工,員工和經理是多對一關系
你如果要查詢某經理的下屬,肯定需要自連接
隨便舉的例子,根據項目需求不同,會有各種各樣的情況
⑨ sql中左連接是什麼意思啊,有什麼作用啊能否給個例子,謝謝大家
左連接:Left Join 或 Left Outer Join
--Student表
--
1張三25
2李四26
3無名氏27
--BorrowBook表
--
1馬克思主義政治經濟學電子工業出版社
2***思想概論高等教育出版社
--SQL語句
Select
Student.StudentName,
Student.StudentAge,
BorrowBook.BorrowBookName,
BorrowBook.BorrowBookPublish
FromStudent
LeftJOINBorrowBook
OnStudent.StudentID=BorrowBook.StudentID
--運行的結果如下:
---------------------------------------------------------------------------------
--張三25馬克思主義政治經濟學電子工業出版社
--李四26***思想概論高等教育出版社
--無名氏27NULLNULL
查詢的結果是以左表Student為主,Student對應的StudentID在右表BorrowBook如果不存在的話,就會用NULL值來代替。
⑩ SQL語句中各個連接的用法和區別
1、顯示資料庫列表。
show databases;
剛開始時才兩個資料庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、顯示庫中的數據表:
use mysql; //打開庫,學過FOXBASE的一定不會陌生吧
show tables;
3、顯示數據表的結構:
describe 表名;
4、建庫:
create database 庫名;
5、建表:
use 庫名;
create table 表名 (欄位設定列表);
6、刪庫和刪表:
drop database 庫名;
drop table 表名;
7、將表中記錄清空:
delete from 表名;
8、顯示表中的記錄:
select * from 表名;
三、一個建庫和建表以及插入數據的實例
drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default 』深圳』,
year date
); //建表結束
//以下為插入欄位
insert into teacher values(』』,』glchengang』,』深圳一中』,』1976-10-10』);
insert into teacher values(』』,』jack』,』深圳一中』,』1975-12-23』);
註:在建表中(1)將ID設為長度為3的數字欄位:int(3)並讓它每個記錄自動加一:auto_increment並不能為空:not null而且讓他成為主欄位primary key(2)將NAME設為長度為10的字元欄位(3)將ADDRESS設為長度50的字元欄位,而且預設值為深圳。varchar和char有什麼區別呢,只有等以後的文章再說了。(4)將YEAR設為日期欄位。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為school.sql,然後復制到c:\\下,並在DOS狀態進入目錄[url=file://\\mysql\\bin]\\mysql\\bin[/url],然後鍵入以下命令:
mysql -uroot -p密碼 < c:\\school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。
四、將文本數據轉到資料庫中
1、文本數據應符合的格式:欄位數據之間用tab鍵隔開,null值用[url=file://\\n]\\n[/url]來代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、數據傳入命令 load data local infile \"文件名\" into table 表名;
注意:你最好將文件復制到[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下,並且要先用use命令打表所在的庫。
五、備份資料庫:(命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下執行)
mysqlmp --opt school>school.bbb
注釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。