最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • SQL Server数据库常用语句总结大全

    1. 建库语句

    格式:create database 数据库名;

    例如:

    --创建库
    create database Demo01;
    

    格式:创建数据库(自定义初始值)

    create database 数据库名
    on primary
    (
             name='逻辑名称',
            filename='文件存储路径',
    )
    log on
    (
            name='逻辑名称',
            filename='文件存储路径',
    )

    例如:

    --创建数据库(自定义初始值)
    create database Demo02
    on primary
    (
        name='Demo02',
        filename='M:sqlServer_FileDemo02_DataDemo02.mdf',
        size=5MB
    )
    log on
    (
        name='Demo02_Log',
        filename='M:SQLServer_FileDemo02_DataDemo02_Log.ldf',
        size=2MB
    )

    或者(数据库名Demo03和路径中的文件Demo03_Data.mdf可以不一致)

    --创建数据库(自定义初始值)
    create database Demo03
    on primary
    (
    	name='Demo03',
    	filename='M:SQLServer_FileDemo03_DataDemo03_Data.mdf',
    	size=5MB
    )
    log on
    (
    	name='Demo02_Log',
    	filename='M:SQLServer_FileDemo03_DataDemo03_Log.ldf',
    	size=2MB
    )

    2. 删库语句

    格式:drop database 数据库名

    例如:

    --删库语句
    drop database Demo03

    3. 创建数据表

    格式:

    use 数据库名

    Go

    create table 表名

    (

            列名 数据类型(长度) 列级束缚

    )

    例如:

    use Demo01
    GO
    create table student
    (
    	Sno char(5) NOT NULL UNIQUE,  -- UNIQUE 唯一值
    	Sname char(8) NOT NULL,
    	Sage smallint default 20,  --default 默认值
    	Sex char(2) check(Sex='男' or Sex='女')
    )

    4. 创建视图

    格式:

    USE 数据库名

    GO

    CREATE VIEW 视图名

            as select 列名

            from 表名

    GO

    例如:

    -- 创建视图
    USE Demo01
    GO
    CREATE VIEW Demo01_View_student
    as
    	select * from student
    GO

    5. 约束语句

    5.1 主键约束(PRIMARY KEY)

    格式一:列名 数据类型(长度) 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 被引用列的名称(列名)

    例如:

    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)

    格式:列名 数据类型(长度) NOT NULL

    例如:

    -- 非空约束
    use Demo02
    GO
    create table student5
    (
    	Sno char(5) not null
    )

    5.4 唯一约束(UNIQUE)

    格式:列名 数据类型(长度) UNIQUE

    例如:

    -- 唯一约束
    use Demo02
    go
    create table student6
    (
    	Sno char(5) unique
    )

    6. 增加语句(insert)

    格式:INSERT INTO 表名(列名1,列名2,列名……) VALUES(数据1, 数据2, 数据……);

    例如:

    insert into student(Sno, Sname) values ('s0001', '张三');

    7. 删除语句(delete)

    7.1 删除表数据(一行)

    格式: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. 修改语句(update)

    格式:UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 过滤条件

    例如:

    update student set Sno='s001',Sname='李四',Sage=25,Sex='女' where Sname='张三'

    9. 查询语句(select)

    9.1 查询全部

    格式:SELECT * FROM 表名

    例如:

    select * from student

    9.2 查询某列

    格式:SELECT 列名 FROM 表名 WHERE 查询条件

    例如:

    select Sno,Sname from student where Sage=20

    9.3 自定义查询

    9.3.1 列名的重命名

    格式:SELECT 列名 as 重命名 FROM 表名 WHERE 查询条件

    例如:

    select Sno as 学号 from student
    select Sno 学号 from student

    9.3.2 列名的加减乘除

    格式:SELECT 列名*0.5 FROM 表名 WHERE 查询条件

    例如:

    select Sno 学号,Sname 姓名,Sage*0.5 年龄 from student where Sage=20;
    select Sno 学号,Sname 姓名,Sage+100 年龄 from student where Sage=20;
    select Sno 学号,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 升序和降序同时存在

    格式:ORDER BY 列名1 DESC, 列名2 ASC

    首先按照列名1进行降序排序,然后在相同的列名1值的情况下,再按照列名2进行升序排序。

    例如:

    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 列数 DESC 或者 ORDER BY 列数 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 去除重复项

    格式:SELECT DISTINCT 列名1, 列名2 FROM 表名 WHERE 查询条件

    例如:

    -- 学生表年龄不重复
    select distinct Sage from student
    -- 学生表姓名和年龄不重复
    select distinct Sname,Sage from student

    9.6 把一个表的数据插入另一个表

    格式一:(当要插入的表不存在时)SELECT 列名 INTO 新表名 FROM 表名 WHERE 查询条件

    例如:

    select * into TU_student from student where Sex='男'

    格式二:(当要插入的表本身便存在时)

            INSERT into 表名1(列名1, 列名2)

            select 列名1, 列名2 from 表名2 where 查询条件

    例如:

    insert into TU_student(Sno,Sname,Sage,Sex)
    select * from student where Sex='女'
    
    -- 跨数据库插入
    insert into Demo02.dbo.student(Sno,Sname,Sage,Sex)
    select * from Demo01.dbo.student

    9.7 求总行数

    格式:SELECT count(*) from 表名 WHERE 查询条件

    例如:

    select count(*) from student
    
    --  性别为男的行数
    select count(*) from student where Sex='男'

    9.8 求最大值和最小值

    格式:SELECT max(列名), min(列名) FROM 表名 WHERE 查询条件

    例如:

    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 查询条件

    例如:

    select AVG(Sage) from student
    
    select Sex 性别,AVG(Sage) 平均年龄 from student group by Sex

    9.10 连接查询

    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 模糊查询(LIKE)

    9.11.1 以特定字符开头的字符串

    格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符%‘

    例如:

    select * from student where Sno like '0%'

    9.11.2 以特定字符结尾的字符串

    格式: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 使用 _ 匹配单个字符

    格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特殊字符_‘

    例如:

    select * from student where Sno like '00_'

    9.11.5 使用多个 _ 匹配多个单个字符

    格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符__‘

    例如:

    select * from student where Sno like 's___'

    9.12 分组查询(GROUP BY)

    格式:SELECT 列名 FROM 表名 GROUP BY 分组

    例如:

    --  男女分别多少人
    select Sex, count(*) 人数 from student group by Sex

    10. 常用函数

    10.1 判断语句(CASE WHEN)

    格式:SELECT 列名1, 列名2, 列名… , CASE WHEN 判断条件 then 结果为真的返回值 else 结果为假的返回值 end from 表名

    例如:

    -- 学号是否为001
    select Sno 学号,case  when Sno='001' then 'true' else 'false' end 是否为001 from student
    
    
    -- 性别是否为男
    select Sno 学号,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 数据类型转换(CAST)

    格式:SELECT CAST(列名 as 数据类型) FROM 表名 where 逻辑条件

    例如:

    -- 吧001学号转为int数据类型
    select CAST(Sno as int) from student where Sno='001'
    -- 吧年龄转为char数据类型
    select CAST(Sage as char) from student

    11. 断开数据库

    格式:ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE

    例如:

    alter database Demo02 set offline with rollback immediate

    12. 分离数据库

    格式:EXEC sp_detach_db @dbname=N’数据库名’

    例如:

    exec sp_detach_db @dbname=N'Demo02'

    13. 附加数据库

    格式:

    EXEC sp_attach_db @dbname=N’数据库名’,

            @filename1=N’.mdf文件的存储路径‘, @filename2=N’.ldf文件的存储路径’

    例如:

    exec sp_attach_db @dbname=N'Demo02', 
    	@filename1=N'M:SQLServer_FileDemo02_DataDemo02.mdf',
    	@filename2=N'M:SQLServer_FileDemo02_DataDemo02_Log.ldf'

    总结 

    到此这篇关于SQL Server数据库常用语句总结的文章就介绍到这了,更多相关SQLServer常用语句内容请搜索编程网(www.lsjlt.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网(www.lsjlt.com)!

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » SQL Server数据库常用语句总结大全
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情