❶ 向數據表中插入記錄的T-sql語句是什麼
insert into 表(欄位1,欄位2,欄位3) values (內容1,內容2,內容3)
內容的位置,字元型要加單引號
或者要插入的數據來源於其他表
insert into 表A(欄位1,欄位2,欄位3) select 欄位1,欄位2,欄位3 from 表B
❷ 下列正確的 SQL語句是( )。
d
id必須插入,當不指定欄位時,必須插入所有欄位,所以ac錯誤。
欄位與插入值需一一對應,所以b錯誤
❸ 寫出完成下列要求的T-SQL語句
-創建學生表,學號為主鍵,性別默認值為『男』,學號和姓名要求非空。
use 學生選課
create table 學生表
(學號 char(10) PRIMARY KEY NOT NULL,
姓名 varchar(20) NOT NULL,
性別 char(2) DEFAULT '男',
專業 varchar(50),
籍貫 varchar(40),
出生日期 datetime);
--向選課表插入數據('20180102』,』1002』,89)
INSERT INTO 選課表
VALUES ('20180102','1002',89);
--修改學生表,將「陳明」的出生日期改為「1998-2-12」
UPDATE 學生表
SET 出生日期='1998-2-12'
WHERE 姓名='陳明';
--查詢選課成績不及格的學生的姓名、課程名和成績,按成績降序排序。
select 姓名,課程名,分數 as 成績
FROM 學生表 as a, 選課表 as b,課程表 as c
where a.學號=b.學號 AND b.課程號=c.課程號 AND
b.分數<60
ORDER BY 分數 DESC;
--查詢學生表,分別統計男女生人數。
select 性別,count(*) 人數
from 學生表
GROUP BY 性別;
--創建視圖「學生_view」,查詢輸出所有學生的姓名、性別、專業。
create view 學生_view
AS select 姓名,性別,專業
from 學生表;
--創建存儲過程「選課統計_proc」,查詢選課表,統計輸出每門課程的所選學生人數及最高分,並執行該存儲過程。
CREATE PROCEDURE 選課統計_proc
AS
BEGIN
SELECT 課程號,COUNT(學號) AS 所選學生人數,MAX(分數) AS 最高分
FROM 選課表
GROUP BY 課程號
END;
EXEC 選課統計_proc
❹ T-SQL的基本語法
一:insert語句
into 關鍵字是可選的
values關鍵字前面的()是可選的,這里是要接收數據的列
values後面,有兩種方式提供值
1:顯式的給出值 2:從select語句中導出值
insert語句注意幾點
1:不要理標志列,系統會給你插入的
2:給出實際的值,如果沒有,那就null
3:給出默認的值,default關鍵字,告訴資料庫取默認值
insert into ... select
什麼時候會這么用,當成批的數據來自
1:資料庫中的另一個表
2:同一台伺服器完全不同的資料庫
3:另一個SQLSERVER的資料庫
4:來自同一個表中的數據
說實在的2和3我從來沒用過
好,看一個例子
declare @mytable table
(
id int,
sortid int
);
insert into @mytable (id,sortid) select id,classid from proct;
select * from @mytable;
注意我定義了一個表的對象
每一句之間是用分號隔開的
(id,sortid) 是可以忽略的
二:update語句
看例子
update e set e.flag = 'm' from employee e join contact ce on e.id = ce.employeeid where ce.name = 'jo'
這里用到了join子句,當然是可以用的
如果修改不止一列 只要加一個逗號
set num = num * 1.2當然可以寫表達式
三:delete語句
delete from actors from actors a left join film f on a.filmid = f.filmid where f.filmid is null
outer連接將在沒有匹配的一端返回null,
這里也就是film表沒有匹配的行是null
注意 is null 的寫法
四: select語句
這里還是不說了,還是多說說子句吧
五:where子句
1:
= > < >= <= <> != !> !<
其中<> 與 !=都是不相等的意思
!>與!<不怎麼常見,但仔細想想也沒什麼用處
2:
and or not
如果一個where子句中同時出現這三個操作符
最先評估not 然後是and 然後是or
3:
between 例子 between 1 and 5 這個就不多說了
4:
like 例子:like "xland%"
%和_是通配符
%代表零個或多個任意字元
_表示單個任意字元
把字元包括在方括弧中
[a-c]表示a b c都可行
[ab]表示a或b
^與not表示下一個字元將被排除掉
5:
in 例子 in ( 1,2,3) 這個也不多說了
六:order by子句
order by由於比較常用 我這里就不多說了
1:order by username 是可以識別中文的(sql先把中文轉換成拼音再進行排序)
2:可以對 查詢到的表中的任何列 進行排序 無論該列是否包含在select列表中
3:基於多個列的order by
例如:order by addtime,id
先按時間排序,再在這個基礎上根據id排序,你也看到了,性能是有很大幅度的降低的
七:distinct關鍵字
select count(distinct column) from table
檢索某一列不重復的記錄數
八:group by 聚集函數 和 having子句
先看例子:
select orderid sum(orderMoney) from sales where orderid between 3 and 123 group by orderid
注意這里的orderid在表裡是有可能重復的
這個語句的作用是檢索出orderid從3到123的記錄,
然後在這個記錄集合上 以orderid分組
把orderid相同的數據分到一組 (這一組就是最終結果的一條記錄)
然後通過sum函數把各組的orderMoney數據相加,
結果是最終結果的第二個欄位
我發現用group by子句基本上都是和聚集函數一起用的
舉幾個聚集函數的例子
sum 求和
avg求平均數
min/max求最大和最小值
count(表達式|*)獲取一個查詢中的行數
只說說count吧:
count(coloum)如果這一列有null,那麼這些null的行將不會計算在內
count(*)將得到表裡的所有行的數目
聚集函數不一定非和group by一起使用不可
(另外avg基本上都是和group by一起使用的)
having子句是在組上放置條件的
看例子
select orderid sum(orderMoney) from sales where orderid between 3 and 123 group by orderid having sum(orderMoney)>5
group by得到了一個記錄的集合
然後通過having子句,再在這個集合上做篩選
❺ 如何用T-SQL判斷SQL語法是否正確
T-SQL是sqlserver的標准語法,一般在SQL Server Management Studio中執行T-SQL語句時,如果不正確,會直接報錯。
如以下代碼(求1到100累加的和):
DECLARE@iINT,@sumINTSET@i=1SET@sum=0WHILE@i<=100BEGINSET@sum=@sum+@iSET@i=@i+1ENDPRINT@sum
此代碼是正確的,最後的輸出結果如下:
❻ T-SQL語句的分為哪四類
根據其完成的具體功能,可以將T-SQL語句分為:數據定義語言、數據操縱語言、數據控制語言、事務管理語言。
1、數據定義語言用來定義和管理資料庫以及資料庫中的各種對象,這些對象的創建、修改和刪除等都可以通過使用CREATE、ALTER、DROP等語句來完成。
2、數據操縱語言用來查詢、添加、修改和刪除資料庫中數據,相關語句包括SELECT、INSERT、UPDATE利和DELETE等。
3、數據控制語言用來進行安全管理,用來設置或者更改資料庫用戶或角色許可權以確保資料庫中的數據和操作不被未授權的用戶使用和執行。相關語句包括GRANT、DENY和REVOKE等。
4、事務管理語言的相關語句有:BEGINTRANSACTION用來明確定義事務的開始,COMMITTRANSACTION用來明確地提交完成的事務,ROLLBACKTRANSACTION用來使數據回到事務開始時的狀態並釋放該事務占據的資源。
(6)正確的TSQL語句是擴展閱讀
SQL Server和T-SQL的區別
SQL Server是結構化查詢語言,是目前關系型資料庫管理系統中使用最廣泛的查詢語言。
T-SQL即 Transact-SQL,是標准SQL語言的擴展,是SQL Server的核心,在SQL的的基礎上添加了變數,運算符,函數和流程式控制制等新內容。
總之SQL Server是幾乎所有關系型資料庫都支持的語言,而T-SQL是Microsoft SQL Server支持的語言。
❼ 利用t-sql語言創建表時,語句是
語句是CreateTable。根據查詢網上相關信息顯示,T-SQL即Transact-SQL,是SQL在MicrosoftSQLServer上的增強版,它是用來讓應用程序與SQLServer溝通的主要語言。
❽ 基於teaching資料庫中的表,寫出正確的T-SQL語句:將score表中所有學生的平時成績增加2分。
成績欄位是什麼?
假設成績欄位是:chengji
用update命令:
update 表名 set 欄位=新值
你這里就是這樣:
update score set chengji=chengji+2
❾ T-SQL語句
execute ('select sc.sno,sname,sdept from student,sc where sc.sno=student.sno and student.sdept='+'''+@kh+''')
改為:
execute ('select sc.sno,sname,sdept from student,sc where sc.sno=student.sno and student.sdept=@kh)
❿ T-SQL語句
1:select 學號,成績信息 from 成績
where(update 成績 set 成績=成績+10)
2:select 學號,姓名,clunm,籍貫 from 學生信息
where 籍貫='四川' as clunm
4:select distinct 學號,成績信息 from 成績表
7:select 教師職稱,count(*) from 教師表 group by 性別