学新的知识前,我们来复习之前学过的内容。
问题 | 答案 |
数据库中的数据是放在那里的? | 数据库的数据文件中 |
如果数据库崩溃了怎么办 | 利用备份文件进行还原 |
使用时发现容量满足不了大量数据存储怎么办 | 扩大数据库 |
文章目录
- SQL
- 数据定义语言
- 数据操纵语言
- 数据库控制语言
- 习惯命名
- 局部变量
- 注释
SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL从功能上可以分为3部分:数据定义、数据操纵和数据控制。
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。(摘自百度百科,侵删)其特点是:
1、数据描述、操纵、控制等功能一体化。
2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。
3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理操作等均由系统自动完成。
4、语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。
(摘自百度百科,侵删)
在SSMS中,我们的操作都是让系统生成对应的操作脚本。但是学会数据库编程语言是十分重要的
数据定义语言
数据库对象只能执行三个操作:创建(create),修改(alter)和删除(drop)。
--创建一张表
USE adventDW
GO
create table books(
ID int primary key,
B_name varchar(100)
)
GO
数据操纵语言
我们对数据可以做以下四种操作:创建记录(create)读取记录(read)更新记录(update)删除操作(delete)
在设计SQL时,设计人员选择不同的词汇来描述这四种操作:insert(插入),select(选择)update(更新)与delete(删除)
数据库控制语言
数据控制语言用于管理用户对数据库对象的访问。
grant用于授予用户权限
deny用于显式的限制权限集合
revoke用于撤销对象上的权限集合
由于本人没有接触到实际的项目,所以日后有需要再进行单独的笔记。
习惯命名
对于表名,常用表示特性的不多于三个单词
对于外键约束类,系统模块/用户模块+主表+从表+约束
局部变量
声明变量使用declare
为变量指定名称,而且名称前必须有一个@符号
必须为变量指定数据类型和长度
默认情况下,变量的值为null
可以在declare中申明多个变量,用逗号隔开
变量赋值的两种方式:set关键字和select检索
--例题
use master
go
declare @number int;
set @number=1;
while @number<10
begin
set @number=@number+1;
print @max;
end
而全局变量是系统定义并且赋值的。自己无法定义。具体的需要查看SQL Server的帮助文档。运算符感觉和C语言差不多,不做赘述。
仅仅列出下表供之后查询。
运算符 | 含义 |
+ 加法 | 把运算符两边的值相加 |
- 减法 | 左操作数减去右操作数 |
* 乘法 | 把运算符两边的值相乘 |
/ 除法 | 左操作数除以右操作数 |
% 取模 | 左操作数除以右操作数后得到的余数 |
== | 检查两个操作数的值是否相等,如果相等则条件为真 |
= | 检查左操作数的值是否不大于右操作数的值,如果是则条件为真 |
!= 不等于 | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
<> 不等于 | 检查两个操作数的值是否相等,如果不相等则条件为真 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真 |
>= | 检查左操作数的值是否大于等于右操作数的值,如果是则条件为真 |
<= | 检查左操作数的值是否小于等于右操作数的值,如果是则条件为真 |
! < | 检查左操作数的值是否不小于右操作数的值,如果是则条件为真 |
! > | 检查左操作数的值是否不大于右操作数的值,如果是则条件为真 |
&位与 | 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中 |
~位异或 | 二进制补码运算符是一元运算符,具有"翻转"位效应 |
I位或 | 位或运算 |
<< | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数 |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数 |
AND | AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。 |
BETWEEN | BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。 |
EXISTS | EXISTS 运算符子查询中条件的真假,真则返回主查询,否则不返回。 |
IN | IN运算符用于把某个值与一系列指定列表的值进行比较。 |
NOT IN | IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。 |
LIKE | LIKE运算符用于把某个值与使用通配符运算符的相似值进行比较。 |
GLOB | GLOB 运算符用于把某个值与使用通配符运算符的相似值进行比较。GLOB 与 LIKE 不同之处在于,它是大小写敏感的。 |
NOT | NOT运算符是所用的逻辑运算符的对立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定运算符。 |
OR | OR运算符用于结合一个 SQL 语句的 WHERE 子句中的多个条件。 |
IS NULL | NULL 运算符用于把某个值与 NULL 值进行比较。 |
IS | IS 运算符与 = 相似。 |
IS NOT | IS NOT 运算符与 != 相似。 |
UNIQUE UNIQUE | 运算符搜索指定表中的每一行,确保唯一性(无重复)。 |
注释
由于代码的特殊性,我们写代码需要做详细的注释,以便日后可以容易的知道每个部分的功能
注释分为块注释和行内注释
在每一个脚本之前要写一个完整的文本块,提及功能,日期,设计人员,相关调试信息,相关变更信息等。
行内注释主要说明单独某一行或段的注解,或者在需要更改功能的时候注释掉不用的代码。