程序员

首页 » 常识 » 问答 » SQL程序员必备技能语言之一下
TUhjnbcbe - 2023/9/30 15:01:00
河南白癜风微信交流群 http://www.guanxxg.com/news/roll/1564657.html

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

结构化查询语言中的五种数据类型包括:字符型,文本型,数值型,逻辑型和日期型。

字符型

VARCHARVSCHAR

结构化查询语言图片VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于的字符。

假如你向一个长度为四十个字符的VARCHAR型字段中输入数据BillGates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串BillGates的长度。假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。

超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架

当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。

VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要。

文本型

TEXT

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

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

当你从HTMLFORM的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型字段中。但是,无论何时,只要你能避免使用文本型字段,你就应该不使用它。文本型字段既大且慢,滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间。

一旦你向文本型字段中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。除非删除该记录,否则你无法收回这部分存储空间。

数值型

整数INT、小数NUMERIC、钱数MONEY

INTVSSMALLINTVSTINYINT

通常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。另一方面,一旦你已经创建了一个字段,要修改它是很困难的。因此,为安全起见,你应该预测一下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。

结构化查询语言NUMERIC

为了能对字段所存放的数据有更多的控制,你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多。一个NUMERIC型字段可以存储从-10^38到10^38范围内的数。NUMERIC型数据还使你能表示有小数部分的数。例如,你可以在NUMERIC型字段中存储小数3.14。

MONEYVSSMALLMONEY

你可以使用INT型或NUMERIC型数据来存储钱数。但是,专门有另外两种数据类型用于此目的。如果你希望你的网点能挣很多钱,你可以使用MONEY型数据。如果你的野心不大,你可以使用SMALLMONEY型数据。MONEY型数据可以存储从-,,,,.到,,,,.的钱数。如果你需要存储比这还大的金额,你可以使用NUMERIC型数据。

SMALLMONEY型数据只能存储从-,.到,.的钱数。同样,如果可以的话,你应该用SMALLMONEY型来代替MONEY型数据,以节省空间。

逻辑型

BIT

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

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

日期型

DATETIMEVSSMALLDATETIME

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

如果你不需要覆盖这么大范围的日期和时间,你可以使用SMALLDATETIME型数据。它与DATETIME型数据同样使用,只不过它能表示的日期和时间范围比DATETIME型数据小,而且不如DATETIME型数据精确。一个SMALLDATETIME型的字段能够存储从年1月1日到年6月6日的日期,它只能精确到秒。

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

结构化查询语言的语言特点包括:

1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。

2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。

3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。[1]

4.语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。

简单的Transact-结构化查询语言查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。

选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

FROM子句

FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定个表或视图,它们之间用逗号分隔。

在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。

WHERE子句

WHERE子句设置查询条件,过滤掉不需要的数据行。

WHERE子句可包括各种条件运算符:

比较运算符(大小比较)、范围运算符(表达式值是否在指定的范围)、列表运算符(判断表达式是否为列表中的指定项)、模式匹配符(判断值是否与指定的字符通配格式相符)、空值判断符(判断表达式是否为空)、逻辑运算符(用于多条件的逻辑连接)。

但学习SQL也有一个非常讨厌的问题:上手容易,深入却很难。比如:大部分人只会简单的SQL,面对稍微复杂一点的数据需求,就不知道该怎么写了。

不仅如此,SQL的语言设计原则是你告诉我做什么,我来决定怎么做,现实的系统显然没有那么智能,很多时候大家虽然写出了正确的SQL,引擎的查询性能却异常低效,往往成为工作中的”绊脚石“。

甚至一些后端开发工程师都对SQL还不够熟练,仍在学习,就更别提我们大多数人了。

所以,想要深地学习SOL得下点苦功夫。

1
查看完整版本: SQL程序员必备技能语言之一下