4.1 SQL语言

4.1.1 SQL语言的特点

(1)一体化

(2)高度非过程化

(3)面向集合的操作方式

(4)提供多种方式使用

(5)语言简洁

4.1.2 SQL语言的功能

(1)数据定义:用于定义,删除和修改数据库中的对象,数据库,关系表,视图,索引等

(2)数据查询:用于实现查询数据的功能,使用最多的操作

(3)数据操纵:用于添加,删除和修改数据库数据

(4)数据控制:用于控制用户对象的操作权限

sql server money 精度失准_数据库

4.2 SQL支持的数据类型

4.2.1 数值型

(1) 精确数字:指在计算机中能精确存储的数据,比如整数,定点小数都是精确型数据。

sql server money 精度失准_sql_02

(2)近似数字:用于存储浮点型数据,表示在其数据类型范围的所有数据在计算机中不一定都能精确的表示。

sql server money 精度失准_数据_03

4.2.2 日期时间型

sql server money 精度失准_数据库_04

4.3 数据定义功能

4.3.1 数据库的定义

1. 数据库创建
数据库创建使用CREATE DATABASE 语句,其语法格式如下:
CREATE DATABASE<数据库名>
[ON [PRIMARY] <文件名>[ , ...n]
      [, <文件组>[ ,...n]]
      [ LOG ON <文件> [ , ...n]]]
[COLLATE<校验方式名>]
[ WITH <选项> [,...n]] [;]
2 数据库修改
ALTER DATABASE <数据库名>
 ADD FILE<文件>[,...n]
       [TO FILEGROUP {文件组}]
| ADD LOG FILE <文件>[,..n]
| REMOVE FILE<文件名>
| MODIFY FILE<文件>[;]
3数据库删除
DROP DATABASE <数据库名>[,...n][;]
4.3.2 架构的定义
1 架构创建
CREATE SCHEMA{<架构名>
   | AUTHORIZATION<所有者名>
   |<架构名> AUTHORIZATION<所有者名>
}
[{表定义语句 | 视图定义语句|授权语句 |收权语句 |拒绝权限语句}
][;]
2 架构修改
ALTER SCHEMA<架构名>
transfer<对象名[;]
3 架构删除
DROPS CHEMA<架构名>[;]
4.3.3 表的定义
1 表的创建
CREATE TABLE [<架构名>.]<表名>(
{<列名> <数据类型> [列级完整性约束定义[...n]]}
    [表级完整性约束定义][, ...n]
)
在列级完整性约束定义处可以定义如下约束:
NOT NULL :非空约束,限制列取值非空
PRIMARY KEY:主键约束,指定本列为主键
FOREIGN KEY:外键约束,定义本列为引用其他表的外键
UNIQUE:唯一约束,限制列取值不能重复
DEFAULT:默认值约束,指定列的默认值
CHECK:列取值范围约束,限制列的取值范围
2 表的修改
ALTER TABLE 语句的语法如下:
ALTER TABLE[<架构名>.]<表名>
{
ALTER COLUMN<列名><新数据类型>
|ADD <列名><数据类型>[约束]
|DROP COLUMN <列名>
|ADD [constraint<约束名>约束定义]
|DROP <约束名>
}
3 表的删除
DROP TABLE <表名> {,<表名>}
4.4 数据查询功能
4.4.1 单表查询
SELECT <目标列名序列>
 FROM <表名>[ JOIN <表名> ON <连接条件>]
[WHERE<行选择条件>]
[GROUP BY <分组依据列>]
[HAVING <组选择条件>]
[OPDER BY <排列依据列>]
4.5 视图
4.5.1 视图的概述
(1) 视图数据始终与基本表数据保持一致
(2)节省存储空间
4.5.2 视图的定义及使用
CREATE VIEW<视图名>[(列名[,...n])]
 AS 
      SELECT 语句
4.5.3视图的修改和删除
1 修改视图
ALTER VIEW <视图名>[(<列名>[,...n])]
  AS 
       SELECT 语句
2 删除视图
DROP VIEW <视图名>
4.6 数据更改功能
4.6.1 数据插入
1 单行插入
INSERT [INTO]<表名>[(<列名表>)] VALUES(值列表)
使用插入语句时应注意
(1)值列表中的值与列名表中的列按位置顺序对应,它们的数据类型必须兼容
(2)如果<表名>后面没有指明<列名表>,则值列表中的值的顺序必须与<表名 >中的列定义的顺序一致,且每一个列均有值(可以为空)
(3)如果值列表中提供的值的个数或者顺序 与<表名>中列的个数或顺序不一致,则<列名表>部分不能省
2 多行插入
INSERT [INTO]<表名>[(<列名表>)] SELECT 语句
4.6.2 数据更新
UPDATE <表名> SET <列名>={表达式|DEFAULT |NULL}[,...N]
[ FROM <条件表名>[,...n]]
[WHERE<更新条件>]
4.6.3 数据删除
DELETE [FROM]<表名>
[FROM <条件表名>[,..n]]
[WHERE<删除条件>]
4.7 数据控制功能
4.7.1 授权
GRANT <权限> [,<权限>]....
[ON <对象类型><对象名>]
TO <>[,<用户>]
[WITH GRANT OPTION] [ AS 用户  ];
4.7.2 回收授权
REVOKE[GRANT OPTION FOR ]<权限>[,<权限>]....
[ ON <对象类型><对象名>]
FROM <对象类型>[,<对象名>]...
[CASCADE][AS 用户];
4.7.3 拒权
DENY <权限[,<权限>]....
[ON <对象类型><对象名>]
TO <用户>[,<用户>]...;