全面接触SQL语法

MySQL 联表查询去重 & 解决 DISTINCT 异常:Expression #1 of ORDER BY clause is not in SELECT list, references... MySQL 联表查询去重 & 解决 DISTINCT 异常:Caused by: java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list, references column 'xxx.x.sort_num' which is not in SELECT list; this is incompatible with DISTINCT 阅读详情

全面接触SQL语法

SQL功能与特性

其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:

(一)建立数据库的表格。(包括设置表格所可以使用之空间)

(二)改变数据库系统环境设置。

(三)针对某个数据库或表格,授予用户存取权限。

(四)对数据库表格建立索引值。

(五)修改数据库表格结构。(新建、删除或是修改表格字段)

(六)对数据库进行数据的新建。

(七)对数据库进行数据的删除。

(八)对数据库进行数据的修改。

(九)对数据库进行数据的查询。

这几项便是通过SQL命令可以完成的事情,看起来是不是比起“查询”两个字所代表的功能要多的多了呢?

SQL语法的分类

其实SQL命令并不是非常多,可是要把SQL用到出神入化,却也只需要短短几个命令便够,因为SQL命令是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,以下将针对在VB中常用的SQL语法基本命令加以分类介绍。在说明SQL的命令以及使用语法之前,以下将SQL做了的分类,在致上SQL语法所使用到的类型,可以说都已包含在这些类别当中。

第一类、属性词(Predicates)

在SQL命令中用来指明所要选择的记录的方式。如ALL、TOP与DISTINCT等等。

第二类、声明(Declaration)

针对SQL Parameter或Parameter Query的名称与数据类型做声明,如PARAMETERS的声明等等。

第三类、条件子句(Clause)

在SQL的查询中,利用一些表达式定义出查询的条件,以缩小寻找的范围,如WHERE。

第四类、运算符(Operator)与操作数(Operation)

在SQL的查询中,与Operation共同组成表达式(Expression),如BETWEEN....AND运算符与INNER JOIN操作数。

第五类、函数(Function)

一些SQL常见的函数,像是AVG()是求算数平均数的函数。

第六类、SQL语句(Statement)

SQL的语句,可以说是SQL语法的主体,用来对某一个特定的数据库发出指示,并返回相关的数据,而SQL的语法结构,基本上可以利用下面

的式子来表示:命令+条件子句

例如:

SELECT*FROMTAB WHERE TAB.NAME='A'

其中的“FROM....WHERE”便是一个条件子句,其实SQL的语法并不难,您只需记住这样的一个规则,相信可以很快的了解SQL用法。

SQL语法与命令

SELECT语句

SELECT[predicate]{*|table.*|[table.]field[,[table.]field2[,...]]} [AS alias1 [,alias2[,...]]]

FROMtableexpression [,...][IN externaldatabase]

[WHERE...]

[GROUPBY...]

[HAVING...]

[ORDERBY...]

[WITHOWNERACCESS OPTION]

SELECT语句包括下面几个部分

predicate

如前面所述,包括了ALL,DISTINCT,DISTINCTROW,与TOP我们可以利用这样的语句去限制查询后所得的结果。

*

从指定表格中指定所有的字段。

table

针对被选择出的记录的字段,所指定表格的名称。

field1,field2

想要读取数据的字段名称,如果包含了一个以上的字段,会依照列出的顺序来读取数据。

alias1,alias2

用来替代在表格实际字段名称的化名。

tableexpression

表格名称或包含我们所想要的数据的表格。

externaldatabase

若使用到不是目前的数据库则将其名字定义在externaldatabase当中。

ALL,DISTINCT,DISTINCTROW,TOP属性词用法

SELECT [ALL|DISTINCT|DISTINCTROW|[TOPn[PERCENT]]] FROM table

ALL

若是您不指定任何的字段数据,则Microsoft Jet数据库引擎(database engine)将会选择所有的字段,并依据所定的条件查询出需求数据集。

全面接触SQL语法(2)

例如下面这两个例子将会具有相同的效果,都会从职员表格中返回所有字段的数据。

例如:

若是我们要查询出职员表格中的所有记录,可以通过下面的语句来完成。

SELECT ALL*FROM职员表格; DISTINCT

对某个表格所选择的字段数据,略过重复的情况,也就是说,针对某个字段查询出来的记录结果是唯一的。例如有许多存放在职员表格的职员

数据,也许会具有相同的姓名,所以若是我们用SQL语句中的SELECT DISTINCT,则查询出来的结果将会针对不一样的姓名加以筛选。若是您把

DISTINCT加以省略,则这样的查询会显示所有的记录。

DISTINCTROW

将整条记录重复的记录忽略掉,而不是只有针对某一个字段的数据。

table

指定查询记录所需要的表格。

例如:

SELECTDISTINCTROW公司名称

FROM顾客表格 INNER JOIN订单表格

ON顾客表格.顾客ID=订单表格.顾客ID

ORDER BY公司名称;

如果您忽略 DISTINCTROW则会对每个公司产生一行以下的订单数据。此外,若是DISTINCTROW只有用在一个表格当中,则会被省略掉。

TOP

从第一条或最后一条开始(利用ORDER BY条件子句),返回特定条数的数据。

例如:

当您想要知道在2000年,班上前25名的学生姓名数据时,您可以输入这样的语句:

SELECT TOP25学生姓名

FORM学生表格

WHERE毕业年份=1994

ORDER BY毕业成绩平均分数 DESC;

如果您没有加上ORDER BY这行条件的话,您所得到的数据,将会随机的数据。此外,在TOP语句之后,除了可以加上数字以外,还可以利用保留

字PERCENT来查询。

例如:

SELECT TOP10 PERCENT学生姓名

FROM学生表格

WHERE毕业年份=1994

ORDER BY毕业成绩平均DESC;

PARAMETERS(参数)声明的用法

对于参数型的查询语法中,对参数的名称以及数据类型作声明的操作。

PARAMETERSname datatype[,name datatype[,...]]

name

PARAMETERS的名称。您可以把参数名称当作字符串来使用,若是名称中包含了空字符串,可以利用中括号来处理,例如:“VBeden”。

datatype

输入参数的数据类型。

例如:

若是您在查询时,需要机动的输入姓名,可以利用下列的方式完成:

PARAMETERS “输入姓名” Text;

SELECT*

FROM职员表格

WHERE姓名=“输入姓名:”;

全面接触SQL语法(3)

  ORDER BY条件语句

  此条件子句,通常与SELECT语句合并使用目的是将查询的结果,依照指定字段加以排序。

  SELECT fieldlist

  FROM table

  WHERE selectcriteria

  ORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]]

  fieldlist

  欲查询的字段名称。其中可以与ALL,DISTINCT,DISINCTROW,或TOP一起来使用。

  table

  欲查询的表格名称。

  selectcriteria

  查询的标准设置。

  field1

  指定要依照那个字段作为排序的依据,若是你没有加上ORDER BY查询出的数据集将不会作排序的操作。

  ASC

  递增顺序类别。(默认值)

  DESC

  递减顺序类别。

  例如:

  或是我们要将输出数据依据出生的先后次序排列,可以利用下面的命令。

  SELECT姓名,生日

  FROM职员表格

  ORDER BY生日

  SELECT LastName,FirstName

  FROM Employees

  ORDER BY LastName ASC;

  IN条件子句

  指定要速胜哪一个外部数据库的表格。(必须是Microsoft Jet数据库引擎所可以连接的数据库,如dBase,Paradox等等)

  

SELECT|INSERT]INTOdestination IN

{path|["path""type"]|[""[type;DATABASE=path]]}

FROMtableexpression IN

{path|["path""type"]|[""[type;DATABASE=path]]}

destination

  欲插入数据的外部表格名称。

  tableexpression

  表格名称或是被读取数据的表格名称。这个参数可以是一个单一的表格名称,或是一段已经被存储的SQL查询等。

  path

  包含该表格的完整路径名称。

  type

  数据库的类型名称, 通常是当数据库部属于Jet database时才会使用。(例如:dBASE III,dBASE IV,Paradox 3.x,Paradox 4.x,或Btrieve)

  例如:下面这两段的意义相同

PartA....FROMTable

IN""[dBASE IV;DATABASE=C:\DBASE\DATA\SALES;];

PartB....FROMTable

IN"C:\DBASE\DATA\SALES" "dBASE IV;"

  例如:Microsoft Jet database

SELECT顾客编号

FROM顾客表格

INCUSTOMER.MDB

WHERE顾客编号 Like "A*";

其中CUSTOMER.MDBO为Jet database的数据库名称,其中包含了顾客表格。

例如:dBASE III or IV

SELECT顾客编号

FROM顾客表格

IN"C:\DBASE\DATA\SALES" "dBASE IV;"

WHERE顾客编号 Like "A*";

所以当我们使用不同于ACCESS的数据库时,必须指明该数据库的类型名称。

 

全面接触SQL语法(4)

HAVING条件子句

指定一特定的分组记录,并满足HAVING所指定的条件或状态,但条件是针对分组的条件设置。

SELECTfieldlist

FROM table

WHEREselectcriteria

GROUP BYgroupfieldlist

HAVINGgroupcriteria

fieldlist

显示被查询的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)

table

欲查询数据的表格名称。

selectcriteria

选取标准。

groupfieldlist

分组记录的字段名称,到多10个字段。而这些字段的顺序决定最高到最低的分组阶层。

groupcriteria

决定什么样的分组记录要被显示。

HAVING跟WHERE的用法相当类似,不同之处在于HAVING必须用于GROUP之后的分组数据上。

例如:

SELECT分类编,Sum(库存数量)

FROM产品表格

GROUP BY分类编号

HAVING Sum(库存数量)>100 AND产品名称 LIKE "*纸";

GROUP BY条件子句

依据指定的字段,将具有相同数值的记录合并成一条。

SELECTfieldlist

FROM table

WHEREcriteria

GROUP BYgroupfieldlist

fieldlist

欲读取的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP合并使用)

table

被查询的表格名称。

groupfieldlist

分组记录的字段名称,到多10个字段,而这些字段的顺序决定最高到最低的分组层次。

例如:

SELECT姓名,Count(姓名)AS职员姓名

FROM职员表格

WHERE部门名称='业务部'

GROUP BY姓名

FROM条件子句

指定表格名称或是查询,其中包含列在SELECT语句的字段数据。

SELECTfieldlist

FROMtableexpression[IN externaldatabase]

fieldlist

表格中的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)

tableexpression

表格名称,或多个表格的算式。

externaldatabase

若该表格参考到外部的数据库时,将其完整的路径名称记下。

例如:

从职员表格下,查询出所有姓名字段的数据(只有姓名字段被查询,其他则不显示)。

SELECT姓名 FROM职员表格;

WHERE条件子句

指定查询的条件与限制。

SELECTfieldlist

FROMtableexpression

WHEREcriteria

fieldlist

字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)

tableexpression

表格名称,或多个表格的算式。

criteria

查询的结果,必须依照这一限制标准。

例如:

要查询出职员表格中,所有姓氏是李的数据,可以用下面的语句。

SELECT姓名

FROM职员表格

WHERE姓氏='李';

全面接触SQL语法(5)

BETWEEN...AND运算符

决定某一人数值是否介于特定的范围之内,此运算符只可以用在SQL的语句中。

expr[Not]BETWEENvalue1 AND value2

expr

指定要加以计算的字段与表达式的组合。

value1,value2

所指明的数值范围。

例如:

若是要从职员表格查询出所有年龄介于25-30岁的员工,可以利用下面的程序来做。

SELECT姓名,年龄 BETWEEN 25 AND 30

FROM职员表格;

LIKE操作数

用来将一字符串与另一特定字符串样式(pattern)比较,并将符合该字符串样式的记录过滤出来。

expressionLIKE "pattern"

expression

使用在WHERE条件子句,SQL表达式。

pattern

用以比较的字符串样式。

例如:

若是你要查询出所有以“李”为首的姓氏,可以利用下面的式子。

Like "李*"

LIKE操作数的多种范例:

1、多个字符:

(1)"a*a"

可筛选:"aa","aBa","aBBBa",不能筛选:"aBC"

(2)"*ab*"

可筛选:"abc","AABB","Xab",不能筛选:"aZb","bac"

2、特殊字符:

"a“*”a"

可筛选:"a*a",不能筛选:"aaa"

3、单一字符:

"a?a"

可筛选:"aaa","a3a","aBa",不能筛选:"aBBBa"

4、单一数字:

"a#a"

可筛选:"a0a","a1a","a2a",不能筛选:"aaa","a10a"

5、字符范围:

"“a-z”"

可筛选:"f","p","j",不能筛选:"2","&"

6、指定字符以外部范围:

"“!a-z”"

7、指定非数字:

"“!0-9”"

可筛选:"A","a","&","~",不能筛选:"0","1","9"

8、组合式结构:

"a“!b-m”#"

可筛选:"An9","az0","a99",不能筛选:"abc","aj0"

SQL数字函数

1、AVG:算数平均数

AVG(expr)

expr

字段名称或表达式。

例如:

若要计算职员身高超过165厘米的职员平均身高,可以利用下面的SQL语句来完成。

SELECT Avg(身高)

AS平均身高

FROM职员表格 WHERE身高>165;

2、COUNT:计算记录条数

COUNT(expr)

expr

字段名称或表达式。

例如:

若是要统计出业务部门的职员人数,并查询出职员的姓名,可以利用下面的程序。

SELECTCount(姓名) AS职员姓名

FROM职员表格

WHERE部门名称='业务部';

3、FIRST与LAST:返回某字段的第一条数据与最后一条数据。

FIRST(expr)

LAST(expr)

expr

字段名称或表达式。

例如:

若是要找出货品数量字段的第一条数据与货品价格字段的最后一条数据时,可以利用下面的查询方式。

SELECTFIRST(货品数量),LAST(货品价格)

FROM订单表格

4、MAX,与MIN:返回某字段的最大值与最小值。

用法同FIRST与LAST。

5、SUM:返回某特定字段或是运算的总和数值。

SUM(expr)

expr

字段名称或表达式。

例如:

要计算出货品总价,可使用下面的程序。

SELECT

Sum(单位价格*货品数量)

AS货品总价 FROM订单表格

多层SQL查询

顾名思义,多层的SQL查询的便在于:“在一个SQL语句中可以包含另一个SQL查询语句,形成内部嵌套的查询类型。”

comparison[ANY|ALL|SOME](sqlstatement)

expression[NOT]IN(sqlstatement)

[NOT]EXISTS(sqlstatement)

comparison

将表达式与内层查询的结果比较的操作。

expression

对内层查询的结果作搜索的表达式。

sqlstatement

为SELECT语句构成的SQL查询,必须用()将该语句括起来。

例如:

我们先从订单表格当中,查询出所有的单位,再将产品表格中的单位与的一一对比,查询出所有高于订单表格的单位价格的记录。

SELECT *FROM产品表格

WHERE单位价格>ANY (SELECT单位价格 FROM订单表格 WHERE折扣>=.25);

全面接触SQL语法(6)

SQL与数据库的维护

表格的建立

将SQL中的基本语法作了一番介绍以后,但大多是偏向于数据库数据的查询与过滤,但实际上,我们通过SQL命令所可以做的事还有很多,接下来要介绍的便是如何利用SQL的语法命令来建立一个数据库中的表格。

CREATE TABLE语句

我们可以利用这个命令,来建立一个全新的表格,但前提则是:数据库必须已经存在。

CREATE TABLEtable(field1 type[(size)][index1][,field2type[(size)][index2][,...]][,nultifieldindex[,...]])

table

欲建立的新的表格名称。

field1,field2

在新表格中的新的字段名称,到少要一个字段以上。

type

字段的数据类型。

size

字段的大小。

index1,index2

利用CONSTRAINT条件子句定义一个单一字段的索引名称。

multifieldindex

利用CONSTRAINT条件子句定义一个多重字段的索引名称。

例如:

建立一个拥有职员姓名与部门字段的表格。

CREATE TABLE职员表格 (姓名TEST,部门TEST,职员编号 INTEGER CONSTRAINT职员字段索引PRIMARY KEY)

在这一个范例中,我们建立了一个表格名称为“职员表格”的表格,并且定义了该表格的主键值,以限制数据不能重复输入。

表格索引的建立

CREATE INDEX语句

这个命令主要是对一个已存在的表格建立索引,其用法如下:

CREATE[UNIQUE]INDEXindex ON table(field[ASC|DESC][,field[ASC|DESC],...])

[WITH{PRIMARY|DISALLOWNULL|IGNORENULL}]

index

欲被建立的索引名称。

table

欲建立索引的表格名称。

field

欲被建立的索引的字段名称。并可通过DESC保留字,来决定索引的顺序。

例如:

在职员表格中建立一个索引。

CREATE INDEX新索引名称

ON职员表格(姓名部门);

表格的字段更新

CONSTRAINT条件子句

CONSTRAINT的功能是类似索引(INDEX)的,虽然CONSTRAINT也可以建立表格之间的关联性。

单一字段索引:

CONSTRAINTname{PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield1,foreignfield2)]}

多字段索引:

CONSTRAINTname

{PRIMARYKEY(primary1[,primary2[,...]])

|UNIQUE(unique1[,unique2[,...]])

|FOREIGN KEY(ref1[,ref2[,...]])

|REFERENCESforeigntable[(foreignfield1[,foreignfield2[,...]])]}

name

要被建立的CONSTRAINT名称。

primary1,primary2

被用来设计成主键值的字段名称(可一个以上)。

unique1,unique2

被用来设计成唯一键值的字段名称(可一个以上)。

foreign key

字段名称,或是参考到别的表格中字段的字段名称。

foreigntable

如前所述,被参考到的表格。

foreignfield1,foreignfield2

在参考到的表格当中,被ref1,ref2字段所指定的字段。如果被参考的字段是参考表格中的主键值,你也可以省略这个条件子句。

例如:

当我们要建立一个新的职员数据表格,表格包含姓名、部门名称与生日三个字段,且由这三个字段建立一个唯一的索引时,可以使用下面这段SQL的语句。

CREATE TABLE职员数据表格

(姓名 TEST,部门名称 TEST,生日DATETIME,CONSTRAINT职员数据表格限制UNIQUE(姓名,部门名称,生日));

以上是SQL中,与数据库表格建立相关的命令,你可以利用这些命令,通过SQL的语句,将数据库表格完整的建立出来,接下来的章节,将针对数据库建立之后的维护与增删所要使用的SQL语句作一介绍。

全面接触SQL语法(7)

表的删除

DELETE语句

我们可以利用DELETE语句,将表格中的记录删除。(注意:记录被删除后,无法再复原,所以条件设置要正确)

DELETE[table.*]

FROMtableexpression

WHEREcriteria

table

欲删除记录的表格名称,也可以用*来取代。

tableexpression

一个或一个以上表格的名称。此一参数可以为单一的表格名称或是从INNER JOIN,LEFT JOIN,或RIGHTJOIN等运算所得到的结果。

criteria

决定表格中记录要被删除的标准。

例如:

若是我们要将职员表格中姓名姓名叫做'李名'的记录删除,我们可以利用下面的SQL语句来完成。

DELETE *FROM职员表格

WHERE姓名='李名';

数据库表格相关的操作命令

SQL除了可以作为查询与数据库表格的建立的工具外,对于数据库与表格的新建、删修、与维护,与具有相当不错的功能,若是读者使用SQL命令得宜,对于整个效率的提高有着很大的帮助,所以对于SQL语句所带来的优势,常常会遇到一个情况,就是:“当我们对多个表格作复杂与多步骤的处理时,或许SQL只要一个语句就可以完成所有的需求与目标”,乍看一下,或许觉得有些玄妙,但是接下来的章节,会让你了解其中的妙处。

SELECT...INTO语句

我们可以通过这个命令,利用既存表格查询,来建立一个新表格的查询语句。

SELECTfield1[,field2[,...]]INTO newtable[IN externaldatabase]

FROM source

field1,field2

欲拷贝到新表格的字段名称。

newtable

欲建立之新表格的名称,不可是已经存在的表格。

externaldatabase

若是该表格在另外的外部数据库时,该数据库的名称。

source

记录数据拷贝的来源表格名称,可以是单一的表格或是一段SQL查询之语句。

例如:

你可以通过下面的SQL语句,来建立一个新的“训练名册”表格。

SELECT职员表格.姓名,职员表格.部门

INTO训练名册 FROM职员表格

WHERE职称='新进人员';

INNER JOIN操作数

当某一个共同的字段数据相等时,将两个表格的记录加以组合。

SELECTfields

FROM table1INNER JOIN table2

ONtable1.field1 compopr table2.field2

table1,table2

欲进行记录组合的表格名称。

field1,field2

欲组合的字段名称。(必须具有相同的数据类型)

compopr

比较关系运算符如下:“=”,“<”,“>”,“<=”,“<>”等。

例如:

若是你要把分类表格与产品表格作组合,可参考下面的SQL语句。

SELECT分类名称,产品名称

FROM分类表格 INNER JOIN产品表格

ON分类表格.分类编号=产品表格.分类编号;

UNION操作数

我们可以通过UNION操作数来建立连接的查询条件,UNION操作数可以将两个以上的表格或是查询的结果组合起来。

[TABLE]query1UNION [ALL][TABLE]query2 [UNION [ALL]

[TABLE]queryn[...]]

query1,query2,queryn

为一个SELECT的语句,或是一个已存在的查询名称,或是一个已存在的表格名称。

例如:

你可以利用下面的SQL语句,将订单数量超过1000的顾客表格记录,与新客户表格作UNION的操作。

TABLE新客户表格 UNION ALL

SELECT *

FROM顾客表格

WHERE订单数量>1000;

ALTER语句

在一个表格被建立之后,利用ALTER语句,我们可以去修改表格的字段设计。

ALTER TABLEtable

{ADD {COLUMNfield type[(size)][CONSTRAINT index]

|CONSTRAINTmultifieldindex}

|DROP{COLUMN field|CONSTRAINT indexname}}

table

欲被ALTER的表格名称。

field

要被增加或删除的字段名称。

type

字段数据类型。

size

字段大小。

index

对此字段的索引。

例如:

在职员表格中新建一个“薪水”的字段。

ALTER TABLE职员表格

ADD COLUMN薪水 CURRENCY;

例如:

在职员表格中删除一个“薪水”的字段。

ALTER TABLE职员表格 DROP COLUMN薪水;

DROP语句

针对所指定的表格或字段加以删除,或是把索引删除。

DROP {TABLEtable|INDEX index ON table}

table

欲删除之表格或索引依附之表格名称。

index

欲从表格中删除的索引名称。

例如:

从职员表格中,删除编号索引。

DROP INDEXMyIndex ON Employees;

例如:

从数据库中,删除整个表格。

DROP TABLE职员表格;

INSERT INTO语句

新建一条数据到表格当中。

多条记录新建查询:

INSERT INTOtarget [IN externaldatabase][(field1[,field2[,...]])]

SELECT[source.]field1[,field2[,...]

FROMtableexpression

单条记录新建查询:

INSERT INTOtarget[(field1[,field2[,...]])]

VALUES(value1[,value2[,...])

target

新建记录的表格名称。

externaldatabase

外部数据库的路径,搭配IN条件子句使用。

source

若是记录从其它表格中拷贝时,指明该表格的名称。

field1,field2

欲增加数据的字段名称。

tableexpression

表格名称或描述记录是从哪一个表格中插入的表格名称。配合INNER JOIN,LEFT JOIN,或 RIGHT JOIN运算符一起使用。

value1,value2

欲插入表格中的数值。

例如:

在客户数据表格中,从新的表格插入数据。

INSERT INTO客户数据表格

SELECT新客户数据表格.*

FROM新客户数据表格;

例如:

在职员表格中插入数据。

INSERT INTO职员表格(姓名,生日,职称)

VALUES("王荣","57/12/11","经理");

例如:

从训练人员表格中,将职员雇用时间超过30天者,加入到正式职员表格中。

INSERT INTO职员表格

SELECT训练人员表格.*

FROM训练人员表格

WHERE雇用天数>30;

UPDATE语句

建立一个UPDATE的查询,通过条件的限制来修改特定的数据。

UPDATE table

SET newvalue

WHEREcriteria;

table

欲修改数据的表格名称。

newvalue

欲修改成的数值(将该项数值插入到特定的字段当中)。

criteria

查询条件,用来决定要修改哪些记录。

例如:

若是要把订单表格中的订单数量修改成1.1倍,运费为1.03倍,可利用下列之SQL语句来完成。

UPDATE订单表格

SET订单数量=订单数量 * 1.1,运费=运费 * 1.03倍

WHERE运达地点='美国';

当我们完成修改后,你可以利用 SELECT语句,配合同样的 WHERE条件子句,来察看修改的数据是否正确。

事实上,要利用SQL完成某些看似复杂的操作,并不需要繁琐的SQL命令组合,或是许许多多的步骤才能完成,其实最重要的还是要活用SQL命令,才会在最精简的SQL语句里获得最高的效率。

mysql之基本的select语句 首先查看select语法: mysql> help select; Name: ‘SELECT’ Description: Syntax: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [MAX_STATEMENT_TIME = N] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RES... 阅读详情

相关推荐

相机图像质量研究(22)常见问题总结:CMOS期间对成像的影响--光学串扰

光学串扰是一个比较难以理解的光学现象,实际影响往往不大。一、光学串扰产生的原因通常是入射角度太大,光线在不同通道之间产生了混叠二、光学串扰产生的现象光学串扰容易导致迷宫纹。总结本节讲了光学串扰产生的原因,现象。

xiaoshixiu的专栏 1572

MTK-Display技术解析:从MDP到DDP的架构演进

本文深入解析了联发科(MTK)显示技术从MDP到DDP的架构演进。MDP作为多媒体数据预处理中心,负责格式转换与缩放;而DDP则整合了OVL、COLOR、AAL等模块,并引入CMDQ与场景化模式,实现了从分散处理到统一智能调度的飞跃,旨在提升画质、流畅度并降低功耗。

weixin_29218509的博客 253

【错误处理】Spring JPA的错误及其解决方案

测试Spring data jpa遇到一个错误,,遇到错误“三板斧” 【1】看控制台报错情况,一般情况下红色第一句很重要,细看(英文很水没关系,打开有道瞬间转换成中文,虽然有点变扭,能看) 比如,我这个错误,org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; n

小鼠标的博客 2999

激光光束质量评估与光斑尺寸计算:从理论到MATLAB实践

本文详细解析激光光束质量评估与光斑尺寸计算的理论基础及MATLAB实践方法,重点介绍M²因子的测量与应用。通过高斯光束模型、CCD成像法和MATLAB算法实现,帮助读者掌握从理论到实践的完整流程,提升激光系统调试与评估能力。

weixin_29083373的博客 443

中小公司无线组网实战:用一台H3C AC和普通三层交换,实现办公网AP统一管理

本文详细介绍了中小型企业如何利用H3C AC控制器与普通三层交换机实现无线AP统一管理的实战方案。通过VLAN规划、DHCP配置和AC控制器设置,构建经济高效的办公网络,解决信号覆盖和连接稳定性问题,特别适合50-200人规模的企业部署。

weixin_42531516的博客 379

IDEA myBatis的mapper.xml 提示<expression> expected,got 'where' 或者 unexpected end of file

是由于 设置了数据库方言 ,要改回通用模式

Jackie__GAO的博客 5522

STM32驱动四位共阳极数码管实现高精度秒表计时器

本文详细介绍了如何使用STM32驱动四位共阳极数码管实现高精度秒表计时器。项目基于STM32F103C8T6最小系统板,通过定时器中断和GPIO控制,实现0.1秒精度的计时功能,并解析了共阳极数码管的动态扫描原理及按键消抖等关键技术。

n8m7b6v5c4的博客 951

全面接触SQL语法(2)

全面接触SQL语法 系列来自中国DNN里的文章,By 雪 冰。 这里仅做个转载!例如下面这两个例子将会具有相同的效果,都会从职员表格中返回所有字段的数据。  例如:  若是我们要查询出职员表格中的所有记录,可以通过下面的语句来完成。SELECT ALL* FROM 职员表格; DISTINCT     对某个表格所选择的字段数据,略过重复的情况,也就是说,针对某个字段查询出来的记录结果是唯一的。例

疯言疯语 1793

【AI Agent教程】各种Agent开发框架都是如何实现ReAct思想的?深入源码学习一下

驱动大模型有很多种方式,例如纯Prompt方式、思维链方式、ReAct方式等。ReAct 方式是 AI Agent 最常用的实现思路之一,它强调在执行任务时结合推理(Reasoning)和行动(Acting)两个方面,使得Agent能够在复杂和动态的环境中更有效地工作。

同学小张的博客 6395

商用车重型多挡位机械式变速器(AMT)结构设计与仿真分析

本文针对商用车重型AMT变速器开展结构设计与仿真分析。设计采用12挡双中间轴结构,匹配400kW柴油发动机,最大扭矩2000Nm。通过等比级数分配传动比(头挡14.5,最高挡0.78),采用主副箱组合实现多挡位。双中间轴结构可抵消径向力,提升承载能力。关键设计包括:235mm中心距、4.5-5.0mm齿轮模数、锁环式同步器和复合润滑系统。通过Python参数化建模进行强度校核,计算显示中间轴在2000Nm工况下等效应力满足安全系数要求(屈服强度850MPa,安全系数≥2)。该设计解决了传统MT变速器操作强度

AI的内部世界的博客 112

全面接触SQL语法一

SQL功能与特性   其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:   (一)建立数据库的表格。(包括设置表格所可以使用之空间)   (二)改变数据库系统环境设置。   (三)针对某个数据库或表格,授予用户存取权限。   (四)对数据库表格建立索引值。   (五)修改数据库表格结构。(新建、删除或是修改表格字段)   (六)

gxiyv的专栏,欢迎您的光临指导! 833

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

二进制君 5827

全面接触SQL语法(7)

全面接触SQL语法(7) 全面接触SQL语法 系列来自中国DNN里的文章,By 雪 冰。 这里仅做个转载!表的删除    DELETE语句  我们可以利用DELETE语句,将表格中的记录删除。(注意:记录被删除后,无法再复原,所以条件设置要正确)DELETE[table.*]FROM tableexpressionWHERE criteria table欲删除记录的表格名称,也可以用*来取代。 t

疯言疯语 1935

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

全面接触SQL语法(5)

全面接触SQL语法(5) 全面接触SQL语法 系列来自中国DNN里的文章,By 雪 冰。 这里仅做个转载!BETWEEN...AND 运算符  决定某一人数值是否介于特定的范围之内,此运算符只可以用在SQL的语句中。expr[Not]BETWEEN value1 AND value2 expr指定要加以计算的字段与表达式的组合。 value1,value2所指明的数值范围。例如:若是要从职员表格查

疯言疯语 1375

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SQL语法全接触

SQL功能与特性  其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:  (一)建立数据库的表格。(包括设置表格所可以使用之空间)  (二)改变数据库系统环境设置。  (三)针对某个数据库或表格,授予用户存取权限。  (四)对数据库表格建立索引值。  (五)修改数据库表格结构。(新建、删除或是修改表格字段)  (六)对数据库进行数

zhoujiping的专栏 2298

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

全面接触SQL语法五

表的删除    DELETE语句   我们可以利用DELETE语句,将表格中的记录删除。(注意:记录被删除后,无法再复原,所以条件设置要正确) DELETE[table.*] FROM tableexpression WHERE criteria table 欲删除记录的表格名称,也可以用*来取代。 tableexpression 一个或一个以上表格的名称。此一参数可以为单一的表格名称或是从INN

gxiyv的专栏,欢迎您的光临指导! 945
上一篇: SQL语言快速入门
下一篇: SQL语句详析
pingdouble
博客等级 码龄15年 325粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值