当前位置:首页 » 编程语言 » sql语句ll是啥意思
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句ll是啥意思

发布时间: 2023-03-02 09:59:06

Ⅰ 如何在sql语句中使用正则表达式

sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数。

1、regexp_like:

regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:

'c' 说明在进行匹配时区分大小写(缺省值);

'i' 说明在进行匹配时不区分大小写;

'n' (.)点号能表示所有单个字符,包括换行(俺还不知道什么地方有用到换行.只知道sql里面可以用chr(10)表示换行、

'm' 字符串存在换行的时候当作多行处理.这样$就可匹配每行的结尾.不然的话$只匹配字符串最后的位置、

示例:

select * from emp where regexp_like(ename,'^a[a-z]*n$');

可以查找ename中以a开头以n结尾的行.例如ename为arwen或arwin或anden.但Arwen不能被匹配.因为默认是区分大小写.如果是

select * from emp where regexp_like(ename,'^a[a-z]*n$','i')

则可以查找ename为Arwen的行记录。

2、regexp_instr:

REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]])用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数 INSTR(),参数相关:

'start' 开始查找的位置;

'occurrence' 说明应该返回第几次出现pattern的位置;

'return_option' 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后 的字符的位置;

'match_option' 修改默认的匹配设置.与regexp_like里面的相同.

示例:

DECLARE

V_RESULT INTEGER ;

BEGIN

SELECT REGEXP_INSTR('hello world','o',1,1,0) INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为5,即字母o第一个次出现的位置。

如果regexp_instr('hello world','o',1,1,n)其中n为除0之外的整数。比如1,3。则结果为6.表示第一次出现字母o的后面一个字符的位置。

如果regexp_instr('hello world','o',1,2,0)则结果为9.表示第二次出现字母o的位置.

3、regexp_replace:

REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数 REPLACE(),参数同REGEXP_INSTR函数

示例:

DECLARE

V_RESULT varchar2(90);

BEGIN

SELECT REGEXP_REPLACE('hello world','o','x',1,1) INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为hellx world.

如果REGEXP_REPLACE('hello world','o','x'),则结果为hellx wxrld.

如果 REGEXP_REPLACE('hello world','o','x',1,2)则结果为hello wxrld.

4、regexp_substr:

REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用于在x中查找pattern并返回。可以参考字符串函数 SUBSTR(),参数同REGEXP_INSTR函数.

例如:

DECLARE

V_RESULT VARCHAR2(255);

BEGIN

SELECT REGEXP_SUBSTR('hello world','l{2}') INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END ;

结果为ll

查询到匹配的字符串才返回匹配的字符.没查到就返回空。

Ⅱ sql中,dml,dcl,dql,ddl分别代表什么意思

1,DML(DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据)

2,DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别;

3,DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据);

4,DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象:库、表、列等。

(2)sql语句ll是啥意思扩展阅读

DML分成交互型DML和嵌入型DML两类。

依据语言的级别,DML又可分成过程性DML和非过程性DML两种。

如insert,delete,update,select(插入、删除、修改、检索)等都是DML.

交互型DML:这类DML自成系统,可在终端上直接对数据库进行操作。

嵌入型DML:这类DML是嵌入在主语言中使用。此时主语言是经过扩充能处理DML语句的语言。

过程性DML:用户编程时,不仅需要指出“做什么”(需要什么样的数据),还需要指出“怎么做”(怎么获得数据)。层状、网状的DML属于过程性语言。

非过程性DML:用户编程时,只需要指出“做什么”,不需要指出“怎么做”。关系型DML属于非过程性语言。

Ⅲ sql语句求详细解释

整个语句结构是这样的
select case when then end from ldsysvar where sysvar = ''onerow'''

如果 (select nvl(sum(case factorcode when ''D001'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?'')>0 那么 least(?je_gf?,?je_gf?+(select nvl(sum(case factorcode when ''D002'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?''), ?amnt?-?compensatetysumpay?) 否则 least((?je_gf?+(select nvl(sum(case factorcode when ''D002'' then factorvalue end),0)
from llotherfactor where feeitemtype=''D'' and clmno=''?CaseNo?''))*0.8,?je_gf?,?amnt?-?compensatetysumpay?)

Ⅳ SQL语句是什么

SQL全称是“结构化查询语言(Structured Query Language)” SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 SQL同时也是数据库脚本文件的扩展名。 SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。 结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。 美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。 SQL语言包含4个部分: ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。 ※ 数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。 ※ 数据查询语言(DQL),例如:SELECT语句。 ※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。 SQL语言包括三种主要程序设计语言类别的陈述式:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。[编辑本段]SQL发展历史 1970: E.J. Codd 发表了关系数据库理论(relational database theory); 1974-79: IBM 以Codd的理论为基础开发了“Sequel”,并重命名为"SQL"; 1979: Oracle 发布了商业版SQL 1981-84: 出现了其他商业版本,分别来自 IBM(DB2),Data General(DG/SQL),Relational Technology(INGRES); SQL/86:ANSI 跟 ISO的第一个标准; SQL/89:增加了引用完整性(referential integrity); SQL/92(aka SQL2):被数据库管理系统(DBMS)生产商广发接受; 1997+:成为动态网站(Dynamic web content)的后台支持; SQL/99:Core level跟其他8种相应的level,包括递归查询,程序跟流程控制,基本的对象(object)支持包括oids; SQL/2003:包含了XML相关内容,自动生成列值(column values); 2005-09-30:“Data is the next generation inside...SQL is the new HTML”! Tim O'eilly提出了Web 2.0理念,称数据将是核心,SQL将成为“新的 HTML"; SQL/2006:定义了SQL与XML(包含XQuery)的关联应用; 2006:Sun公司将以SQL基础的数据库管理系统嵌入Java V6

Ⅳ 数据库sql中的运算符=ALL是什么意思

ALL为一个结果集,=ALL,即等于结果集中所有值。
例表 :
table_a
a
1
2
3
4
-----------------------------------------------
table_b
a
1
select * from table_a where a = all(select a from table_b)
语句等效于
select * from table_a where a = 1
检索结果为:1
--------------------------------------------
table_c
a
1
1
select * from table_a where a = all(select a from table_c)
语句等效于
select * from table_a where a = 1
检索结果为:1
---------------------------------------
table_d
a
1
2
select * from table_a where a = all(select a from table_d)
则返回结果集为空
---------------------------------------------------
以上的例子,即a列的值与 all结果集所以的值对比。

而实际应用中,ALL更常与 ‘>’ ,‘< ’运算符组合,来选择一个范围内的数据。

Ⅵ SQL语句是什么意思

以下摘自网络 SQL基本语句 来自:SQL编程技巧
掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。

在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。

INSERT语句

用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:

INSERT INTO EMPLOYEES VALUES

('Smith','John','1980-06-10',

'Los Angles',16,45000);

通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。

回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。

同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。

对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。

既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分:

INSERT INTO EMPLOYEES VALUES

('Bunyan','Paul','1970-07-04',

'Boston',12,70000);

INSERT INTO EMPLOYEES VALUES

('John','Adams','1992-01-21',

'Boston',20,100000);

INSERT INTO EMPLOYEES VALUES

('Smith','Pocahontas','1976-04-06',

'Los Angles',12,100000);

INSERT INTO EMPLOYEES VALUES

('Smith','Bessie','1940-05-02',

'Boston',5,200000);

INSERT INTO EMPLOYEES VALUES

('Jones','Davy','1970-10-10',

'Boston',8,45000);

INSERT INTO EMPLOYEES VALUES

('Jones','Indiana','1992-02-01',

'Chicago',NULL,NULL);

在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需认为NULL表示一种未知的值。

有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:

INSERT INTO EMPLOYEES(

FIRST_NAME, LAST_NAME,

HIRE_DATE, BRANCH_OFFICE)

VALUE(

'Indiana','Jones',

'1992-02-01','Indianapolis');

这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL操作将失败。

让我们来看一看上述INSERT语句的语法图:

INSERT INTO table

[(column { ,column})]

VALUES

(columnvalue [{,columnvalue}]);

和前一篇文章中一样,我们用方括号来表示可选项,大括号表示可以重复任意次数的项(不能在实际的SQL语句中使用这些特殊字符)。VALUE子句和可选的列名列表中必须使用圆括号。

SELECT语句

SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。

SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中。在直接SQL(direct SQL)中,它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他SQL语句来将结果放到一个已知名称的表中。

SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。

SELECT语句最简单的语法如下:

SELECT columns FROM tables;

当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。

让我们看一下使用图1中EMPLOYEES表的一些例子(这个表是我们以后所有SELECT语句实例都要使用的。而我们在图2和图3中给出了查询的实际结果。我们将在其他的例子中使用这些结果)。

假设你想查看雇员工作部门的列表。那下面就是你所需要编写的SQL查询:

SELECT BRANCH_OFFICE FROM EMPLOYEES;

以上SELECT语句的执行将产生如图2中表2所示的结果。

由于我们在SELECT语句中只指定了一个列,所以我们的结果表中也只有一个列。注意结果表中具有重复的行,这是因为有多个雇员在同一部门工作(记住SQL从所选的所有行中将值返回)。要消除结果中的重复行,只要在SELECT语句中加上DISTINCT子句:

SELECT DISTINCT BRANCH_OFFICE

FROM EMPLOYEES;

这次查询的结果如表3所示。

现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果:

SELECT DISTINCT BRANCH_OFFICE

FROM EMPLOYEES

ORDER BY BRANCH_OFFICE ASC;

这一查询的结果如表4所示。请注意在ORDER BY之后是如何放置列名BRANCH _OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不显示出来。列名BRANCH_ OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降序排列,那么可以用关键字DESC。

同样我们应该指出ORDER BY子句只将临时表中的结果进行排序;并不影响原来的表。

假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列表。以下是你将要用到的语句:

SELECT BRANCH_OFFICE,FIRST_NAME,

LAST_NAME,SALARY,HIRE_DATE

FROM EMPLOYEES

ORDER BY SALARY DESC,

HIRE_DATE DESC;

这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将被按照第二列进行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三列进行排序……如此类推。这次查询的结果如表5所示。

将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表中所有的列时使用*号:

SELECT * FROM EMPLOYEES;

这次查询返回整个EMPLOYEES表,如表1所示。

下面我们对开始时给出的SELECT语句的语法进行一下更新(竖直线表示一个可选项,允许在其中选择一项。):

SELECT [DISTINCT]

(column [{, columns}])| *

FROM table [ {, table}]

[ORDER BY column [ASC] | DESC

[ {, column [ASC] | DESC }]];

定义选择标准

在我们目前所介绍的SELECT语句中,我们对结果表中的列作出了选择但返回的是表中所有的行。让我们看一下如何对SELECT语句进行限制使得它只返回希望得到的行:

SELECT columns FROM tables [WHERE predicates];

WHERE子句对条件进行了设置,只有满足条件的行才被包括到结果表中。这些条件由断言(predicate)进行指定(断言指出了关于某件事情的一种可能的事实)。如果该断言对于某个给定的行成立,该行将被包括到结果表中,否则该行被忽略。在SQL语句中断言通常通过比较来表示。例如,假如你需要查询所有姓为Jones的职员,则可以使用以下SELECT语句:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones';

LAST_NAME = 'Jones'部分就是断言。在执行该语句时,SQL将每一行的LAST_NAME列与“Jones”进行比较。如果某一职员的姓为“Jones”,即断言成立,该职员的信息将被包括到结果表中(见表6)。

使用最多的六种比较

我们上例中的断言包括一种基于“等值”的比较(LAST_NAME = 'Jones'),但是SQL断言还可以包含其他几种类型的比较。其中最常用的为:

等于 =

不等于 <>

小于 <

大于 >

小于或等于 <=

大于或等于 >=

下面给出了不是基于等值比较的一个例子:

SELECT * FROM EMPLOYEES

WHERE SALARY > 50000;

这一查询将返回年薪高于$50,000.00的职员(参见表7)。

逻辑连接符

有时我们需要定义一条不止一种断言的SELECT语句。举例来说,如果你仅仅想查看Davy Jones的信息的话,表6中的结果将是不正确的。为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT。为了只得到职员Davy Jones的记录,用户可以输入如下语句:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';

在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符:

SELECT * FROM EMPLOYEES

WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';

有时定义一个断言的最好方法是通过相反的描述来说明。如果你想要查看除了Boston办事处的职员以外的其他所有职员的信息时,你可以进行如下的查询:

SELECT * FROM EMPLOYEES

WHERE NOT(BRANCH_OFFICE = 'Boston');

关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定。如果某一职员所在部门的办事处在Boston,括号内的表达式返回true,但是NOT操作符将该值取反,所以该行将不被选中。

断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括号将它们括起来:

SELECT * FROM EMPLOYEES

WHERE (LAST_NAME = 'Jones'

AND FIRST_NAME = 'Indiana')

OR (LAST_NAME = 'Smith'

AND FIRST_NAME = 'Bessie');

SQL沿用数学上标准的表达式求值的约定—圆括号内的表达式将最先进行求值,其他表达式将从左到右进行求值。

以上对逻辑连接符进行了说明,在对下面的内容进行说明之前,我们再一次对SELECT语句的语法进行更新:

SELECT [DISTINCT]

(column [{, column } ] )| *

FROM table [ { , table} ]

[ORDER BY column [ASC] | [DESC

[{ , column [ASC] | [DESC } ] ]

WHERE predicate [ { logical-connector predicate } ];

NULL和三值逻辑

在SQL中NULL是一个复杂的话题,关于NULL的详细描述更适合于在SQL的高级教程而不是现在的入门教程中进行介绍。但由于NULL需要进行特殊处理,并且你也很可能会遇到它,所以我们还是简略地进行一下说明。

首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年薪未知的职员的全部信息,用户可以使用如下SELECT语句:

SELECT * FROM EMPLOYEES

WHERE SALARY IS NULL;

相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:

SELECT * FROM EMPLOYEES

WHERE SALARY IS NOT NULL;

请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形式:COLUMN = NULL、COLUMN <> NULL或是逻辑操作符NOT(NULL)。

这种形式相当简单。但当你不明确地测试NULL(而它们确实存在)时,事情会变得很混乱。

例如,回过头来看我们图1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等级或年薪值都是未知的。这两个列都包含NULL。可以想象运行如下的查询:

SELECT * FROM EMPLOYEES

WHERE GRADE <= SALARY;

此时,Indiana Jones应该出现在结果表中。因为NULL都是相等的,所以可以想象它们是能够通过GRADE小于等于SALARY的检查的。这其实是一个毫无疑义的查询,但是并没有关系。SQL允许进行这样的比较,只要两个列都是数字类型的。然而,Indiana Jones并没有出现在查询的结果中,为什么?

正如我们早先提到过的,NULL表示未知的值(而不是象某些人所想象的那样表示一个为NULL的值)。对于SQL来说意味着这个值是未知的,而只要这个值为未知,就不能将其与其他值比较(即使其他值也是NULL)。所以SQL允许除了在true 和false之外还有第三种类型的真值,称之为“非确定”(unknown)值。

如果比较的两边都是NULL,整个断言就被认为是非确定的。将一个非确定断言取反或使用AND或OR与其他断言进行合并之后,其结果仍是非确定的。由于结果表中只包括断言值为“真”的行,所以NULL不可能满足该检查。从而需要使用特殊的操作符IS NULL和IS NOT NULL。

UPDATE语句

UPDATE语句允许用户在已知的表中对现有的行进行修改。

例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。

UPDATE EMPLOYEES

SET GRADE = 16, SALARY = 40000

WHERE FIRST_NAME = 'Indiana'

AND LAST_NAME = 'Jones';

上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行操作。满足WHERE条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你可以使用如下语句:

UPDATE EMPLOYEES

SET BRANCH_OFFICE = 'New York'

WHERE BRANCH_OFFICE = 'Boston';

如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。

UPDATE语句的语法流图如下面所示:

UPDATE table

SET column = value [{, column = value}]

[ WHERE predicate [ { logical-connector predicate}]];

DELETE语句

DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所有职员,这一卑鄙的工作可以由以下这条语句来实现:

DELETE FROM EMPLOYEES

WHERE BRANCH_OFFICE = 'Los Angeles';

如同UPDATE语句中一样,省略WHERE子句将使得操作施加到表中所有的行。

DELETE语句的语法流图如下面所示:

DELETE FROM table

[WHERE predicate [ { logical-connector predicate} ] ];

现在我们完成了数据操作语言(DML)的主要语句的介绍。我们并没有对SQL能完成的所有功能进行说明。SQL还提供了许多的功能,如求平均值、求和以及其他对表中数据的计算,此外SQL还能完成从多个表中进行查询(多表查询,或称之为连接)的工作。这种语言还允许你使用GRANT和REVOKE命令控制使用者的数据访问权限。

Ⅶ sql是什么意思

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。

所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

用途:更新表中原有数据

单独使用,使用where匹配字段。

例:

“Person”表中的原始数据:

LastName FirstName Address City。

Nilsen Fred Kirkegt 56 Stavanger。

Rasmussen Storgt 67。

运行下面的SQL将Person表中LastName字段为”Rasmussen”的FirstName更新为”Nina”。

UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'。

Ⅷ SQL语句是什么意思

定义
:sql
语句就是对数据库进行操作的一种语言。
几个简单的基本的sql语句:选择:select
*
from
table1
where
范围

插入:insert
into
table1(field1,field2)
values(value1,value2)

删除:delete
from
table1
where
范围

更新:update
table1
set
field1=value1
where
范围

查找:select
*
from
table1
where
field1
like
’%value1%’
(所有包含‘value1’这个模式的字符串)---like的语法很精妙,查资料!

排序:select
*
from
table1
order
by
field1,field2
[desc]

总数:select
count(*)
as
totalcount
from
table1

求和:select
sum(field1)
as
sumvalue
from
table1

平均:select
avg(field1)
as
avgvalue
from
table1

最大:select
max(field1)
as
maxvalue
from
table1

最小:select
min(field1)
as
minvalue
from
table1[separator]