目录
SQL简述
在进行数据管理时,使用 SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护数据时,每次都需要使用 SSMS 不但不方便,而且容易出错。通过编写SQL语句来维护数据库便于解决重复或批量维护数据的难题。
数据库目前标准的指令集就是SOL。
SQL和T-SQL
SQL是 Structured Query Language的缩写,即结构化查询语言。它是1974年由Boyce和Chamberlin提出来的,1975~1979年, BM公司研制的关系数据库管理系统原型System R实现了这种语言,经过多年的发展,SQL语言得到了广泛的应用。如今Oracle, Sybase、Informix、SOL Server这些大型的数据库管理系统都支持SQL作为查询语言。SQL已经成为关系数据库的标准语言。
SQL广泛地被采用说明了它的优势。它使全部用户,包括应用程序员、数据库管理员和终端用户受益非浅
1.非过程化语言
SQL 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航功能。SQL 允许用户在高层的数据结构上工作,而不对单个记录进行操作.可操作记录集。所有SQL语句可以接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的输出作为另一条 SOL语句的输入。SQL 不要求用户指定数据的存放方法,这种特性使用户更易集中精力于要得到的结果.所有SQL 语句使用查询优化器,它是关系数据库管理系统(Relational Database Management System,RDBMS〉的一部分,查询优化器知道存在什么索引,在哪儿使用合活,而用户从不需要知道表是否有索引.表有什么类型的索引。
2.统一的语言
SQL可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员.应用程序员、决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需要很少时间就能学会,最高级的命
令在几天内便可掌握。SQL为许多任务提供了命令,包括:
- 查询数据。
- 在表中插入、修改和删除记录。
- 建立、修改和删除数据对象。
- 控制对数据和数据对象的存取。
- 保证数据库一致性和完整性。
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
3.所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SOL语言田白可薯佳田 SOI的技能从一个 RDBMS转到另一个。所有用SOL 编写的程序都是可以移植的。
SOL语言不同于Java、C#这样的程序设计语言,它只是数坭店能够门的指合,但是在程序中,可以组织SOL语句发送给数据库,数据库再执行相应的操作,例如在C廿程序中要得到 SQL Server数据库表中的记录,可以在C#程序中编写SQL查询语句,然后发关到数据在数据库根据查询的SOL语句进行查询,再把查询的结果返回C#程序。
T-SOL是标准SQL的加强版,除了标准的SQL命令之外还对 SOL合今做了许多扩充,提供类似于程序语言的基本功能,如变量说明、流程控制、功能函数等。
T-SQL的组成
T-SQL 语言主要由以下几部分组成。
- 数据操纵语言:用来查询、插入、删除和修改数据库中的数据,如 SELECT、INSERT、 UPDATE、DELETE。
- 数据定义语言:用来建立数据库、数据库对象和定义其列,大部分是以CREATE 开头的命令,如 CREATE 、ALTER、DROP。
- 数据控制语言(Data Control Language,DCL):用来控制数据库组件的存取许可、存取权限等,如 GRANT、REVOKE。
使用T-SQL 语句操作数据表
在SOL Server Management 中对表数据进行插入、更新或删除比较简单,除此之外,也可以使用T-SOL语句实现对表数据的插入、更新或删除等操作。
插入数据
使用 INSERT 语句将数据插入表中。
INSERT 语法格式如下。
INSERT [INTO] <表名> [列名] VALUES <值列表>
其中
- [INTO]是可选的,可以省略。
- 表名是必需的,而表的列名是可选的,如果省略,<值列表>中顺序与数据表中字段顺序保持一致。
- 多个列名和多个值列表用逗号分隔。
在插入数据的时候,需要注意以下事项。
- 每次插入一整行数据,不可能只插入半行或几列数据。
- 数据值的数目必须与列数相同,每个数据值的数据类型、精度和小数位数也必须与相应的列匹配。
- INSERT 语句不能为标识列指定值,因为它的值是自动增长的。
- 对于字符类型的列,当插入数据的时候,需要使用单引号。
- 如果在设计表的时候指定某列不允许为空,则该列必须插入数据.否则将报告错误信息。
- 插入的数据项要求符合 CHECK 约束的要求。
- 尽管可以不指定瓦名但是应养成好习惯,明确指定插入的列和对应的值。
查询举例
1.查看员工信息表
select * from [dbo].[员工信息表]
2.只查看员工信息表姓名和职位列
select 姓名,职位 from [dbo].[员工信息表]
3.查看员工信息表职位是工程师的姓名列
select 姓名 from [dbo].[员工信息表] where 职位='工程师'
4.筛选员工信息表工资8000到10000之间
select * from [dbo].[员工信息表] where 工资 between 8000 and 10000
5.查看工资是13447和12500
select * from [dbo].[员工信息表] where 工资 in (13447,12500)
6.查看工资是以1开头的
select * from [dbo].[员工信息表] where 工资 like '1%'
7.查看姓名是金开头的职位是工程师的
select * from [dbo].[员工信息表] where 姓名 like '金%' and 职位='工程师'
8.查看备注不为空的
select * from [dbo].[student-1] where 备注 is not null
9.查看student-1表5行的内容
select top 5 * from [dbo].[student-1]
10.使用as将查出来的姓名改成name,类似别名
select 姓名 as name from [dbo].[student-1]
11.这里使用了去重,将职位中重复内容过滤
select distinct 职位 from [dbo].[员工信息表]