SQL语言基础

来源:互联网 发布:insert into多条数据 编辑:程序博客网 时间:2024/05/21 20:25

 

SQL语言的分类

用途

使用户完成如下任务

常用语句

SQL语言

的分类

数据定义语言(DDL

用于定义数据

结构

1创建数据库对象;2删除数据库对象;3更改数据库对象

#Create Table:创建数据库表;#Create Index创建数据库表的索引;#Drop Table:删除数据库表;#Drop Index删除数据库表的索引;#Truncate删除表中所有行;#Alter Table增加表列,重定义表列,更改存储分配;#Alter Table ADD CONSTRATNT:在已有的表上增加约束

 

数据操纵语言(DML

用于检索和

修改数据结构

 

1Insert增加数据行到表;2Delete从表中删除数据行;3Update更改表中数据;4Select从表中或视图中检索数据行

 

数据控制语言(DCL

用于规定数据库

用户的各种权限

 

1Grant:将权限或角色授予用户或其他角色;2Revke从用户或数据库角色回收权限;3Set Role禁止或允许一个角色

 

数据库事务处理

用来保证数

据库的完整性

 

1Commit Work把当前事务所作的更改永久化(写入磁盘);2Rollback作废上次提交以来的所有更改;3,事务:指作为单个逻辑工作单元执行的一系列操作,而这些逻辑工作单元需要具有原子性,一致性,隔离性和持久性四个属性

 

SQL语句的基本语法

 

 

 

SQL语句的基本语法

1,每条SQL语句必须以分号结束;

2,每条SQL语句可以单独写成一行,也可以分成若干行;

 

 

 

 

3SQL语句对大小写不敏感,对SQL语句的关键字(如Insert等),表名,列名等,可以大小写混合,但对列的内容则是大小写敏感的

 

 

 

 

对象命名约定

 

 

 

对象命名约定

SQL Server用三段式名字标识对象

格式:<数据库名>.<所有者名>.<对象名>

要求:前两者可以省略,系统自动有一个吗,默认值。数据库名的默认值是当前数据库,所有者名的默认值是数据库的所有者(dbo

例如:pubs数据库中的authors表的所有者是dbo,它可以在多个数据库中按如下方法引用:pubs.dbo.authors

Pubs.authors

 

 

别名:使用别名的主要目的是增加select语句的可读性。可使用如下语句指派数据表的别名:数据表名称 as 数据表别名

子:

use sample

Select e.员工编号,e.员工姓名

From员工数据表 as e

 

注意:如果为数据表指定了别名,则在相应的TSQL语句中,对该数据表的所有显式引用都必须使用别名,而不能使用数据表名。

例子:Select员工数据表.员工编号,e.员工姓名

     From员工数据表 as e

 

select语句基本结构

 

 

 

Select语句:基本结构:

SELECT [ALL | DISTINCT] select_list

[INTO [new_table_name]]

FROM {table_name | view_name}                  [[,{table_name2 | view_name2}        [….,{table_name16 | view_name16} ] ]

[WHERE search_conditions]

[GROUP BY group_by_list]

        [HAVING search_conditions]

        [ORDER BY order_list [ASC|DESC]]

 

Select子句:select[All | Distinct] [Top n]

<select_list>

各参数说明select_list表示需要检索的字段的列表,字段名称之间用逗号分隔。这个列表中既可以包含数据源表或视图中的字段名称,还可以包含其他表达式。如用*,则系统将返回数据表中的所有字段

All指明查询结果中可以显示值相同的列。All是系统默认的。

Distinct指明查询结果中如果有值相同的值。

 

 

 

Into子句:Into new_table

参数说明new_table指定了新建的表的名称,新建的列由select子句中指定的列构成;

新表中的数据行是由where子句指定的。但如果select子句中指定了计算列,在新表中对应的列则不是计算列,而是一个实际存储在表中的列,其中的数据由执行select…Into语句时计算得出。

 

 

 

From子句:From{<table_source>} [,…n]

参数说明table_source:指明select语句要用到的表,视图等数据源,该列表中的数据表名和视图名之间使用逗号分隔。

注意:TSQL可以支持在from子句中指定除了数据表或视图以外的其他对象,例如查询结果集构成的派生表。这些派生表实际上是from子句中select语句的查询结果集,这些结果集构成了外层select语句查询时所用的数据表。

例子:Select Emp.员工编号,emp.员工姓名,sp.部门名称

From员工数据表 as emp

(select部门数据表.部门编号,部门数据表.部门名称

From部门数据表

Where部门数据表.部门编号>2) as sp

Where emp.部门编号=sp.部门编号

首先使用select语句检索高级部门,并用别名sp表示该派生表,然后从员工数据表和sp派生表中检索数据。

 

Where子句:Select字段名,字段名…From表名称 Where条件表达式

说明:1#关系运算:<,<=,>,>=,=,<> ;# l逻辑运算:与运算And,或运算Or;非运算:Not

2范围说明:Between A and BNot Between and B

3,可选值列表:in,not in;

4,模式匹配:like,not like;

5,是否空值:is null,is not null;

6,查询条件:1)比较查询条件:textntextimage数据类型不能与比较运算符组合成查询条件。(2列表查询条件:in关键字在大多数情况下应用于嵌套查询中,通常首先使用select语句选定一个范围然后将选定的范围作为in关键字的符号条件的列表,从而得出最终结果集。3)模式查询条件:like,not like(注:通配符:*—匹配任意字符串;?—匹配任意一个字符)4)空值判断查询条件:null值表示字段的数据值未知或不可用,它并不表示零(数字值或二进制)、零长度的字符串或空白(字符值)