欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL?Server數(shù)據(jù)庫(kù)常用語(yǔ)句總結(jié)大全

 更新時(shí)間:2024年08月14日 11:25:02   作者:艸肅  
SQL Server數(shù)據(jù)庫(kù)常用的SQL語(yǔ)句有很多,下面這篇文章主要給大家總結(jié)介紹了關(guān)于SQL?Server數(shù)據(jù)庫(kù)常用語(yǔ)句的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(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)文章

最新評(píng)論