易语⾔mysql复制表语句_易语⾔SQL数据库查询语句mysql语句多表查询
⼀、Select语句:
select语句除了可以查看数据库中的表格和视图的信息外,还可以查看SQL Server的系统信息、复制、创建数据表。其查询功能强⼤,是SQL语⾔的灵魂语句,也是SQL中使⽤频率最⾼的语句。
基本select语句:
⼀个基本的select语句可以分解成三个部分:查什么数据(select)、从哪⾥查(from)、查的条件是什么(where)。
select 语句的⼀般格式如下:
select
[into 新表名]
from 表名或视图名
[where ]
[group by ]
[having ]
[order by [ASC|DESC]]
⼆、单表查询:指仅涉及⼀个表的查询
(⼀)查询指定的列
1.查询表中所有列:在select语句指定列的位置上使⽤*号时,表⽰查询表的所有列。
格式:select * from 表名
例1.在xs表中查询全体学⽣的信息。
use xsbook
select * from xs
2.查询表中指定的列。查询多列时,列名之间要⽤逗号隔开。
格式: select 表名.列名1,列名2,...
from 表名
例2.在xsbook数据库的xs表中查询学⽣的姓名、专业名、借书数信息。
select 姓名,专业名,借书数
from xs
3.指定查询结果中的列标题
通过指定列标题(也叫列别名)可使输出结果更容易被⼈理解。指定列标题时,可在列名之后使⽤AS⼦句;也可以使⽤:列别名=的形式指定列标题。
AS⼦句的格式为:列名或计算表达式 [AS] 列标题
其中:AS可省略。
例3:给列加显⽰标题⽰例:
available的反义词select 借书证号 as cardno,姓名 as name, 借书数 as cnt
或采⽤列别名=的形式指定列标题,如上例可改为:
select cardno=借书证号,name=姓名,cnt=借书数
from xs
4.查询经过计算的列(即表达式的值):
使⽤select对列进⾏查询时,不仅可以直接以列的原始值作为结果,⽽且还可以将列值进⾏计算后所得值作为查询结果,即select⼦句可以查询表达式的值,表达式可由列名、常量及算术运算符组成。查询结果计算列显⽰“⽆列名”,⼀般要给计算列加列标题。
其中:表达式中可以使⽤的运算符有:加+、减-、乘*、除/、取余%
例4:查询所有书名、单价及8折之后的图书价格
select 书名,单价,⼋折=单价*0.8
from book
(⼆)、选择⾏:选择表中的部分⾏或全部⾏作为查询的结果:
格式: select [all|distinct] [top n[percent]]
from 表名
1. 消除查询结果中的重复⾏
对于关系数据库来说,表中的每⼀⾏都必须是不同的(即⽆重复⾏)。但当对表进⾏查询时若只选择其中的某些列,查询结果中就可能会出现重复⾏。在select语句中使⽤distinct关键字可以消除结果集中的重复⾏,其格式为:
select distinct 列名1[,列名2,...] from 表名
asp时间代码其中:select语句中使⽤distinct的含义是对结果集中的重复⾏只选择⼀个,以保证⾏的唯⼀性(注意:强调的是“⾏”,⽽不是某⼀列)。
例5:查询所有专业名
select distinct 专业名
from xs
注意:与使⽤Distinct关键字相反,当使⽤关键字All时,将保留结果集中的所有⾏(默认值为All)
例如:select all 姓名,性别
from xs
2. 限制查询结果中的返回⾏数
使⽤top选项可限制查询结果的返回⾏数,即返回指定个数的记录数。
其中:n是⼀个正整数,表⽰返回查询结果集的前n⾏;若带percent关键字,则表⽰返回结果集的前n%⾏。
例6:查询xs表的前5个记录信息
select top 5 * from xs
再如:select top 50 percent * from xs --查询前50%的学⽣信息
(三)查询满⾜条件的⾏: ⽤where⼦句实现条件查询:
通过where⼦句实现,该⼦句必须紧跟在From⼦句之后。
格式为:
select [all|distinct] [top n[percent]]
where
说明:在查询条件中可使⽤以下运算符或表达式:P134
运算符 运算符标识
⽐较运算符 <=,,>=,!=,<>,!>,!< 范围运算符 and, and
列举运算符 in,not in
模糊匹配运算符 like,not like
空值运算符 is null,is not null
逻辑运算符 and,or,not
1.使⽤⽐较运算符:
例7:查询xsbook数据库xs表中借书数在2本以上的学⽣情况(含2本)。
select *
from xs
where 借书数>=2 --或为:where 借书数!<2
2.指定范围:
⽤于指定范围的关键字有两个:and和 and。⽤于查字段值在(或不在)指定范围的⾏。
格式为:表达式 [not] between and
其中:between关键字之后的是范围的下限(即低值),and关键字之后的是范围的上限(即⾼值)
例8:查询xs表中1980 ⾄1985年出⽣的学⽣情况。
clustertruck补丁select *
from xs
where 出⽣时间 between '1980-01-01' and '1985-12-31'
再如:查询xs 表中⾮1980年出⽣的学⽣信息。
select *
from xs
where 出⽣时间 not between '1980-01-01' and '1980-12-31'
3.使⽤列举:
使⽤in关键字可以指定⼀个值的集合,集合中列出所有可能的值,当表达式的值与集合中的任⼀元素个匹配时,即返回true,否则返回false。格式为: [not] in(值1,值2,...,值n)
例9:查询xs表中专业名为'计算机'、'信息⼯程'、'英语'或'⾃动化'的学⽣的借书证号,姓名,借书数,专业名。
select 借书证号,姓名,借书数,专业名
from xs
where 专业名 in('计算机','信息⼯程','英语','⾃动化')
注意:与in相对的是 not in,⽤于查表达式的值不属于指定集合的⾏。
例如:查询xs表中⾮'计算机'、'信息⼯程'、'英语'专业的学⽣情况:
select *
from xs
where 专业名 not in('计算机','信息⼯程','英语')
4.使⽤通配符进⾏模糊查询:
可⽤like ⼦句进⾏字符串的模糊匹配查询,like⼦句将返回逻辑值(true或False)。
like⼦句的格式为: [not] like
其含义是:查指定字段值与匹配串相匹配的记录。匹配串中通常含有通配符%和_(下划线)。
其中:
%:代表任意长度(包括0)的字符串
例:a%c:表⽰以a开头,以c结尾的任意长度的字符串,如:asc、abccccccccc、aabbc、ac
_:代表任意⼀个字符
例:a_c表⽰以a开头,以c结尾,长度为3的字符串,如:abc、asc
Like⼦句中使⽤通配符的查询也称模糊查询。
例10:查询xs表中姓“王”且姓名为两个字的学⽣情况
select *
from xs
where 姓名 like '王_'
再如:查询book表中书名含有“数据”字样的图书情况:
select *
from book
where 书名 like '%数据%'
注意:所有通配符都必须在like ⼦句中才有意义,否则将被当作普通字符处理;且like⼦句中的匹配串也可以是⼀个不含通配符的完整的字符串(如下例)。
例11:查询xs表中计算机专业的学⽣情况
select *
from xs
where 专业名 like '计算机'
查询相反的情况:则使⽤以下语句:
select *
from xs
where 专业名 not like '计算机' --查询xs表中⾮计算机专业的学⽣情况
即:如果like后⾯的匹配串中不含通配符,那么可以⽤“=”(等号)运算符来替代like。即上例中的where⼦句等价于:where 专业名='计算机'。
5.使⽤null的查询
当需要判定⼀个表达式的值是否为空值时,使⽤ is null关键字。格式为: is [not] null
当不使⽤not时,若表达式的值为空值,则返回true,否则返回false;当使⽤not时,结果刚好相反。
例12:查询xs表中专业名尚不确定的学⽣情况。
select *
from xs
where 专业名 is null
再如:查询xs表中专业名已确定的学⽣的姓名,专业名。
select 姓名,专业名
from xs
where 专业名 is not null
6.多重条件查询:使⽤逻辑运算符
逻辑运算符and(与:两个条件都要满⾜)和or(或:满⾜其中⼀个条件即可)可⽤来联接多个查询条件。and的优先级⾼于or,但若使⽤括号可以改变优先级。
例13:查询xs表中借书数在3本以下的计算机专业学⽣的姓名和借书证号。
select 借书证号,姓名
from xs
where 专业名='计算机' and 借书数<3
再如:查询计算机和英语专业学⽣的基本情况:
select *
from xs
where 专业名='计算机' or 专业名='英语'
(四)对查询结果排序:
order by⼦句可⽤于对查询结果按照⼀个或多个字段的值(或表达式的值)进⾏升序(ASC)或降序(DESC)排列,默认为升序。
格式:order by {排序表达式[ASC|DESC]}[,...n]
其中:排序表达式既可以是单个的⼀个字段(如例14),也可以是由字段、函数、常量等组成的表达式(如例15),或⼀个正整数。
例14:查询xs表中的全体学⽣信息并按出⽣时间排序,要求晚出⽣的学⽣排在前⾯。
select *
from xsmysql安装错误
zxing下载order by 出⽣时间 desc
思考:若本例改为以下格式的语句,其功能是什么?
select top 5 *
from xs
order by 出⽣时间 desc
例15:请查询图书的书名、六折后的书价,并将结果按六折后的书价的降序排列。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论