⑴ Windows Server 2016第三版技術預覽帶來了哪些新特性
隨著Windows Server 2016和System Center2016第 三版技術預覽的發布,我們也迎來了全新的里程碑。藉助這兩個分別針對混合雲和數據中心的解決方案的推出,微軟希望能夠幫助用戶將雲計算的靈活性引入企業。 對於微軟來說,這些里程碑式的產品在公司發展歷程中扮演了重要角色,它讓我們有機會了解各個用戶群體的看法。我們也希望用戶能夠從一開始就了解我們推出此 產品的初衷、熟悉新的功能,並了解這項新技術將如何改進你的業務。
對於用戶來說,此次的亮點是首次發布的Windows Server容器。這是將容器技術帶入WindowsServer生態系統的第一步,我們對隨之而來的可能性感到非常興奮。你可能已經看到容器技術的發展勢頭,這種新技術可以簡化應用的開發與部署。我們致力於讓容器技術成為現代應用平台的一部分,並將其整合在2016年推出的數據中心解決方案中,提供給我們的客戶。您可以通過MikeNeil的博客了解有關於容器技術創新的更多信息。
容器僅僅是Windows Server和SystemCenter技術預覽版眾多新特性中的一個。除此之外,我們還增強了上一個預覽版中的功能,並添加了一些新的特性,供你第一時間進行評估。
Nano Server
作為最小的內存部署選項,就像在技術預覽版2階段一樣,Nano Server可以被安裝在物理主機或虛擬機上。新的EmergencyManagement Console讓用戶可以在NanoServer控制台中直接查看和修復網路配置。此外,我們還提供PowerShell腳本用於創建一個運行NanoServer的Azure虛擬機。從應用的角度來說,你現在可以使用CoreCLR運行ASP.Netv5應用。總而言之,我們增加了重大功能以擴展Nano Server能力,而這一切的更新都建立在維持原有內存佔用的基礎之上。
軟體定義網路
在第三版技術預覽中,你會發現絕大多數網路功能是新增的。我們引入了用於編程政策的可擴展網路控制器、用於高可用性和高性能的L4負載均衡器、用於混合連接的增強網關,以及融合了RDMA流量和租戶流量的底層網路結構。在此次發布的預覽版中,你將首次體驗到我們在Azure中使用的核心網路功能套件和SDN架構。
安全
此次發布的預覽版增加了對於Hyper-V的投入:包括某些用於下一版本的安全創新。虛擬機隔離是我們承諾的核心,即幫助你保護共享環境中的資源。現在,你可以通過一個署名模板測試創建一個屏蔽虛擬機,以及該新屏蔽虛擬機的其他功能。你還可以發現WindowsServer扮演的全新角色——Host Guardian Service,管理員可以識別合法主機。
工作負載支持
● 用於增強關鍵工作復雜支持的附加特性和功能包括:
● 藉助擁有OpenGL支持的Remote Desktop Services提高應用兼容性。
● 藉助Storage Replica,對面向延展集群的站點感知而改進業務連續性場景。
● 通過為sql Server集群刪除特定域容器而增加靈活性。
管理
在System Center 2016第三版技術預覽版中,增強的特性簡化了WindowsServer中新功能的管理。包括對Virtual Machine Manager的改進,如支持集群節點的滾動升級,支持NanoServer作為主機和文件伺服器。通過輕松管理隔離虛擬機和受保護主機,你還可以充分利用我們針對共享環境的安全增強功能。在存儲方面,你會看到改進的功能,以保持滿足預期的端對端服務質量(QoS)和更快速的數據(使用存儲分層)檢索。在OperationsManager中,我們則側重於通過管理包的可發現性,和使用PowerShel自動化維護窗口的能力,來提升用戶體驗。
此外,我們還發布了面向Windows 10客戶端的Remote Server AdministrationTools(RSAT),實現對Windows Server 2016技術預覽版、Windows Server 2012R2和Windows Server 2012的遠程管理。
更多的新特性待你評估,詳情可查看Experience Guides;我們還歡迎各位參加我們的User Voice計劃,參與整個開發過程。目前Windows Server 2016第三版技術預覽及System Center 2016第三版技術預覽都已經開放下載。期待來自你的建議。
注意:以上提到的軟體、特性及功能均基於預覽版,實際發布時可能會有所不同。
⑵ sql 表結構
column1 datatype [not null] [not null primary key], column2 datatype [not null],...)
說明:
datatype --是資料的格式,詳見表。
nut null --可不可以允許資料有空的(尚未有資料填入)。
primary key --是本表的主鍵。
2、更改表格
alter table table_name add column column_name datatype
說明:增加一個欄位(沒有刪除某個欄位的語法。)
lter table table_name add primary key (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
alter table table_name drop primary key (column_name)
說明:把主鍵的定義刪除。
3、建立索引
create index index_name on table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。
4、刪除
drop table_name
drop index_name
二、資料形態 datatypes
smallint
16 位元的整數。
interger
32 位元的整數。
decimal(p,s)
p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float
32位元的實數。
double
64位元的實數。
char(n)
n 長度的字串,n不能超過 254。
varchar(n)
長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n)
和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為支援兩個字元長度的字體,例如中文字。
vargraphic(n)
可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date
包含了 年份、月份、日期。
time
包含了 小時、分鍾、秒。
timestamp
包含了 年、月、日、時、分、秒、千分之一秒。
三、資料操作 dml(data manipulation language)
資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:
1、增加資料:
insert into table_name (column1,column2,...) values ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
insert into table_name (column1,column2,...) select columnx,columny,... from another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
select column1,columns2,... from table_name
說明:把table_name 的特定欄位資料全部列出來
select * from table_name where column1 = xxx [and column2 > yyy] [or column3 <> zzz]
說明:
1.'*'表示全部的欄位都列出來。
2.where 之後是接條件式,把符合條件的資料列出來。
select column1,column2 from table_name order by column2 [desc]
說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,若沒有指明,則是從小到大排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的表格才能夠得到結果的。
select * from table1,table2 where table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
select count (*) from table_name where column_name = xxx
說明:
查詢符合條件的資料共有幾筆。
select sum(column1) from table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 avg() 是計算平均、max()、min()計算最大最小值的整合性查詢。
select column1,avg(column2) from table_name group by column1 having avg(column2) > xxx
說明:
1.group by: 以column1 為一組計算 column2 的平均值必須和 avg、sum等整合性查詢的關鍵字一起使用。
2.having : 必須和 group by 一起使用作為整合性的限制。
復合性的查詢
select * from table_name1 where exists ( select * from table_name2 where conditions )
說明:
1.where 的 conditions 可以是另外一個的 query。
2.exists 在此是指存在與否。
select * from table_name1 where column1 in ( select column1 from table_name2 where conditions )
說明:
1. in 後面接的是一個集合,表示column1 存在集合裡面。
2. select 出來的資料形態必須符合 column1。
其他查詢
select * from table_name1 where column1 like 'x%'
說明:like 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
select * from table_name1 where column1 in ('xxx','yyy',..)
說明:in 後面接的是一個集合,表示column1 存在集合裡面。
select * from table_name1 where column1 between xx and yy
說明:between 表示 column1 的值介於 xx 和 yy 之間。
3、更改資料:
update table_name set column1='xxx' where conditoins
說明:
1.更改某個欄位設定其值為'xxx'。
2.conditions 是所要符合的條件、若沒有 where 則整個 table 的那個欄位都會全部被更改。
4、刪除資料:
delete from table_name where conditions
說明:刪除符合條件的資料。
說明:關於where條件後面如果包含有日期的比較,不同資料庫有不同的表達式。具體如下:
(1)如果是access資料庫,則為:where mydate>#2000-01-01#
(2)如果是oracle資料庫,則為:where mydate>cast('2000-01-01' as date) 或:where mydate>to_date('2000-01-01','yyyy-mm-dd')
在delphi中寫成:
thedate='2000-01-01';
query1.sql.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');
如果比較日期時間型,則為:
where mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')
⑶ SQL中數據類型有哪些
int 整型 int 數據類型可以存儲從- 231(-2147483648)到231 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組
tinyint 整型 tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。 這種數據類型在資料庫中佔用1 個位元組
float 近似數值型 float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數
bit 整型 bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off
char 字元型 char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型很有用。例如,當你按郵政編碼加4個字元格式來存儲數據時,你知道總要用到10個字元。此數據類型的列寬最大為8000 個字元
varchar 字元型 varchar數據類型,同char類型一樣,用來存儲非統一編碼型字元數據。與char 型不一樣,此數據類型為變長。當定義一列為該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度
nchar 統一編碼字元型 nchar 數據類型用來存儲定長統一編碼字元型數據。統一編碼用雙位元組結構來存儲每個字元,而不是用單位元組(普通文本中的情況)。它允許大量的擴展字元。此數據類型能存儲4000種字元,使用的位元組空間上增加了一倍
nvarchar 統一編碼字元型 nvarchar 數據類型用作變長的統一編碼字元型數據。此數據類型能存儲4000種字元,使用的位元組空間增加了一倍
text 字元型 text 數據類型用來存儲大量的非統一編碼型字元數據。這種數據類型最多可以有231-1或20億個字元
datetime 日期時間型 datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數據, 精確到三百分之一秒或3.33毫秒
Smalldatetime 日期時間型 smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鍾
image 二進制數據類型 image 數據類型用來存儲變長的二進制數據,最大可達231-1或大約20億位元組
基本查詢
select column1,columns2,...
from table_name
說明:把table_name 的特定欄位資料全部列出來
select *
from table_name
where column1 = ***
[and column2 > yyy] [or column3 <> zzz]
說明:
1.'*'表示全部的欄位都列出來。
2.where 之後是接條件式,把符合條件的資料列出來。
select column1,column2
from table_name
order by column2 [desc]
說明:order by 是指定以某個欄位做排序,[desc]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的
表格才能夠得到結果的。
select *
from table1,table2
where table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
select count (*)
from table_name
where column_name = ***
說明:
查詢符合條件的資料共有幾筆。
select sum(column1)
from table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 avg() 是計算平均、max()、min()計算最大最小值的整合性查詢。
select column1,avg(column2)
from table_name
group by column1
having avg(column2) > ***
說明:
1.group by: 以column1 為一組計算 column2 的平均值必須和 avg、sum等整合性查詢的關鍵字
一起使用。
2.having : 必須和 group by 一起使用作為整合性的限制。
復合性的查詢
select *
from table_name1
where exists (
select *<BR>from table_name2
where conditions )
說明:
1.where 的 conditions 可以是另外一個的 query。
2.exists 在此是指存在與否。
select *
from table_name1
where column1 in (
select column1
from table_name2
where conditions )
說明:
1. in 後面接的是一個集合,表示column1 存在集合裡面。
2. select 出來的資料形態必須符合 column1。
其他查詢
select *
from table_name1
where column1 like 'x%'
說明:like 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
select *
from table_name1
where column1 in ('***','yyy',..)
說明:in 後面接的是一個集合,表示column1 存在集合裡面。
select *
from table_name1
where column1 between xx and yy
說明:between 表示 column1 的值介於 xx 和 yy 之間。
3、更改資料:
update table_name
set column1='***'
where conditoins
說明:
1.更改某個欄位設定其值為'***'。
2.conditions 是所要符合的條件、若沒有 where 則整個 table 的那個欄位都會全部被更改。
4、刪除資料:
delete from table_name
where conditions
說明:刪除符合條件的資料。
說明:關於where條件後面如果包含有日期的比較,不同資料庫有不同的表達式。具體如下:
(1)如果是access資料庫,則為:where mydate>#2000-01-01#
(2)如果是oracle資料庫,則為:where mydate>cast('2000-01-01' as date)
或:where mydate>to_date('2000-01-01','yyyy-mm-dd')
在delphi中寫成:
thedate='2000-01-01';
query1.sql.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');
如果比較日期時間型,則為:
where mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')
4、增加資料:
insert into table_name (column1,column2,...)
values ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
insert into table_name (column1,column2,...)
select columnx,columny,... from another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
⑷ 高手詳解SQL性能優化十條經驗
查詢的模糊匹配
盡量避免在一個復雜查詢裡面使用 LIKE %parm % —— 紅色標識位置的百分號會導致相關列的索引無法使用 最好不要用
解決辦法:
其實只需要對該腳本略做改進 查詢速度便會提高近百倍 改進方法如下
a 修改前台程序——把查詢條件的供應商名稱一欄由原來的文本輸入改為下拉列表 用戶模糊輸入供拿禪旁應商名稱時 直接在前台就幫忙定位到具體的供應商 這樣在調用後台程序時 這列就可以直接用等於來關聯了
b 直接修改後台——根據輸入條件 先查出符合條件的供應商 並把相關記錄保存在一個臨時表裡頭 然後再用臨時表去做復雜關聯
索引問題
在做性能跟蹤分析過程中 經常發現有不少後台程序的性能問題是因為缺少合適索引造成的 有些表甚至一個索引都沒有 這種情況往往都是因為在設計表時 沒去定義索引 而開發初期 由於表記錄很少 索引創建與否 可能對性能沒啥影響 開發人員因此也未多加重視 然一旦程序發布到生產環境 隨著時間的推移 表記錄越來越多
這時缺少索引 對性能的影響便會越來越大了
這個問題需要資料庫設計人員和開發人員共消橡同關注
法則 不要在建立的索引的數據列上進行下列操作:
◆避免對索引欄位進行計算操作◆避免在索引欄位上使用not <> !=◆避免在索引列上使用IS NULL和IS NOT NULL ◆避免在索引列上出現數據類型轉換◆避免在索引欄位上使用函數 ◆避免建立索引的列中使用空值
復雜操作
部分UPDATE SELECT 語句 寫得很復雜(經常嵌套多級子查詢)——可以考慮適當拆成幾步 先生成一些臨時數據表 再進行關聯操作
update
同一個表的修改在一個過程里出現好幾十次 如
update table set col = where col = ;update table set col = where col =象這類腳本其實可以很簡單就整合在一個UPDATE語句來完成(前些時候在協助xxx項目做性能問題分析時就發現存在這種情況)
在可以使用UNION ALL的語句里 使用了UNION
UNION 因為會將各查詢子集的記錄做比較 故比起UNION ALL 通常速度都會慢上許多 一般來說 如果使用UNION ALL能滿足要求的話 務必使用UNION ALL 還有一種情況大家可能會忽略掉 就是雖然要求幾個子集的並集需要過濾掉重復記錄 但由於腳本的特殊性 不可能存在重復記錄 這時便應該使用UNION ALL 如xx模塊的某個查詢程序就曾經存在這種情況 見 由於語句的特殊性 在這個腳本中幾個子集的記錄絕對不可能重復 故可以改用UNION ALL)
在WHERE 語句中 盡量避免對索引欄位進行計算操作
這個常識相信絕大部分開發人員都應該知道 但仍有不少人這么使用 我想其中一個最主要的原因可能是為了編寫寫簡單而損害了性能 那就不可取了
月份在對XX系統做性能分析時發現 有大量的後台程序存在類似用法 如
where trunc(create_date)=trunc(:date )雖然已對create_date 欄位建了索引 但由於加了TRUNC 使得索引無法用上 此處正確的寫法應該是
where create_date>=trunc(:date ) and create_date或者是
where create_date beeen trunc(:date ) and trunc(:date )+ /( * * )注意 因beeen 的范圍是個閉區間(greater than or equal to low value and less than or equal to high value ) 故嚴格意義上應該再減去一個趨於 的小數 這里暫且設置成減去 秒( /( * * )) 如果不要求這么精確的話 可以襲凳略掉這步
對Where 語句的法則
避免在WHERE子句中使用in not in or 或者having
可以使用 exist 和not exist代替 in和not in
可以使用表鏈接代替 exist Having可以用where代替 如果無法代替可以分兩步處理
例子
SELECT * FROM ORDERS WHERE CUSTOMER_NAME NOT IN (SELECT CUSTOMER_NAME FROM CUSTOMER) 優化 SELECT * FROM ORDERS WHERE CUSTOMER_NAME not exist (SELECT CUSTOMER_NAME FROM CUSTOMER)不要以字元格式聲明數字 要以數字格式聲明字元值 (日期同樣)否則會使索引無效 產生全表掃描 例子使用 SELECT emp ename emp job FROM emp WHERE emp empno = ;不要使用 SELECT emp ename emp job FROM emp WHERE emp empno =
對Select語句的法則
在應用程序 包和過程中限制使用select * from table這種方式 看下面例子
使用SELECT empno ename category FROM emp WHERE empno = 而不要使用SELECT * FROM emp WHERE empno =
排序
避免使用耗費資源的操作 帶有DISTINCT UNION MINUS INTERSECT ORDER BY的SQL語句會啟動SQL引擎 執行 耗費資源的排序(SORT)功能 DISTINCT需要一次排序操作 而其他的至少需要執行兩次排序
臨時表
lishixin/Article/program/SQL/201311/16379
⑸ SQL 語法整合
只用SQL語句是沒法解決這個問題的
編個小程序解決這個問題還是不難的
先按料號脊羨排序取得BOM表所有記錄
弄一個表格控制項一條一條往裡填充
填充時檢測料號若和前一個相同
就只加代碼逗野嘩到前一山行個代碼格並用逗號隔開
⑹ SQL資料庫數據整合
提供思路供你參考,主要有這么幾步:
1.建立一個新的數據,還原資料庫。
2.選擇現在的資料庫,進行導入,導入中有一個選項,可以選擇在已有的記錄上追加,看了界面即可會操作。
注意:在做這些操作之前,先備份現有的資料庫,以防數據丟失。希望對你有所幫助吧。
⑺ 請告訴我SQL的語法是怎樣的最好可以舉例說明哦~~~~~
DB2 提供了關連式資料庫的查詢語言 SQL (Structured Query Language),是一種非常口語化、既易學又易懂的語法。此一語言幾乎是每個資料庫系統都必須提供的,用以表示關連式的操作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來拼成SEQUEL,這語言的原型以「系統 R「的名字在 IBM 聖荷西實驗室完成,經過IBM內部及其他的許多使用性及效率測試,其結果相當令人滿意,並決定在系統R 的技術基礎發展出來 IBM 的產品。而且美國國家標准學會(ANSI)及國際標准化組織(ISO)在1987遵循一個幾乎是以 IBM SQL 為基礎的標准關連式資料語言定義。
一、資料定義 DDL(Data Definition Language)
資料定語言是指對資料的格式和形態下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資料分哪些表格關系、表格內的有什麽欄位主鍵、表格和表格之間互相參考的關系等等,都是在開始的時候所必須規劃好的。
1、建表格:
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...)
說明:
DATATYPE --是資料的格式,詳見表。
NUT NULL --可不可以允許資料有空的(尚未有資料填入)。
PRIMARY KEY --是本表的主鍵。
2、更改表格
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
說明:增加一個欄位(沒有刪除某個欄位的語法。
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
說明:更改表得的定義把某個欄位設為主鍵。
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
說明:把主鍵的定義刪除。
3、建立索引
CREATE INDEX index_name ON table_name (column_name)
說明:對某個表格的欄位建立索引以增加查詢時的速度。
4、刪除
DROP table_name
DROP index_name
二、的資料形態 DATATYPEs
smallint
16 位元的整數。
interger
32 位元的整數。
decimal(p,s)
p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
float
32位元的實數。
double
64位元的實數。
char(n)
n 長度的字串,n不能超過 254。
varchar(n)
長度不固定且其最大長度為 n 的字串,n不能超過 4000。
graphic(n)
和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
了支援兩個字元長度的字體,例如中文字。
vargraphic(n)
可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
date
包含了 年份、月份、日期。
time
包含了 小時、分鍾、秒。
timestamp
包含了 年、月、日、時、分、秒、千分之一秒。
三、資料操作 DML (Data Manipulation Language)
資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:
1、增加資料:
INSERT INTO table_name (column1,column2,...)
VALUES ( value1,value2, ...)
說明:
1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
2.欄位的資料形態和所填入的資料必須吻合。
3.table_name 也可以是景觀 view_name。
INSERT INTO table_name (column1,column2,...)
SELECT columnx,columny,... FROM another_table
說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。
2、查詢資料:
基本查詢
SELECT column1,columns2,...
FROM table_name
說明:把table_name 的特定欄位資料全部列出來
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]
說明:
1.'*'表示全部的欄位都列出來。
2.WHERE 之後是接條件式,把符合條件的資料列出來。
SELECT column1,column2
FROM table_name
ORDER BY column2 [DESC]
說明:ORDER BY 是指定以某個欄位做排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大
排列
組合查詢
組合查詢是指所查詢得資料來源並不只有單一的表格,而是聯合一個以上的
表格才能夠得到結果的。
SELECT *
FROM table1,table2
WHERE table1.colum1=table2.column1
說明:
1.查詢兩個表格中其中 column1 值相同的資料。
2.當然兩個表格相互比較的欄位,其資料形態必須相同。
3.一個復雜的查詢其動用到的表格可能會很多個。
整合性的查詢:
SELECT COUNT (*)
FROM table_name
WHERE column_name = xxx
說明:
查詢符合條件的資料共有幾筆。
SELECT SUM(column1)
FROM table_name
說明:
1.計算出總和,所選的欄位必須是可數的數字形態。
2.除此以外還有 AVG() 是計算平均、MAX()、MIN()計算最大最小值的整合性查詢。
SELECT column1,AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) > xxx
說明:
1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢的關鍵字
一起使用。
2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。
復合性的查詢
SELECT *
FROM table_name1
WHERE EXISTS (
SELECT *
FROM table_name2
WHERE conditions )
說明:
1.WHERE 的 conditions 可以是另外一個的 query。
2.EXISTS 在此是指存在與否。
SELECT *
FROM table_name1
WHERE column1 IN (
SELECT column1
FROM table_name2
WHERE conditions )
說明:
1. IN 後面接的是一個集合,表示column1 存在集合裡面。
2. SELECT 出來的資料形態必須符合 column1。
其他查詢
SELECT *
FROM table_name1
WHERE column1 LIKE 'x%'
說明:LIKE 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
SELECT *
FROM table_name1
WHERE column1 IN ('xxx','yyy',..)
說明:IN 後面接的是一個集合,表示column1 存在集合裡面。
SELECT *
FROM table_name1
WHERE column1 BETWEEN xx AND yy
說明:BETWEEN 表示 column1 的值介於 xx 和 yy 之間。
3、更改資料:
UPDATE table_name
SET column1='xxx'
WHERE conditoins
說明:
1.更改某個欄位設定其值為'xxx'。
2.conditions 是所要符合的條件、若沒有 WHERE 則整個 table 的那個欄位都會全部被更改。
4、刪除資料:
DELETE FROM table_name
WHERE conditions
說明:刪除符合條件的資料。
說明:關於WHERE條件後面如果包含有日期的比較,不同資料庫有不同的表達式。具體如下:
(1)如果是ACCESS資料庫,則為:WHERE mydate>#2000-01-01#
(2)如果是ORACLE資料庫,則為:WHERE mydate>cast('2000-01-01' as date)
或:WHERE mydate>to_date('2000-01-01','yyyy-mm-dd')
在Delphi中寫成:
thedate='2000-01-01';
query1.SQL.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');
如果比較日期時間型,則為:
WHERE mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')
⑻ 什麼是資料庫 微軟的SQL又是什麼
1、資料庫(Database),簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據運行新增、截取、更新、刪除等操作。
所謂「資料庫」系以一定方式儲存在一起、能予多個用戶共享、具有盡可能小的冗餘度、與應用程序彼此獨立的數據集合。一個資料庫由多個表空間(Tablespace)構成。
2、SQL:結構化查詢語言(Structured Query Language)簡稱SQL(發音:/ˈes kjuː ˈel/ "S-Q-L"),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
(8)sql整合性制約是什麼意思擴展閱讀:
資料庫中的數據是為眾多用戶所 共享其信息而建立的,已經擺脫了具體 程序的限制和制約。不同的用戶可以按各自的用法使用資料庫中的數據;多個用戶可以同時共享資料庫中的數據資源,即不同的用戶可以同時存取資料庫中的同一個數據。數據共享性不僅滿足了各用戶對信息內容的要求,同時也滿足了各用戶之間信息通信的要求。
⑼ 資料庫問題 SQL Server 資料庫中有哪幾種約束各有什麼作用
如表:
學生信息表(學生學號,姓名,性別,系別號)
系別信息表(系別號,系別名)
1、實體完整性約束--就是常說的主鍵約束,用來區分兩條不同的記錄。
上面的學生編號建成主鍵後,通過它可以區分學生的記錄。
2、參照完整性--就是常說的外鍵約束,用來保證數據的整合性。
上面的 學生信息表 中的 系別號 就是一種情況,它必須在 系別信息表 中存在在可以,系別信息表 中的 系別號 就可以設置成 學生信息表 的外鍵。
3、域完整性約束--就是常說的check約束
上面的學生信息表中的 性別 欄位只能有 男或者女,這樣就可以建一個check約束,限制該欄位只能輸入 男或者女。
---
以上,希望對你有所幫助。