大碗编程

Did You Know?

sql语句大全实例教程(必会的12个高频语句)

在数据库查询中,总结了12个高频常用SQL语句,供大家参考学习:

1、复制表结构,不包括数据(用于建立同一个表结构)

SELECT* INTOA_BAK FROMA WHERE1=2; 或者 SELECTTOP 0* INTOA_BAK FROMA;

可以得到与A 表结构一样的A_bak ,而且A_bak 中没有数据

2、复制表结构,包括数据(用于数据库表备份)

select* intostudent_backup fromstudent ;

3、查询表里是否存在数据

SELECTTOP 11FROMtable

注:第一个1是查询是否存在一条记录,第二个1就是单纯的数值1。

4、随机获取一行数据

表table数据如下:

现在随机获取一行数据

SELECTTOP 1* FROMtableBYNEWID();

结果如下:

注:多次执行,结果会不一样

5、获取第6到10行的记录

表Person数据如下:

获取第6到10行数据

SELECTTOP 5* FROM(SELECTTOP 10* FROMPerson ORDERBYID) a ORDERBYIDDESC

结果如下:

注:如果希望是升序,可以在外面在加一层SELECT子查询对ID进行升序排序。

6、将日期转换成文本格式

SELECTCONVERT(VARCHAR(10),CreateDate,120) FROMStudents

注:CreateDate为带时间的完整日期格式,执行后会得到不带时间的字符串,如'2022-01-31'

7、删除其中除ID以为其他都重复的记录

表table数据如下:

DELETEFROMtableWHEREIDNOTIN(SELECTMAX(ID) FROMtableGROUPBYName,Age,Sex,Phone)

删除后结果如下:

8、将B表中的字段内容更新到A表

UPDATEA SETA.Name=(SELECTB.Name FROMB WHEREA.ID=B.ID)

9、获取笛卡尔积分

SELECTA.*,B.* FROMA,B

10、按姓氏笔画多少排序

SELECT Name FROM table ORDER BY Name Collate Chinese_PRC_Stroke_CI_AS

结果如下:

注:默认是直接按姓氏拼音排序

11、将小数转换成百分数

SELECTCAST(CAST((0.8888*100) ASNUMERIC(18,2)) asVARCHAR(20)) + '%'

结果如下:

12、处理除数为0

SELECTISNULL(A/NULLIF(B,0),1) FROMTABLEA或SELECTCASEWHENB=0THEN1ELSEA/B ENDFROMTABLEA

注:A为任意数值,B为0

以上是在工作总结常用的12个高频语句,一起学习SQL语句,由浅到深带大家一起学习。