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
复制代码
相关推荐
阿成学长_Cain6 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
OceanBase数据库官方博客8 小时前
OceanBase AI 时代,数据库的变与不变(技术解析与实践)
数据库·人工智能·oceanbase
阿成学长_Cain10 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
ywl47081208710 小时前
Mysql 平衡二叉树、红黑树、B树、B+树区别以及应用场景(五)
数据库·b树·mysql
IvorySQL11 小时前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
SelectDB12 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
Database_Cool_12 小时前
阿里云RDS主从延迟解决方案_只读实例半同步复制最佳实践
数据库·人工智能
KaMeidebaby13 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
卓怡学长13 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
ClouGence13 小时前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql