sql更新資料庫語句
UPDATE語句用於更新修改指定記錄的數據,其用法為:
UPDATE tbl_name SET col_name1=value1, col_name2=value2, … WHERE conditions
對符合條件的記錄,更新修改指定欄位的值。若沒有WHERE條件限定,則對所有記錄進行更新修改。例如:
圖 4.23 更新記錄
⑵ SQL資料庫語句
/*--------------------------------------------------
--SQL Server 2012 & T-SQL Lesson 3 - BasicQueries
----------------------------------------------------*/
--Topic 1
SELECT <table fields list>
FROM <table names list>
WHERE <row constraints specification>
GROUP BY <grouping specification>
HAVING <grouping selection specification>
ORDER BY <order rules specification>
--Topic 2
use [AdventureWorks2012]
go
select Top 100 * from [Proction].[Proct]
SELECT *
FROM SALES.SALESORDERDETAIL
--Topic 3
select * from [Proction].[Proct]
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by listprice desc --desc=descending order ; asc=ascending order
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by listprice desc,Name
select ProctID, Name, ProctNumber, Color, Size, ListPrice
from Proction.Proct
order by 2
--Topic 4
select ProctID, Name, ProctNumber, isnull(Color,''), isnull(Size,''), ListPrice
from Proction.Proct
--Topic 5
select ProctID, Name, ProctNumber,
isnull(Color,'') as Color, isnull(Size,'') as Size123, --using an alias
ListPrice
from Proction.Proct
select ProctID, Name as ProctName, --using an alias
'The list price for ' + ProctNumber + ' is $ ' + convert(varchar,ListPrice) +'.' ,--using the concatenation to join character end-to-end.
'The list price for ' + ProctNumber + ' is $ ' + convert(varchar,ListPrice) +'.' as [Description] --using brackets to let SQL server conside the strin as a column name
from Proction.Proct
--Topic 6
select BusinessEntityID,rate from [HumanResources].[EmployeePayHistory]
select BusinessEntityID
,rate*40*52 as AnnualSalary
,round(rate*40*52,1) as AnnualSalary
,round(rate*40*52,0) as AnnualSalary
from [HumanResources].[EmployeePayHistory]
select BusinessEntityID
,(rate+5)*40*52 as AnnualSalary
from [HumanResources].[EmployeePayHistory]
--Topic 7
select * from [Sales].[SalesOrderHeader]
select * from [Sales].[SalesOrderHeader]
where SalesPersonID=275
select * from [Sales].[SalesOrderHeader]
where SalesOrderNumber='so43670'
select * from [Sales].[SalesOrderHeader]
where TotalDue>5000
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 --Comparison conditions: =,>,<,>=,<=,<>
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 and Orderdate between '2005-08-01' and '1/1/2006'
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 and Orderdate >= '2005-08-01' and Orderdate < '1/1/2006'
select * from [Proction].[Proct]
where name ='Mountain-100 Silver, 38'
--Topic 8
select * from [Proction].[Proct]
where name like'Mountain'
select * from [Proction].[Proct]
where name like'%Mountain%' --Wildcard % matches any zero or more characters
select * from [Proction].[Proct]
where name like'mountain%' -- "_" matches any single character
select * from [Proction].[Proct]
where name like'_ountain%'
--Topic 9
select * from [Proction].[Proct]
where color in ('red','white','black')
select * from [Proction].[Proct]
where size in ('60','61','62')
select * from [Proction].[Proct]
where class not in ('H') -- same as using: <> 'H'
--Topic 10
select * from [Proction].[Proct]
where size is null
select * from [Proction].[Proct]
where size is not null
--Topic 11
select * from [Proction].[Proct]
where color ='white'or color ='black'
select * from [Proction].[Proct]
where color ='white'and color ='black'
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales
from [Sales].[SalesOrderHeader]
where (SalesPersonID=275 or SalesPersonID=278) and TotalDue>5000
--Topic 12
select count(SalesPersonID)
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select distinct(SalesPersonID)
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select count(distinct(SalesPersonID))
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
--Topic 13
select
Avg(TotalDue) as AverageTotalSales --aggregate functions
from [Sales].[SalesOrderHeader]
select
Avg(TotalDue) as AverageTotalSales
,Min(TotalDue) as MinimumTotalSales
,Max(TotalDue) as MaximumTotalSales
,Sum(TotalDue) as SummaryTotalSales
from [Sales].[SalesOrderHeader]
select SalesPersonID,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
--Error Message: Column 'Sales.SalesOrderHeader.SalesPersonID' is invalid in the select list
--because it is not contained in either an aggregate function or the GROUP BY clause.
select SalesPersonID,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID
order by SalesPersonID
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID,OrderDate --Remember to put all un-aggregated columns after "group by"!!!
order by SalesPersonID
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID,OrderDate
having Max(TotalDue)>150000
order by SalesPersonID
----The classical T-SQL query!!!
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null and OrderDate >='2007/1/1'
group by SalesPersonID,OrderDate
having Max(TotalDue)>150000
order by OrderDate desc
⑶ sql資料庫一些簡單語句
給你幾個最簡單的案例吧
1、查詢所有
:
select
*
from
表名
2、條件查詢:
select
*
from
表名
where
欄位=條件
3、插入數據更新表
:
insert
into
表(欄位1、欄位2、欄位3...)
values(值1、值2、值3...)
4、更新原有數據:
update
表
set
(欄位1=值1、欄位2=值2...)
where
欄位=條件
⑷ sql創建資料庫語句
創建資料庫的SQL語句:
create database stuDB
on primary -- 默認就屬於primary文件組,可省略
(
/*--數據文件的具體描述--*/
name='stuDB_data', -- 主數據文件的邏輯名稱
filename='D:\stuDB_data.mdf', -- 主數據文件的物理名稱
size=5mb, --主數據文件的初始大小
maxsize=100mb, -- 主數據文件增長的最大值
filegrowth=15%--主數據文件的增長率
)
log on
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='stuDB_log',
filename='D:\stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)
創建表和刪除表的SQL語句如下:
use StuDB
go
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks
(
ExamNo int identity(1,1) primary key,
stuNo char(6) not null,
writtenExam int not null,
LabExam int not null
)
go
-- 其中,列屬性"identity(起始值,遞增量)" 表示"ExamNo"列為自動編號, 也稱為標識列
alter table 表名
add constraint 約束名 約束類型 具體的約束說明
alter table 表名
drop constraint 約束名
alter table stuMarks
add constraint UQ_stuNo Unique(stuNo)
alter table stuMarks
drop constraint UQ_stuNo
/*--添加SQL登錄賬戶--*/
exec sp_addlogin 'xie', '123456' -- 賬戶名為xie,密碼為123456
--刪除xie賬戶名
exec sp_droplogin 'xie'
/*--在stuDB資料庫中添加兩個用戶(必須存在)--*/
use stuDB
go
exec sp_grantdbaccess 'xie','123456'
go
-- 提示:SQL Server 中的dbo用戶是具有在資料庫中執行所有活動許可權的用戶,表示資料庫的所有者(owner),一般來說,
-- 如果創建了某個資料庫,就是該資料庫的所有者,即dbo用戶,dbo用戶是一個比較特殊的資料庫用戶,無法刪除,且此用
-- 戶始終出現在每個資料庫中
/* --給資料庫用戶授權-- */
-- 授權的語法如下
-- grant 許可權 [on 表名] to 資料庫用戶
use stuDB
go
grant select,update,insert on stuMarks to xie
grant create table to xie
go
⑸ sql資料庫查詢語句
select gongsi as 單位,bumen as 部門,xingming as 姓名,xingbie as 性別,nianling as 年齡
from pxsgs
where gongsi='上海第二公司' and bumen='上瓷部' and xingming='李雷'
select gongsi as 單位,bumen as 部門,xingming as 姓名,xingbie as 性別,nianling as 年齡
from pxsgs
where gongsi='上海第二公司' and bumen='上瓷部' and xingming='張秋林'
⑹ SQL資料庫查詢語句!
select * from 6130 where 編號列 = '61000014'
這個其實是個很簡單的查詢。
原理是這樣的
select * from 表名 where 編號列 = '61000014'
⑺ 關於SQL資料庫的語句
發我郵箱[email protected]
9.檢索XK資料庫的COURSE表的課程信息,要求顯示報名人數與限選人數之比.
select *,WillNum/LimitNum as rate from Course
10. 檢索課程表中最小的報名人數、最大的報名人數以及平均報名人數.
select min(WillNum) as a,max(WillNum) as b,avg(WillNum) as c from Course
11.檢索課程信息(包括報名人數與限選人數之比),要求檢索結果按照報名人數升序排序.
select *,WillNum/LimitNum as rate from Course
order by WillNum
26.按課程分類統計平均報名人數.
select kind,avg(WillNum) as '平均數' from Course
group by Kind
27.檢索」信息技術」類課程的平均報名人數.
select avg(WillNum) as '平均數' from Course
where Kind='信息技術'
28.檢索平均報名人數大於25人的課程分類和類平均報名人數.
select Kind,avg(WillNum) from Course
group by Kind
having avg(WillNum)
⑻ sql資料庫語句
那個涉及到資料庫備份的知識,
在將某個表的數據插入到另一表之中,必須確保兩個表的結構完全一侄,然後直接一條sql語句搞定,
⑼ 資料庫SQL語句
以前在SQL 中寫SP 時,如比較復雜時,喜歡中間使用臨時表來暫存相關記錄,這樣的好處有很多,提高效率,提高程序的可讀性等。當然後臨時表的使用,一般均會使用用戶臨時表,即 #TempTable, 但有一些情況下,偶爾也會使用系統臨時表,即 ##TempTable。
兩種臨時表的的使用語法差不多,可用幾種方法來建立,可 Create ,也可 Select Into 。
當然關鍵的是系統臨時表和用戶臨時表的區別:(如下)
1)用戶臨時表:用戶臨時表的名稱以單個數字元號(#)開頭;
用戶臨時表只對創建這個表的用戶的Session可見,對其他進程是不可見的.
當創建它的進程消失時這個臨時表就自動刪除.
2)系統臨時表:系統臨時表的名稱以數字元號(##)開頭
全局臨時表對整個SQL Server實例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.
明白了這些就知道了他們的用途和限制,但有一些地方還是容易出問題,故在此專門列出。
1, 在使用 Exec(SQLScript) 執行Script 時,其間也相當於單獨有一個進程處理,故執行期間內如果創建用戶臨時表的話,在執行完成後也就結束了,即執行完成後,你不可以使用在 SQLScript 中生成的用戶臨時表,可以用系統臨時表代替。
2, 在使用用戶臨時表時,有一個問題要注意,就是最好在建立時指定其用戶為 dbo ,以避免可能的問題;
3, 在使用系統臨時表時,一定要考慮到,不可以將其用於多用戶使用的環境功能或系統中,否則就可能出現沖突的問題,導致結果不可預料。
如果在多用戶使用的環境中使用系統臨時表,則可能會出現多個用戶同時對同一系統臨時表進行處理,從而導致沖突和數據的錯誤。以前沒有注意這一點,我就因此而浪費過不少的時間。
有時需要使用Exec(SQLScript)方式產生數據,但其中只能使用系統臨時表,如何處理呢?
1, 可以預先定義好一個用戶臨時表,然後使用 Insert #TempTable Exec(SQLScript) 的方式,即可將Exec 產生的結果記錄加入用戶臨時表,從而避免使用系統臨時表;
2, 從根本上避免使用 Exec() ,可用其它方式代替。
Exec() 的使用是因為有一些 Script 比較復雜,其中需要一些組合字元,如 in ('','','') 或其它可能的情況,在此情況,無法直接使用一般的Script 產生記錄,只能先產生一個組合的Script ,然後用Exec 執行
⑽ sql資料庫 語句編寫
Student(SNum,SName,Sex,Birthday)
其中SNum表示學號,SName表示姓名,Sex表示性別,Birthday表示生日,主關鍵字為SNum。
Course(CNum,CName,Credit,CTime)
其中CNum表示課程號,CName表示課程名,Credit表示學分,CTime表示學時數,主關鍵字為CNum。
SC(SNum,CNum,Grade)
其中SNum表示學號,CNum表示課程號,Grade表示成績,主關鍵字為(SNum,CNum)。
SELECT A.CName,AVG(B.Grade) 平均成績 FROM Course A,SC B
WHERE A.CNum = B.CNum
GROUP BY A.CName