数据库基础(二)
数据的查询
什么是查询:select * from 表名
;从表中查询返回所有的数据,每次查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不是真正存储,每次只需查询只是从现有的数据表中提取数据,并按照表的形式显示出来。
查询的SQL语句:
select /*(或者列名) from 表名
,select
用于指定要查询的列,要查询多个列,列名之间用,
隔开;from
指定要从哪个表中查询。*
表示查询所有列。as
关键字,在列的后面添加,表示此列的别名。在列后面as关键字可以省略,别名可以直接写,不必用用双引号包括起来。where 子句
,在select语句中,可以在where子句中使用比较操作符来限制查询的,结果是可选的。
注意当字符及日期类型的数据比较,必须用单或双引号括起来。
子查询:
子查询在where子句中使用,在select查询中,在where查询条件中的限制不是一个确认的值,而是来自于另一个查询的结果,为了给查询提供数据而首先执行的查询语句叫子查询。
子查询:嵌入在其它SQL语句中有select语句,大部分时候出现在where子句中,子查询嵌入的语句称作主查询或父查询。主查询可以是select语句,也可以是其它类型的语句比如DML或DDL语句。根据返回的结果不同,子查询可分为单行子查询、多行子查询以及多列子查询。
exists
关键字:使用exists
关键字后边的子查询至少返回一行数据,则整条返回true
如果子查询没有结果,则返回false
。
MySQL中的运算符:
算术运算符:
比较运算符:
between
运算符用于校验一个值(或一个求值表达式)是否在指定的范围内。in
运算符用于校验一个值(或者一个求值表达式)是否包含在一个值的集合中。is nul
l 或者is not null
用来测定 值是否为空。<=>
运算符,在MySQL中称为“Null安全等于”运算符,者意味着即时当包含在比较运算法中的表达式含有一个null值时,MySQl也会为比较运算符返回一个真或假。like
运算符,可以执行通配符数据搜索,它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。如%
表示任意长度(长度可以为0)的字符串、_
表示匹配任意单个字符。- 在比较运算符中,可以出现
ALL
和ANY
,表示“全部”和“任一”,但是ALL
和ANY
不能单独使用,需要配合单行比较操作符>、>=、<、<=
一起使用。其中:
> ANY
: 大于最小< ANY
:小于最大
> ALL
:大于最大< ALL
:小于最小
注意在默认情况下,比较是不区分大小写方式执行,然而,我们可以添加BINARY
关键字让MySQL执行区分大小写的比较。
插入语句:
insert into 表名(列名) values(第一行值),(第二行值),(等等)
;
更新语句:updata 表名set <列名 = 更新值>[where <更新条件>]
注:where子句表示判断语句,用来设定条件的,限制只更新匹配的行。如果不要where,则更新所有行的数据。
删除语句:
delete from 表名 [where <删除条件>]
排序:
使用order by 子句
select <*, 列 [别名],..> from table [where 条件][order by 列 [ASC | DESC]
默认升序,ASC升序,DESC降序。注意order by必须出现在select中的最后一个子句。null视为最小。
多个列排序:
当以多列作为排序标准时,首先按照第一列进行排序,如果第一列数据相同,再以第二列排序,以此类推。多列排序时,不管正序还是倒序,每个列需要单独设置排序方式。