SQL Server语法基础:入门到精通

博客前言

在数据库管理的世界中,SQL Server无疑是一个重要的角色。无论是初学者还是经验丰富的数据库管理员,都需要对SQL Server的查询语法有深入的理解。本文将带领大家深入解析SQL Server的查询语法,并分享一些实用的技巧,帮助大家更好地利用SQL Server进行数据库操作。

一.SQL分类

QL语句主要可以分为四大类:数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。

1.数据查询语言(DQL)

数据查询语言(Data Query Language)主要用于从数据库中检索数据。它是SQL的核心部分,也是数据库应用中最常用的部分。

DQL语句的基本结构包括SELECT、FROM、WHERE等关键字,它们可以帮助我们从数据库中的一张或多张表中检索出符合条件的数据。

  • SELECT:用于指定要查询的列。
  • FROM:用于指定要查询的表。
  • WHERE:用于设置查询条件,只返回满足条件的数据。

除了基本的查询功能,DQL还支持对数据进行排序(ORDER BY)、分组(GROUP BY)和聚合(如SUM、AVG、MAX、MIN等函数)等操作,以满足更复杂的查询需求。

2.数据操纵语言(DML)

数据操纵语言(Data Manipulation Language)用于对数据库中的数据进行增、删、改等操作。

DML主要包括以下三种指令:

  • INSERT:用于向表中插入新的数据行。
  • UPDATE:用于修改表中已存在的数据。
  • DELETE:用于从表中删除数据行。

这些操作都直接影响数据库中的数据内容,因此需要谨慎使用

3.数据定义语言(DDL)

数据定义语言(Data Definition Language)用于定义和管理数据库中的所有对象,如数据库、表、索引、约束等。

DDL主要包括以下操作:

  • CREATE:用于创建新的数据库对象,如表、索引等。
  • ALTER:用于修改已存在的数据库对象。
  • DROP:用于删除数据库对象。

这些操作都影响数据库的结构和组织。

4.数据控制语言(DCL)

数据控制语言(Data Control Language)用于控制用户对数据库的访问权限。

DCL主要包括以下语句:

  • GRANT:用于授予用户或角色对数据库对象的特定权限。
  • REVOKE:用于撤销之前授予的权限。

这些操作有助于确保数据库的安全性和数据的完整性

二.基础语法

2.1.创建数据库

sql 复制代码
create database db_name

2.2.删除数据库

bash 复制代码
drop database db_name

2.3备份sql server

bash 复制代码
--- 创建 备份
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack

2.4.创建新表

sql 复制代码
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2... from tab_old definition only

2.5.删除新表

bash 复制代码
drop table tabname

2.6.增加一个列 删除一个列

sql 复制代码
ALTER TABLE tb_su ADD age INT;

ALTER TABLE tb_su DROP COLUMN age;

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

2.7.说明:添加/删除主键

复制代码
Alter table tabname add primary key(col)
Alter table tabname drop primary key(col)

2.8.说明:创建/删除索引

bash 复制代码
create [unique] index idxname on tabname(col....)
drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

2.9.说明:创建/删除视图

bash 复制代码
create view viewname as select statement
drop view viewname

2.10.基本sql语句选择

bash 复制代码
查询:select * from table1 where 范围
插入:insert into table1(field1,field2) s(1,2)
删除:delete from table1 where 范围
更新:update table1 set field1=1 where 范围
查找:select * from table1 where field1 like '%1%' ---like的语法
排序:select * from table1 order by field1,field2 [desc]
总数:select count * as totalcount from table1
求和:select sum(field1) as sum from table1
平均:select avg(field1) as avg from table1
最大:select max(field1) as max from table1
最小:select min(field1) as min from table1
复制代码
相关推荐
云和数据.ChenGuang1 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys2 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi2 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据3 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi4 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀4 小时前
Redis梳理
数据库·redis·缓存
独行soc4 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天4 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺5 小时前
分布式系统架构:服务容错
数据库·架构
独行soc6 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘