sql 基础知识 语句解释 select fieldname from tablename where pkfield = pkvalue

有的时候只想得到单条记录,然后能对它进行运算,所以这个上面的语句是不是只会返回单条记录?
pkfield是不是表的主键,pkvalue是不是字段名的意思?
还有字段名和列名有什么区别?也就是fieldname和pkvalue有什么区别?

select fieldname from tablename where pkfield = pkvalue
sql语句可以直接翻译:
选择 fieldname 从tablename 哪里的 pkfield = pkvalue
上面的翻译整理下就是:
从tablename中选择那些pkfield字段的值为pkvlaue的行中的字段fieldname的值。

例如,表t_test有如下结构和数据,其中pkfield为主键
pkfield fieldname elsefield
1 f1 e1
2 f2 e2
3 f3 e3
4 f4 e4

sql: select fieldname from t_test where pkfield = 2
含义:从t_test中选择那些pkfield字段的值为2的行中的字段fieldname的值。

那么返回结果就是:
fieldname
f2

如果sql为:sql: select fieldname from t_test where pkfield > 2,则返回结果为:
fieldname
f3
f4

从你给的这条sql语句来看,这不是具体的表,而是一个概括性的sql文。因为主键的英文是primary key,从pkfield这个来看,应该是主键域(主键字段),而pkvalue则为主键值。这条sql需要将其中的关键字部分(如tablename、fieldname、pkvalue等)替换后才能应用于其他表。由于主键字段的取值唯一性,这样的sql语句是最多只能得到一条数据。

字段名和列名其实没有区别,甚至可以说是同一种东西,就像表格的表头。比如说如下表结构:
表名:西游记
id 姓名 性别
1 孙悟空
2 猪八戒
3 唐三藏

在上面的表结构中,id、姓名、性别这三个都是字段名,也可以说是列名。自然这是纵向看的,纵向看表,会看到相似的东西,比如id,如果定义的表id为int型,则id列的值都必须是int型数据。那么横向来看,1 孙悟空 男,这组数据成为行,行之间也是有关系的,一行通常对应一个对象,行也称作元组。每个元组的每一个元素,都是该元素所在列的一个取值而已。字段名通常确定后不会变,而值不同,它是数据库表的作用所在,一定会伴随数据值的增删改等操作,所以字段或者说是列,在表中的数目是有限的,是固定的,数据值或者是行,是不确定的,是随时可以增删改的。

至于fieldname和pkvalue,只是一种假设性的代名词,比如上面的表结构有如下sql:
select 姓名 from 西游记 where id = 2
就是将你所提供的sql:
select fieldname from tablename where pkfield = pkvalue
中的某些关键字替换后的结果,其中:
fieldname(字段域)被姓名代替,即这条sql文选择的是姓名这一列的值;
tablename(表名)被西游记代替,即数据来源是表西游记;
pkfield(主键域)被id代替,即选择条件是id;
pkvalue(主键值)被2代替,即选择条件的值为2的数据;

另外,pkfield可以不是主键,可以是任何列名,条件和条件的值之间也不必是=,可以是<>(不等于),<小于,>大于等等运算符
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-29
select fieldname from tablename where pkfield = pkvalue

语句大意为:
从表格tablename中检索列pkfield 与列pkvalue 的值相同的记录,显示列fieldname 。

select为SQL数据检索语句,语法为:
select 列名称 from 表格名称 where 筛选条件
第2个回答  2012-05-30
pkfield 这个是一个字段,如果pkfield是一个主键那结果最多返回一条结果,你没把表结构发出来不知道pkvalue是不是字段,也不知道pkfield是不是主键,可以在表的属性看他是不是主键,一个表只有一个主键。
相似回答