1、一、名字 在数据库中,各种对象是通过不同的名字来进行区分的。同时,SQL语句中也是通过对象的名字来对对象进行处理的。关系数据库中最基本的对象包括三个:表、列和用户(用户名一般都使用用户自己的名字或自己喜欢的名称)。1、表名表是关系数据库的最基本对象,数据库中的数据就是存储在表中的。每个表都有自己的名字,以便SQL语句能对表中数据进行操作。通常,表名应该是短而且具有很好的描述性的字符串,能够比较直观的反应表中存储的数据的内容和表的用途。一般来说,表的命名有统一标准,这样可以保证表名不会发生冲突。当然,大部分的数据库系统允许不同的用户创建名称相同的表。2、列名列名也称作字段名。在创建表时,我们为表
2、中的每一列指定了一个名字,这样以后对表中数据的访问就可以通过列名来指定所要访问的列。通常,列名也应该是短而且具有很好的描述性的字符串,能够比较直观的反应列中存储的数据的内容。当SQL语句涉及不同表中相同名称的两个列时,也必须限定列名来指定所访问的列。二、数据类型 关系数据库提供了很大范围的数据类型供用户使用,包括字符串数据类型、数字数据类型、时间数据类型及大型对象。1、数字数据类型 数字数据类型在使用时不必包围在单引号中。数字类型数据可以直接在数学表达式中使用。一般来说,数字数据类型可以分成两类:整数数据类型:整数数据类型只存储整数,通常叫做INTEGER、INT、NUMBER等。这种数据类型
3、的列一般存储的是计数值、数量或年龄等等。所有的关系数据库系统都提供了对算术运算符的支持,提供了用于整数计算的聚集函数以计算所有数值的最大值、最小值、总值、平均值以及计数值。浮点数数据类型:浮点数数据类型存储的是浮点数,通常称精确的小数数字为DECIMAL或NUMERIC,一般的浮点数称为FLOAT、REAL等。对于精确小数我们通常可以定义它们的精度(小数点两边数字的个数)和位数(小数点后数字的个数)。在不同的关系数据库系统中,精确小数的精度和位数的定义可能会有所变化。二、数据类型2、字符串数据类型 字符串数据类型用于存储字母、数字和特殊字符。在使用时,必须为字符串加上单引号。一般来说,字符串数
4、据类型有两种基本形式:固定长度字符串:对于固定长度的字符串,不论它们中实际上存放的数据是多长,在内存中总是占据相同的空间,系统会自动的插入固定的字符来添满剩余的空间。通常称作CHAR。一般来说,在定义固定长度字符串时,必须根据实际情况指定字符串的长度,以保证字符串的长度足够使用,又不至于造成存储空间的浪费;可变长度字符串:只有固定长度的字符串是不够的,在实际应用中,很多情况下无法明确确定所需字符串的长度。在可变长度字符串中,存放的长度允许不同,只要不超过系统支持的最大限制。通常称作VARCHAR。二、数据类型3、时间数据类型 时间数据类型通常包括日期和时间。用于存储日期、时间、时间与日期的组合
5、。象其它数据类型一样,日期和时间的值也存储在列表中。在SQL标准中有3种用来存储日期和时间的数据类型:(1)DATE:用于存储日期数据。其格式为:YYYY(yaer)-MM(month)-DD(day)有效范围为:0001-01-01到9999-12-31。(2)TIME:用于存储时间数据。其格式为:HH:MI:SS.nn.有效范围为:00:00:00.到23:59:61.999.。(3)TIMESTAMP:用于存储日期和时间数据。其格式为:YYYY-MM-DD HH:MI:SS.nn.有效范围为:0001-01-01 00:00:00.到 9999-12-31 23:59:61.999.。三
6、、数据类型 在许多编程语言中都您都可以很好的使用常量。同样的,在SQL中也提供了对常量的支持,以方便用户更好更灵活的使用SQL语句。SQL支持数字、字符串、时间和日期、符号常量等四种常量。1、数字常量 整数和浮点数类型的数据都可以作为常量使用。2、字符串常量 SQL标准中规定,字符串常量要包括在单引号中。3、时间和日期常量 在使用时,也应当将时间和日期常量用单引号包括在内。4、符号常量 除了上面的三种用户使用的常量外,SQL语言还包含了许多特殊的符号常量,如CURRENT_DATE、CURRENT_TIME、USER、SYSTEM_USER、SESSION_USER等等。这些都是在当前数据库系
7、统中使用得比较多的,也很有用的符号常量。四、语句 每条SQL语句均由一个关键字开头,这个关键字描述了这条语句要产生的动作,如SELECT、CREATE、INSERT、UPDATE等关键字都描述了SQL语句将要执行的动作。每个关键字后都跟了一个子句,子句可以指定语句产生作用的数据,也可以提供语句作用的更详细的情况。子句可以包含表名、字段名,还可以包含表达式、常量及其它的一些关键字(如AND、NOT、OR等)。四、语句1、语句的分类 数据定义类CREATE DATABASE 创建数据库;CREATE TABLE 创建表DROP TABLE 删除表ALTER TABLE 修改表的结构CREATE V
8、IEW 创建视图DROP VIEW 删除视图CREATE INDEX 创建索引DROP INDEX 删除索引 INSERT 添加记录UPDATE 修改记录DELETE 删除记录SELECT 检索数据 GRANT 授予权限REVOKE 分配权限 COMMIT 提交事务ROLLBACK 取消事务 数据操作类访问控制类事务控制类四、语句2、语句的规则 (1)SQL是一门格式自由的语言,既不要求在一行放置的单词数,也不要求断行的地方。(2)在SQL语句中,总体上说,并不区分大小写。(3)在SQL中也包含了括号的使用 单词或花括号()表示至少必须选择一个选项。若选项之间用逗号分隔,则可以选择一个选项也可
9、以选择多个选项。如果选项用竖线(|)分隔,就只能选择一个选项。方括号()表示是一个可选项。若选项用竖线分隔,则可以选择一个,也可以不选择。而如果用逗号分隔,则可以不选择,也可以选择一个或选择多个。省略号(.)用来表示可以无限的重复最后的选项。五、表达式 一个表达式返回一个值,不仅可以用来计算查询返回的数据,而且还可以用于限制查询返回的行的筛选条件中。表达式中可以包含的数据类型非常广泛,数据库中基本的数据类型,如数字数据类型、字符串数据类型、时间和日期数据类型等,都可以在表达式中使用。SQL标准中规定了四种能用于表达式中的符号:加号(+)、减号(-)、乘号(*)和除号(/)。在SQL中,这四种算
10、术运算的优先权与数学中的优先权相同,乘除的优先权高于加减的优先权,乘除具有相同的优先权,加减之间也具有相同的优先权。它们都可以在同一表达式种使用,具有相同优先权的运算符按照从左到右的顺序来计算。另外,在表达式中我们还可以使用比较操作符(=,=,=)、逻辑操作符(AND,OR,NOT)等很多其它的操作符。算术操作符是在表达式中使用比较简单的一种。包含其它操作符的表达式我们将在后面的章节中进行介绍。六、内嵌函数 在SQL标准中定义了很多的内嵌函数,这些内嵌函数的使用可以大大的提高我们在SQL语句中操纵信息的能力,使得我们SQL语句的使用有了更大的灵活性。聚集函数:聚集函数也称为“分组函数”,因为聚
11、集函数在对数据进行分组时最经常使用。主要用于对数据进行聚集,以便用户进行特定的查询。时间和日期函数:时间和日期在现在的数据库中的使用很频繁。SQL中也定义了很多时间和日期函数,可以很方便的进行时间和日期的显示、比较、修改和格式转换。算术函数:在数据库中进行检索数据时,常常要进行数学计算。字符函数:字符串是数据库中使用的较多的数据类型,对很多数据的存储都要使用到字符串。转换函数:为了便于进行数据的转换处理,SQL也为用户提供了一些转换函数,以方便用户在需要时可以进行一些数据的转换。七、NULL 在实际的数据库中,数据常常会不可避免的出现丢失、不可知或不可用的情况。例如,在Company数据库中,
12、对一项工程可能还没有确定具体的完工日期,这种信息的缺失使得表中缺少了内容。您可能会试图用数值0来进行填充,但是这种处理并不是非常准确,因为工程的具体完工日期仅仅只是未知而已。在数据库中,缺少一些内容并不是真正的问题,真正的问题是这些缺失可能会给数据库带来危险,导致数据库的完整性出现问题。例如,在Employee表中工作人员的地址、生日等列的信息缺少是可以允许的,比如工作人员刚加入公司而还没有确定地址,这些信息的缺失并不会给数据库带来危险。而由于公司中每个工作人员都只有唯一的ID号,职员ID号的缺失将导致无法区分工作人员记录,使数据库的完整性出现问题。因此,数据库中提供了NULL来处理缺失的问题。通过规定表中的列是否允许空值,明确的表明该列是否支持丢失、不可知或不可用的数据。SQL标准中规定了在不同的SQL语句和子句中一组处理NULL值的特殊规则。本章小结:掌握表名和列名的定义方法掌握数据类型和常量的种类以及使用方法了解语句、表达式的分类和使用方法