前言
在数据库管理的世界中,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.创建数据库
create database db_name
2.2.删除数据库
drop database db_name
2.3备份sql server
--- 创建 备份 USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack
2.4.创建新表
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.删除新表
drop table tabname
2.6.增加一个列 删除一个列
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.说明:创建/删除索引
1. create [unique] index idxname on tabname(col….) 2. drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
2.9.说明:创建/删除视图
1. create view viewname as select statement 2. drop view viewname
2.10.基本sql语句选择
查询: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