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

mycatsql添加中括弧

發布時間: 2023-07-08 22:12:53

『壹』 sql語法中::=是什麼

一.SELECT語句的完整語法為:
SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS
alias1][,[table.]field2[AS
alias2][,…]]}
FROM
tableexpression[,…
][IN
externaldatabase]
[WHERE…]
[GROUP
BY…]
[HAVING…]
[ORDER
BY…]
[WITH
OWNERACCESS
OPTION]
說明:
用中括弧([])括起來的部分表示是可選的,用大括弧({})括起來的部分是表示必須從中選擇其中的一個。
一.
1
FROM子句
FROM子句指定了SELECT語句中欄位的來源。FROM子句後面是包含一個或多個的表達式(由逗號分開),其中的表達式可為單一表名稱、已保存的查詢或由
INNER
JOIN、LEFT
JOIN

RIGHT
JOIN
得到的復合結果。如果表或查詢存儲在外部資料庫,在IN
子句之後指明其完整路徑。
例:下列SQL語句返回所有有定單的客戶:
SELECT
OrderID,Customer.customerID
FROM
Orders
Customers
WHERE
Orders.CustomerID=Customers.CustomeersID
一.2
ALL、DISTINCT、DISTINCTROW、TOP謂詞
(1)
ALL
返回滿足SQL語句條件的所有記錄。如果沒有指明這個謂詞,默認為ALL。
例:SELECT
ALL
FirstName,LastName
FROM
Employees
(2)
DISTINCT
如果有多個記錄的選擇欄位的數據相同,只返回一個。
(3)
DISTINCTROW
如果有重復的記錄,只返回一個
(4)
TOP顯示查詢頭尾若干記錄。也可返回記錄的百分比,這是要用
TOP
N
PERCENT子句(其中N
表示百分比)
例:返回5%定貨額最大的定單
SELECT
TOP
5
PERCENT*
FROM
[
Order
Details]
ORDER
BY
UnitPrice*Quantity*(1-Discount)
DESC
一.3

AS
子句為欄位取別名
如果想為返回的列取一個新的標題,或者,經過對欄位的計算或總結之後,產生了一個新的值,希望把它放到一個新的列里顯示,則用AS保留。
例:返回FirstName欄位取別名為NickName
SELECT
FirstName
AS
NickName
,LastName
,City
FROM
Employees
例:返回新的一列顯示庫存價值
SELECT
ProctName
,UnitPrice
,UnitsInStock
,UnitPrice*UnitsInStock
AS
valueInStock
FROM
Procts

.WHERE
子句指定查詢條件

.
1比較運算符
比較運算符
含義
=
等於
>
大於
=
大於等於
不等於
!>
不大於
!#1/1/96#
AND
OrderDate#96-1-1#
也可以表示為:
WHERE
OrderDate>Datevalue(『1/1/96』)
使用
NOT
表達式求反。
例:查看96年1月1日以後的定單
WHERE
Not
OrderDateQuantity
另一種方法是用
Microsof
JET
SQL
獨有的
JNNER
JOIN
語法:
FROM
table1
INNER
JOIN
table2
ON
table1.field1
comparision
table2.field2
其中comparision
就是前面WHERE子句用到的比較運算符。
SELECT
FirstName,lastName,OrderID,CustomerID,OrderDate
FROM
Employees
INNER
JOIN
Orders
ON
Employees.EmployeeID=Orders.EmployeeID
注意:
INNER
JOIN不能連接Memo
OLE
Object
Single
Double
數據類型欄位。
在一個JOIN語句中連接多個ON子句
語法:
SELECT
fields
FROM
table1
INNER
JOIN
table2
ON
table1.field1
compopr
table2.field1
AND
ON
table1.field2
compopr
table2.field2
OR
ON
table1.field3
compopr
table2.field3
也可以
SELECT
fields
FROM
table1
INNER
JOIN
(table2
INNER
JOIN
[(
]table3
[INNER
JOER]
[(
]tablex[INNER
JOIN]
ON
table1.field1
compopr
table2.field1
ON
table1.field2
compopr
table2.field2
ON
table1.field3
compopr
table2.field3
外部連接返回更多記錄,在結果中保留不匹配的記錄,不管存不存在滿足條件的記錄都要返回另一側的所有記錄。
FROM
table
[LEFT|RIGHT]JOIN
table2
ON
table1.field1comparision
table.field2
用左連接來建立外部連接,在表達式的左邊的表會顯示其所有的數據
例:不管有沒有定貨量,返回所有商品
SELECT
ProctName
,OrderID
FROM
Procts
LEFT
JOIN
Orders
ON
Procts.PrctsID=Orders.ProctID
右連接與左連接的差別在於:不管左側表裡有沒有匹配的記錄,它都從左側表中返回所有記錄。
例:如果想了解客戶的信息,並統計各個地區的客戶分布,這時可以用一個右連接,即使某個地區沒有客戶,也要返回客戶信息。
空值不會相互匹配,可以通過外連接才能測試被連接的某個表的欄位是否有空值。
SELECT
*
FROM
talbe1
LEFT
JOIN
table2
ON
table1.a=table2.c

.1
連接查詢中使用Iif函數實現以0值顯示空值
Iif表達式:
Iif(IsNull(Amount,0,Amout)
例:無論定貨大於或小於¥50,都要返回一個標志。
Iif([Amount]>50,?Big
order?,?Small
order?)

分組和總結查詢結果
在SQL的語法里,GROUP
BY和HAVING子句用來對數據進行匯總。GROUP
BY子句指明了按照哪幾個欄位來分組,而將記錄分組後,用HAVING子句過濾這些記錄。
GROUP
BY
子句的語法
SELECT
fidldlist
FROM
table
WHERE
criteria
[GROUP
BY
groupfieldlist
[HAVING
groupcriteria]]
註:Microsoft
Jet資料庫
Jet
不能對備注或OLE對象欄位分組。
GROUP
BY欄位中的Null值以備分組但是不能被省略。
在任何SQL合計函數中不計算Null值。
GROUP
BY子句後最多可以帶有十個欄位,排序優先順序按從左到右的順序排列。
例:在『WA』地區的雇員表中按頭銜分組後,找出具有同等頭銜的雇員數目大於1人的所有頭銜。
SELECT
Title
,Count(Title)
as
Total
FROM
Employees
WHERE
Region
=
『WA』
GROUP
BY
Title
HAVING
Count(Title)>1
JET
SQL
中的聚積函數
聚集函數
意義
SUM
(
)
求和
AVG
(
)
平均值
COUNT
(
)
表達式中記錄的數目
COUNT
(*
)
計算記錄的數目
MAX
最大值
MIN
最小值
VAR
方差
STDEV
標准誤差
FIRST
第一個值
LAST
最後一個值

用Parameters聲明創建參數查詢
Parameters聲明的語法:
PARAMETERS
name
datatype[,name
datatype[,
…]]
其中name
是參數的標志符,可以通過標志符引用參數.
Datatype說明參數的數據類型.
使用時要把PARAMETERS
聲明置於任何其他語句之前.
例:
PARAMETERS[Low
price]
Currency,[Beginning
date]datatime
SELECT
OrderID
,OrderAmount
FROM
Orders
WHERE
OrderAMount>[low
price]
AND
OrderDate>=[Beginning
date]

功能查詢
所謂功能查詢,實際上是一種操作查詢,它可以對資料庫進行快速高效的操作.它以選擇查詢為目的,挑選出符合條件的數據,再對數據進行批處理.功能查詢包括更新查詢,刪除查詢,添加查詢,和生成表查詢.

.1
更新查詢
UPDATE子句可以同時更改一個或多個表中的數據.它也可以同時更改多個欄位的值.
更新查詢語法:
UPDATE
表名
SET
新值
WHERE
准則
例:英國客戶的定貨量增加5%,貨運量增加3%
UPDATE
OEDERS
SET
OrderAmount
=
OrderAmount
*1.1
Freight
=
Freight*1.03
WHERE
ShipCountry
=
『UK』

.2
刪除查詢
DELETE子句可以使用戶刪除大量的過時的或冗於的數據.
注:刪除查詢的對象是整個記錄.
DELETE子句的語法:
DELETE
[表名.*]
FROM
來源表
WHERE
准則
例:
要刪除所有94年前的定單
DELETE
*
FROM
Orders
WHERE
OrderData,,=)一起使用.返回一個布爾值True或False.ANY的意思是,表達式與子查詢返回的一系列的值逐一比較,只要其中的一次比較產生True結果,ANY測試的返回
True值(既WHERE子句的結果),對應於該表達式的當前記錄將進入主查詢的結果中.ALL測試則要求表達式與子查詢返回的一系列的值的比較都產生True結果,才回返回True值.
例:主查詢返回單價比任何一個折扣大於等於25%的產品的單價要高的所有產品
SELECT
*
FROM
Procts
WHERE
UnitPrice>ANY
(SELECT
UnitPrice
FROM[Order
Details]
WHERE
Discount>0.25)

.2檢查表達式的值是否匹配子查詢返回的一組值的某個值
語法:
[NOT]IN(子查詢)
例:返回庫存價值大於等於1000的產品.
SELECT
ProctName
FROM
Procts
WHERE
ProctID
IN
(SELECT
PrdoctID
FROM
[Order
DEtails]
WHERE
UnitPrice*Quantity>=
1000)

.2檢測子查詢是否返回任何記錄
語法:
[NOT]EXISTS
(子查詢)
例:用EXISTS檢索英國的客戶
SELECT
ComPanyName,ContactName
FROM
Orders
WHERE
EXISTS
(SELECT
*
FROM
Customers
WHERE
Country
=
『UK』
AND
Customers.CustomerID=
Orders.CustomerID)

『貳』 sql insert語句中如何使用變數

sql insert語句中使用變數:

(insert)向表中添加一個新記錄,要使用SQL INSERT 語句。這里有一個如何使用這種語句的例子: INSERT mytable (mycolumn) VALUES (『some data') 這個語句把字元串'some data'插入表mytable的mycolumn欄位中。將要被插入數據的欄位的名字在第一個括弧中指定,實際的數據在第二個括弧中給出。

  1. INSERT 語句的完整句法如下:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |

    Values_list | select_statement}

  2. 如果一個表有多個欄位,通過把欄位名和欄位值用逗號隔開,可以向所有的欄位中插入數據。假設表mytable有三個欄位first_column,second_column,和third_column.下面的INSERT語句添加了一條三個欄位都有值的完整記錄:INSERT mytable (first_column,second_column,third_column)

    VALUES (『some data','some more data','yet more data')

  3. 可以使用INSERT語句向文本型欄位中插入數據。但是,如果需要輸入很長的字元串,應該使用WRITETEXT語句。

  4. 如果在INSERT 語句中只指定兩個欄位和數據。向一個表中插入一條新記錄,但有一個欄位沒有提供數據。在這種情況下,有下面的四種可能:

    1)如果該欄位有一個預設值,該值會被使用。例如,假設插入新記錄時沒有給欄位third_column提供數據,而這個欄位有一個預設值'some value'.在這種情況下,當新記錄建立時會插入值'some value'。

    2)如果該欄位可以接受空值,而且沒有預設值,則會被插入空值。

    3)如果該欄位不能接受空值,而且沒有預設值,就會出現錯誤。會收到錯誤信息:The column in table mytable may not be null.

    4)最後,如果該欄位是一個標識欄位,那麼它會自動產生一個新值。當向一個有標識欄位的表中插入新記錄時,只要忽略該欄位,標識欄位會給自己賦一個新值。

  5. 註:向一個有標識欄位的表中插入新記錄後,可以用SQL變數@@identity來訪問新記錄 的標識欄位的值。考慮如下的SQL語句:

    INSERT mytable (first_column) VALUES(『some value')

    INSERT anothertable(another_first,another_second)

    VALUES(@@identity,'some value')

  6. 如果表mytable有一個標識欄位,該欄位的值會被插入表anothertable的another_first欄位。這是因為變數@@identity總是保存最後一次插入標識欄位的值。

  7. 欄位another_first應該與欄位first_column有相同的數據類型。但是,欄位another_first不能是應該標識欄位。Another_first欄位用來保存欄位first_column的值。

『叄』 sql 如何在查詢的數據中加%號

題主的意思緩州應該是在查詢結果為int型數據後面,加上%號,比如查詢及格率的時候。

提供一種方模哪啟法,可以用cast函數將int型數據轉換為varchar型,然後再加上%就OK了。

模板是:cast(int型數據 as varchar)+ '%'旦如

舉個例子:

比如我想查詢資料庫的及格率(按照百分比輸出):

CAST(round(100*sum(case when c.cname='資料庫' and s.score>=60 then 1 else 0 end)/SUM(case when c.cname='資料庫' then 1 else 0 end),0) as varchar) +'%' as 及格率

『肆』 請問在SQL語句中,實現選課表中的課程號與課程表中的課程號建立關聯,這樣建立對嗎

CREATE TABLE 課程
(
課程號 CHAR(5) NOT NULL CONSTRAINT 選課_Fore FOREIGN KEY REFERENCES 選課 (課程號信指)
)
CREATE TABLE 後面的笑坦散括弧是必須的,加上就行了。建立的方法是碰氏正確的

『伍』 SQL語句中修改表結構的命令是什麼

SQL中修改表結構一般用alter關鍵字,修改表結構的命令如下:

拓展資料:

SQL即結構化查詢語言(Structured Query Language),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。SQL語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的。