SQL

*SQL

 

sql--structured query language(结构化查询语言)

 

定义:一种对关系数据库中的数据进行定义和操作的句法,

为大多数关系数据库管理系统所支持的工业标准。

 

结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。

它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,

所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言语言作为数据输入与管理的接口。

结构化查询语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

 

--------------------------------------------------------------------------------------------------------------

 

*结构化查询语言包含6个部分:

 

一:数据查询语言(DQL):

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。

保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAⅥNG。

这些DQL保留字常与其他类型的SQL语句一起使用。

 

二:数据操作语言(DML):

其语句包括动词INSERT,UPDATE和DELETE。

它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

 

三:事务处理语言(TPL):

它的语句能确保被DML语句影响的表的所有行及时得以更新。

TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

 

四:数据控制语言(DCL):

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。

某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

 

五:数据定义语言(DDL):

其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);

为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

 

六:指针控制语言(CCL):

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

 

---------------------------------------------------------------------------------------------------------------

 

*数据类型:

 

1. 字符型  VARCHAR VS CHAR

VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。

 

假如你向一个长度为四十个字符的VARCHAR型字段中输入数据BIll GAtES。

当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。

现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。

字符串的后面会被附加多余的空格。

 

当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。

使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。

 

VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。

当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要

 

2. 文本型    TEXT

使用文本型数据,你可以存放超过二十亿个字符的字符串。当你需要存储大串的字符时,应该使用文本型数据。

注意文本型数据没有长度,而字符型数据是有长度的。一个文本型字段中的数据通常要么为空,要么很大。

当你从HTML FORM的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型字段中。

但是,无论何时,只要你能避免使用文本型字段,你就应该不适用它。文本型字段既大且慢,滥用文本型字段会使服务器速度变慢。

文本型字段还会吃掉大量的磁盘空间。

一旦你向文本型字段中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。

除非删除该记录,否则你无法收回这部分存储空间。

 

3. 数值型

   整数INT 、小数NUMERIC、钱数MONEY

 

通常,为了节省空间,应该尽可能的使用最小的整型数据。

 

*整数

TINYINT vs INT

一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。

这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。

另一方面,一旦你已经创建了一个字段,要修改它是很困难的。

因此,为安全起见,你应该预测以下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。

 

*小数

NUMERIC vs INT

为了能对字段所存放的数据有更多的控制,你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。

NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多。

一个NUMERIC型字段可以存储从-1038到1038范围内的数。

NUMERIC型数据还使你能表示有小数部分的数。例如,你可以在NUMERIC型字段中存储小数3.14。

 

*钱数

MONEY vs SMALLMONEY

你可以使用 INT型或NUMERIC型 数据来存储钱数。

但是,专门有另外两种数据类型用于此目的。

如果你希望你的网点能挣很多钱,你可以使用MONEY型数据。

如果你的野心不大,你可以使用SMALLMONEY型数据。

MONEY型数据可以存储从-922,337,203,685,477.5808到922,337,203,685,477.5807的钱数。

如果你需要存储比这还大的金额,你可以使用NUMERIC型数据。

SMALLMONEY型数据只能存储从-214,748.3648到214,748.3647 的钱数。

同样,如果可以的话,你应该用SMALLMONEY型来代替MONEY型数据,以节省空间。

 

4. 逻辑型    BIT

 

如果你使用复选框(CHECKBOX)从网页中搜集信息,你可以把此信息存储在BIT型字段中。BIT型字段只能取两个值:0或1。

当心,在你创建好一个表之后,你不能向表中添加 BIT型字段。如果你打算在一个表中包含BIT型字段,你必须在创建表时完成。

 

5. 日期型  DATETIME vs SMALLDATETIME

 

一个 DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。

如果你不需要覆盖这么大范围的日期和时间,你可以使用SMALLDATETIME型数据。

它与DATETIME型数据同样使用,只不过它能表示的日期和时间范围比DATETIME型数据小,而且不如DATETIME型数据精确。

一个SMALLDATETIME型的字段能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到秒。

DATETIME型字段在你输入日期和时间之前并不包含实际的数据,认识这一点是重要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值