SQL?Server數(shù)據(jù)庫(kù)常用語(yǔ)句總結(jié)大全
1. 建庫(kù)語(yǔ)句
格式:create database 數(shù)據(jù)庫(kù)名;
例如:
--創(chuàng)建庫(kù) create database Demo01;
格式:創(chuàng)建數(shù)據(jù)庫(kù)(自定義初始值)
create database 數(shù)據(jù)庫(kù)名 on primary ( name='邏輯名稱(chēng)', filename='文件存儲(chǔ)路徑', ) log on ( name='邏輯名稱(chēng)', filename='文件存儲(chǔ)路徑', )
例如:
--創(chuàng)建數(shù)據(jù)庫(kù)(自定義初始值) create database Demo02 on primary ( name='Demo02', filename='M:\SQLServer_File\Demo02_Data\Demo02.mdf', size=5MB ) log on ( name='Demo02_Log', filename='M:\SQLServer_File\Demo02_Data\Demo02_Log.ldf', size=2MB )
或者(數(shù)據(jù)庫(kù)名Demo03和路徑中的文件Demo03_Data.mdf可以不一致)
--創(chuàng)建數(shù)據(jù)庫(kù)(自定義初始值) create database Demo03 on primary ( name='Demo03', filename='M:\SQLServer_File\Demo03_Data\Demo03_Data.mdf', size=5MB ) log on ( name='Demo02_Log', filename='M:\SQLServer_File\Demo03_Data\Demo03_Log.ldf', size=2MB )
2. 刪庫(kù)語(yǔ)句
格式:drop database 數(shù)據(jù)庫(kù)名
例如:
--刪庫(kù)語(yǔ)句 drop database Demo03
3. 創(chuàng)建數(shù)據(jù)表
格式:
use 數(shù)據(jù)庫(kù)名
GO
create table 表名
(
列名 數(shù)據(jù)類(lèi)型(長(zhǎng)度) 列級(jí)束縛
)
例如:
use Demo01 GO create table student ( Sno char(5) NOT NULL UNIQUE, -- UNIQUE 唯一值 Sname char(8) NOT NULL, Sage smallint default 20, --default 默認(rèn)值 Sex char(2) check(Sex='男' or Sex='女') )
4. 創(chuàng)建視圖
格式:
USE 數(shù)據(jù)庫(kù)名
GO
CREATE VIEW 視圖名
as select 列名
from 表名
GO
例如:
-- 創(chuàng)建視圖 USE Demo01 GO CREATE VIEW Demo01_View_student as select * from student GO
5. 約束語(yǔ)句
5.1 主鍵約束(PRIMARY KEY)
格式一:列名 數(shù)據(jù)類(lèi)型(長(zhǎng)度) PRIMARY KEY
例如:
-- 主鍵約束 use Demo02 GO create table student1 ( Sno char(5) primary key )
格式二:CONSTRAINT 約束名 PRIMARY KEY(列名)
例如:
use Demo02 GO create table student2 ( Sno char(5), Sname char(5), constraint c1 PRIMARY KEY(Sno) )
5.2 外鍵約束(FOREIGN KEY)
格式:CNOSTRAINT 約束名 FOREIGN KEY(列名) REFERENCES 被引用列的名稱(chēng)(列名)
例如:
use Demo02 GO create table student3 ( Sno char(5), constraint c2 primary key(Sno) ) GO create table student4 ( Sno char(5), Cno char(5), constraint c3 primary key(Cno), constraint c4 foreign key(Sno) references student3(Sno) )
5.3 非空約束(NOT NULL)
格式:列名 數(shù)據(jù)類(lèi)型(長(zhǎng)度) NOT NULL
例如:
-- 非空約束 use Demo02 GO create table student5 ( Sno char(5) not null )
5.4 唯一約束(UNIQUE)
格式:列名 數(shù)據(jù)類(lèi)型(長(zhǎng)度) UNIQUE
例如:
-- 唯一約束 use Demo02 go create table student6 ( Sno char(5) unique )
6. 增加語(yǔ)句(insert)
格式:INSERT INTO 表名(列名1,列名2,列名......) VALUES(數(shù)據(jù)1, 數(shù)據(jù)2, 數(shù)據(jù)......);
例如:
insert into student(Sno, Sname) values ('s0001', '張三');
7. 刪除語(yǔ)句(delete)
7.1 刪除表數(shù)據(jù)(一行)
格式:DELETE FROM 表名 WHERE 列名='值'
例如:
delete from student where Sno='s0001' delete from student where Sno='s0001' and Sage not in (20,21)
7.2 刪除約束
格式:ALTER TABLE 表名 DROP CONSTARAINT 約束名
例如:
use Demo02 go alter table student drop constraint CK__student__Sex__108B795B
8. 修改語(yǔ)句(update)
格式:UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 過(guò)濾條件
例如:
update student set Sno='s001',Sname='李四',Sage=25,Sex='女' where Sname='張三'
9. 查詢(xún)語(yǔ)句(select)
9.1 查詢(xún)?nèi)?/h3>
格式:SELECT * FROM 表名
例如:
select * from student
9.2 查詢(xún)某列
格式:SELECT 列名 FROM 表名 WHERE 查詢(xún)條件
例如:
select Sno,Sname from student where Sage=20
9.3 自定義查詢(xún)
9.3.1 列名的重命名
格式:SELECT 列名 as 重命名 FROM 表名 WHERE 查詢(xún)條件
例如:
select Sno as 學(xué)號(hào) from student select Sno 學(xué)號(hào) from student
9.3.2 列名的加減乘除
格式:SELECT 列名*0.5 FROM 表名 WHERE 查詢(xún)條件
例如:
select Sno 學(xué)號(hào),Sname 姓名,Sage*0.5 年齡 from student where Sage=20; select Sno 學(xué)號(hào),Sname 姓名,Sage+100 年齡 from student where Sage=20; select Sno 學(xué)號(hào),Sname 姓名,Sage/4 年齡 from student where Sage=20;
9.4 正倒序排列
9.4.1 升序
格式:ORDER BY 列名 ASC
例如:
select Sno,Sname,Sage,Sex from student order by Sage asc
9.4.2 降序
格式:ORDER BY 列名 DESC
例如:
select Sno,Sname,Sage,Sex from student order by Sage desc
9.4.3 升序和降序同時(shí)存在
格式:ORDER BY 列名1 DESC, 列名2 ASC
首先按照列名1進(jìn)行降序排序,然后在相同的列名1值的情況下,再按照列名2進(jìn)行升序排序。
例如:
select Sno,Sname,Sage,Sex from student order by Sage desc, Sno asc select Sno,Sname,Sage,Sex from student order by Sage desc, Sno desc
9.4.4 選擇某列排序
格式:ORDER BY 列數(shù) DESC 或者 ORDER BY 列數(shù) ASC
select Sno,Sname,Sage,Sex from student order by 1 desc select Sno,Sname,Sage,Sex from student order by 3 asc
9.5 去除重復(fù)項(xiàng)
格式:SELECT DISTINCT 列名1, 列名2 FROM 表名 WHERE 查詢(xún)條件
例如:
-- 學(xué)生表年齡不重復(fù) select distinct Sage from student -- 學(xué)生表姓名和年齡不重復(fù) select distinct Sname,Sage from student
9.6 把一個(gè)表的數(shù)據(jù)插入另一個(gè)表
格式一:(當(dāng)要插入的表不存在時(shí))SELECT 列名 INTO 新表名 FROM 表名 WHERE 查詢(xún)條件
例如:
select * into TU_student from student where Sex='男'
格式二:(當(dāng)要插入的表本身便存在時(shí))
INSERT into 表名1(列名1, 列名2)
select 列名1, 列名2 from 表名2 where 查詢(xún)條件
例如:
insert into TU_student(Sno,Sname,Sage,Sex) select * from student where Sex='女' -- 跨數(shù)據(jù)庫(kù)插入 insert into Demo02.dbo.student(Sno,Sname,Sage,Sex) select * from Demo01.dbo.student
9.7 求總行數(shù)
格式:SELECT count(*) from 表名 WHERE 查詢(xún)條件
例如:
select count(*) from student -- 性別為男的行數(shù) select count(*) from student where Sex='男'
9.8 求最大值和最小值
格式:SELECT max(列名), min(列名) FROM 表名 WHERE 查詢(xún)條件
例如:
select max(Sage) 最大值, min(Sage) 最小值 from student select TU_student.Sex,MAX(student.Sage) 最大年齡,MIN(student.Sage) 最小年齡 from TU_student,student where TU_student.Sno=student.Sno group by TU_student.Sex select TU_student.Sname,MAX(student.Sage) 最大年齡,MIN(student.Sage) 最小年齡 from TU_student,student where TU_student.Sno=student.Sno group by TU_student.Sname
9.9 求平均值
格式:SELECT AVG(列名) FROM 表名 WHERE 查詢(xún)條件
例如:
select AVG(Sage) from student select Sex 性別,AVG(Sage) 平均年齡 from student group by Sex
9.10 連接查詢(xún)
9.10.1 第一種連接方式
格式:SELECT * FROM 表名1, 表名2 WHERE 表名1.列名 = 表名2.列名
例如:
select TU_student.Sno,student.Sname,TU_student.Sage,student.Sex from TU_student,student where TU_student.Sno = student.Sno
9.10.2 第二種連接方式
格式:SELECT 列名 FROM 表名1 JOIN 表名2 ON 表名1.列名 = 表名2.列名
例如:
select TU_student.Sno,student.Sname,TU_student.Sage,student.Sex from student join TU_student on student.Sno = TU_student.Sno
9.11 模糊查詢(xún)(LIKE)
9.11.1 以特定字符開(kāi)頭的字符串
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符%‘
例如:
select * from student where Sno like '0%'
9.11.2 以特定字符結(jié)尾的字符串
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’%特定字符‘
例如:
select * from student where Sname like '%三'
9.11.3 匹配包含特定字符的字符串
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’%特定字符%‘
例如:
select * from student where Sno like '%0%'
9.11.4 使用 _ 匹配單個(gè)字符
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特殊字符_‘
例如:
select * from student where Sno like '00_'
9.11.5 使用多個(gè) _ 匹配多個(gè)單個(gè)字符
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符__‘
例如:
select * from student where Sno like 's___'
9.12 分組查詢(xún)(GROUP BY)
格式:SELECT 列名 FROM 表名 GROUP BY 分組
例如:
-- 男女分別多少人 select Sex, count(*) 人數(shù) from student group by Sex
10. 常用函數(shù)
10.1 判斷語(yǔ)句(CASE WHEN)
格式:SELECT 列名1, 列名2, 列名... , CASE WHEN 判斷條件 then 結(jié)果為真的返回值 else 結(jié)果為假的返回值 end from 表名
例如:
-- 學(xué)號(hào)是否為001 select Sno 學(xué)號(hào),case when Sno='001' then 'true' else 'false' end 是否為001 from student -- 性別是否為男 select Sno 學(xué)號(hào),Sname 姓名,Sage 年齡, Sex 性別, case when Sex='男' then 'true' else 'false' end 性別是否為男 from student
10.2 日期差(DATEDIFF)
格式:SELECT DATEDIFF(day,日期1,日期2) AS 列的別名(例如:日期差多少天) FROM 表名 where 邏輯條件
例如:
SELECT DATEDIFF(day,'2024-03-01','2024-04-01') AS 日期差多少天 SELECT DATEDIFF(day,day1,day2) AS 日期差多少天 from a_dateTable
10.3 數(shù)據(jù)類(lèi)型轉(zhuǎn)換(CAST)
格式:SELECT CAST(列名 as 數(shù)據(jù)類(lèi)型) FROM 表名 where 邏輯條件
例如:
-- 吧001學(xué)號(hào)轉(zhuǎn)為int數(shù)據(jù)類(lèi)型 select CAST(Sno as int) from student where Sno='001' -- 吧年齡轉(zhuǎn)為char數(shù)據(jù)類(lèi)型 select CAST(Sage as char) from student
11. 斷開(kāi)數(shù)據(jù)庫(kù)
格式:ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET OFFLINE WITH ROLLBACK IMMEDIATE
例如:
alter database Demo02 set offline with rollback immediate
12. 分離數(shù)據(jù)庫(kù)
格式:EXEC sp_detach_db @dbname=N'數(shù)據(jù)庫(kù)名'
例如:
exec sp_detach_db @dbname=N'Demo02'
13. 附加數(shù)據(jù)庫(kù)
格式:
EXEC sp_attach_db @dbname=N'數(shù)據(jù)庫(kù)名',
@filename1=N’.mdf文件的存儲(chǔ)路徑‘, @filename2=N'.ldf文件的存儲(chǔ)路徑'
例如:
exec sp_attach_db @dbname=N'Demo02', @filename1=N'M:\SQLServer_File\Demo02_Data\Demo02.mdf', @filename2=N'M:\SQLServer_File\Demo02_Data\Demo02_Log.ldf'
總結(jié)
到此這篇關(guān)于SQL Server數(shù)據(jù)庫(kù)常用語(yǔ)句總結(jié)的文章就介紹到這了,更多相關(guān)SQLServer常用語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Sql Server恢復(fù)數(shù)據(jù)庫(kù)和單表數(shù)據(jù)的方法小結(jié)
如果不小心把某個(gè)表的數(shù)據(jù)刪了,可以用之前的備份文件對(duì)單表進(jìn)行數(shù)據(jù)恢復(fù),所以本文給大家介紹了Sql Server恢復(fù)數(shù)據(jù)庫(kù)和單表數(shù)據(jù)的方法,需要的朋友可以參考下2024-03-03Spark臨時(shí)表tempView的注冊(cè)/使用/注銷(xiāo)/注意事項(xiàng)(推薦)
transformation是根據(jù)原有RDD創(chuàng)建一個(gè)新的RDD,而action則把RDD操作后的結(jié)果返回給driver,這篇文章主要介紹了Spark臨時(shí)表tempView的注冊(cè)/使用/注銷(xiāo)/注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2022-10-10BCP 大容量數(shù)據(jù)導(dǎo)入導(dǎo)出工具使用步驟
bcp工具的參數(shù)幫忙請(qǐng)查看聯(lián)機(jī)叢書(shū).2010-05-05通過(guò)備份記錄獲取數(shù)據(jù)庫(kù)的增長(zhǎng)情況
通過(guò)備份記錄獲取數(shù)據(jù)庫(kù)的增長(zhǎng)情況2009-06-06利用腳本自動(dòng)安裝SQLServer的實(shí)現(xiàn)步驟分析
在工作中,經(jīng)常被要求一天安裝個(gè)10臺(tái)、8臺(tái)的SQL Server。2010-11-11將mater庫(kù)中的系統(tǒng)存儲(chǔ)過(guò)程批量生成*.sql文件 通用且非常實(shí)用
最近因?yàn)橄到y(tǒng)需要,需要將master庫(kù)的所有和業(yè)務(wù)相關(guān)的存儲(chǔ)過(guò)程批量生成 存儲(chǔ)過(guò)程名.sql 文件,默認(rèn)是不可以導(dǎo)出的2012-05-05sql server中隨機(jī)函數(shù)NewID()和Rand()
在SQL語(yǔ)言中,隨機(jī)函數(shù)NEWID和rand()用法并不相同,下面就將為您示例分析這兩個(gè)隨機(jī)函數(shù)的區(qū)別,供您參考,希望對(duì)您深入理解SQL函數(shù)能起到作用2015-10-10SqlServer數(shù)據(jù)庫(kù)提示 “tempdb” 的日志已滿(mǎn) 問(wèn)題解決方案
本文主要講述了筆者在執(zhí)行sql語(yǔ)句的過(guò)程中,遇到提示“數(shù)據(jù)庫(kù) 'tempdb' 的日志已滿(mǎn)。請(qǐng)備份該數(shù)據(jù)庫(kù)的事務(wù)日志以釋放一些日志空間?!钡慕鉀Q過(guò)程,希望對(duì)大家有所幫助2014-08-08SQL Server使用T-SQL創(chuàng)建數(shù)據(jù)庫(kù)的操作指南
?T-SQL全稱(chēng)為transact structured query language,事務(wù)化的結(jié)構(gòu)查詢(xún)語(yǔ)言,是對(duì)標(biāo)準(zhǔn)SQL語(yǔ)言功能的擴(kuò)充,可以聲明變量,有流程控制語(yǔ)句,支持對(duì)流程的控制等,本文給大家介紹了SQL Server使用T-SQL創(chuàng)建數(shù)據(jù)庫(kù)的操作指南,需要的朋友可以參考下2024-12-12一個(gè)刪選數(shù)據(jù)的例子,使用GROUP、DISTINCT實(shí)例解析
今天遇到的問(wèn)題,糾結(jié)了一上午,終于解決了。在此記錄下來(lái),自我認(rèn)為還有很多類(lèi)似的問(wèn)題都可以套用這段代碼2013-09-09