1.對查詢結果進行排序
查詢stu_info表中所有學生資訊,並按照成績由高到底進行排序,輸入語句如下。
SELECT * FROM stu_info ORDER BY s_score DESC; --asc是指定列按升序排列,desc則是指定列按降序排列。
2.資料控制語句【授權、禁止和收回】
(1)授權許可權操作
對名稱為guest的使用者進行授權,允許其對stu_info資料表執行更新和刪除的操作許可權,輸入語句如下。
GRANT UPDATE,DELETE ON stu_info --UPDATE和DALETE為允許被授予的操作許可權
TO guest WITH GRANT OPTION
(2)拒絕許可權操作
禁止guest使用者對stu_info表的操作更新許可權,輸入語句如下。
DENY UPDATE ON stu_info TO guest CASCADE; --CASCADE這裡記住就行了,說什麼和級聯有關係,算是固定語法吧。
(3)收回許可權操作
收回guest使用者對stu_info表的刪除許可權,輸入語句如下。
REVOKE DELETE ON stu_info FROM guest;
3.BEGIN...END語句【與選擇語句IF...ELSE和迴圈語句WHILE搭配使用】
定義佈局變數@count,如果@count值小於10,執行WHILE迴圈操作中的語句塊,輸入語句如下。
DECLARE @count INT;
SELECT @count=0;
WHILE @count < 10
BEGIN
PRINT 'count=' + CONVERT(VARCHAR(8),@count) --CONVERT用來把INT型別轉化成浮動字元型VARCHAR
SELECT @count=@count+1
END
PRINT 'loop over count = ' + CONVERT(VARCHAR(8),@count);
4.IF...ELSE語句
DECLARE @age INT;
SELECT @age=40
IF @age<30
PRINT 'This is a young man!'
ELSE
PRINT 'This is an old man!'
5.CASE語句(簡記:CASE/WHEN/THEN/END)【儘可能全部採用CASE語句,非常清晰】
使用CASE語句根據學生姓名判斷個個學生在班級的職位,輸入語句如下。
USE test_db
SELECT s_id,s_name,
CASE s_name
WHEN 'Jack' THEN 'BOSS'
WHEN 'Rose' THEN 'BEAUTY'
WHEN 'Osmond' THEN 'MILIINIARE'
ELSE 'NO' --除上面這三個人名之外,其他人全部的職位都是無。如果需要這樣設計的話,CASE很好,如果不需要這樣設計的話,可以不加ELSE。
END
AS 'JOB'
FROM stu_info
6.使用CASE語句對考試成績進行評定,輸入語句如下。
SELECT s_id,s_name,s_score
CASE
WHEN s_score >90 THEN 'perfect'
WHEN s_score >80 THEN 'good'
WHEN s_score >70 THEN 'ok'
WHEN s_score >60 THEN 'just soso'
END
AS '評價'
FROM stu_info
7.GOTO【用來跳轉】
USE test_db;
BEGIN
SELECT s_name FROM stu_info;
GOTO jump
SELECT s_score FROM stu_info;
jump:
PRINT '第二條SELECT語句沒有執行’;
END
8.WAITFOR語句
10s的延遲後執行PRINT語句,輸入語句如下。
DECLARE @name VARCHAR(50);
SET @name='admin';
BEGIN
WAITFOR DELAY '00:00:10';
PRINT @name;
END;
9.RETURN【無條件退出】
10.ASCII()函式
檢視指定字元的ASCII值,輸入語句如下。
SELECT ASCII('s');
11.CHAR()函式
檢視ASCII值115和49對應的字元,輸入語句如下。
SELECT CHAR(115),CHAR(49);
12.LEFT()函式
使用LEFT函式返回字串中左邊的字元,輸入語句如下。
SELECT LEFT('football',4); 》》》》》》foot
13.RIGHT()函式
使用RIGHT函式返回字串中右邊的字元,輸入語句如下。
SELECT RIGHT('football',4); 》》》》》》ball
14.LTRIM()函式
使用LTRIM函式刪除字串左邊的空格,輸入語句如下。
SELECT LTRIM(' book ');
15.RTRIM()函式(和上面對應)
16.STR()函式
使用STR函式將數字資料轉換為字元資料,輸入語句如下。
SELECT STR(3141.59,6,1),STR(123.45,5,7);
17.字串逆序的函式REVERSE(s)
使用REVERSE函式反轉字串,輸入語句如下。
SELECT REVERSE('abc');
18.LEN(str)函式
SELECT LEN('no'),LEN('日期'),LEN(12345);
19.查詢A在資料中的位置(高階查詢)
使用CHARINDEX函式查詢字串中指定子字串的開始位置,輸入語句如下。
SELECT CHARINDEX('a','banana'),CHARINDEX('na','banana',4);
20.範圍內取內容
使用SUBSTRING函式獲取指定位置處的子字串,輸入語句如下。
SELECT
SUBSTRING('breakfast'1,5),SUBSTRING('breakfast',LEN('breakfast')/2,LEN(‘breakfast’));
>>>>>>>>break akfast