MySQL数据记录基本操作——单表查询

对数据库和数据库表中的数据执行添加、删除、修改和查询等操作。(sql语句是不区分大小写的

一、select基本语法:

select是查询数据,从数据库中获得信息。select语句也可以用来检索不引用任何表的计算行。例如,直接通过select语句计算12+23相加后的结果。

select基本语法:

select [straight_join] [sql_small_result] [sql_big_result]

[high_priority]

           [distinct | distinctrow | all]

        select_expression, ...

        [into {outfile | dumpfile} 'file_name' export_options]

        [from table_references

               [where where_definition]

               [group by col_name, ...]

               [having where_definition]

               [order by {unsigned_integer | col_name | formula} [asc |

desc] , ...]

               [limit [offset, ] rows]

               [procedure procedure_name] ]

上述语法中,select_expression表示需要查询的字段;table_references表示从此处指定的表或视图中查询数据;where where_definition表示指定查询的条件;col_name表示按照指定的字段进行分组;having where_definitio表示满足这个条件的表达式才能输出;order by中的内容表示按照指定的字段进行排序,其中的asc表示按升序进行排序,这是默认值,desc表示按降序的顺序进行排序;procdure proedure_name表示指定的存储过程名称。

使用select语句时,所有要使用的关键词必须精确地按照上面的顺序指定,否则会出现错误。例如,having子句必须跟在group by子句之后,order by子句之前。


二、单表查询:

1.查询所有字段:两种方法:一种是列出表中所有字段;二是使用通配符 "*" 进行查询。

select 字段1,字段2,字段3,字段4,字段5,...... from table_name;

select * from table_name;

2.查询指定字段:直接列出需要查询的字段即可。

3.根据条件查询:可以为查询语句指定where子句设置查询条件。

select 查询字段 form table_name where 条件表达式;

根据指定条件可以完成单条数据查询,也可以完成根据多个条件进行查询。

查询条件符号或关键字
比较=、<、<=、>、>=、!=、!>、!<、<>
指定范围between and、not between and
指定集合in、not in
匹配字符like、not like
是否为空值is null、is not null
多个查询条件and、 or
<>表示不等于,其作用等价于!=。

  • 通过比较符号查询:如果直接查找某个字段的数据,可以直接通过比较符号进行设置。例如:select * from table_name where 字段=' ';
  • 通过between and实现查询:between and可以判断某个字段的值是否在指定的范围内。如果字段的值在指定的范围内,则满足查询条件。【where 字段名 [not] between 取值1 and 取值2
  • 通过and实现查询:and可以用来联合多个条件进行查询。【条件表达式1 and 条件表达式2 [......and 条件表达式n]
  • 通过or实现查询:同and关键字,不过是只要满足多个条件中任意一个就可以了。
  • 通过in实现查询:in可以判断某个字段的值是否在指定的集合中。【[not] in (元素1, 元素2, 元素3, ..., 元素n)】字符型元素需要加上单引号。
  • 通过like实现查询:like判断是否与指定的字符串相匹配。【[not] like '字符串'】“字符串”参数的值可以是一个完整的字符串,也可以是包含百分比(%)或者下划线(_)的通配字符。百分比可以代表任意长度的字符串,长度可以为0;下划线只能代表单个字符
  • 空值查询:is null用来判断字段的值是否为空值。注意空字符串与is null的区别。

4.分组查询:

通过使用group by实现分组查询,它可以将查询的结果按某个字段或多个字段进行分组,指定字段的值相同为一组。

group by 字段名 [having 条件表达式] [with rollup]

上述中“字段名”是指按照该字段的值进行分组,指定多个字段时中间使用逗号进行分隔。“having 条件表达式”和with rollup都是可选的,前者用来限制分组后的显示,满足条件表达式的结果将会被显示出来;后者将会在所有记录的最后加上一条,该记录是上面所有记录的总和。

单独使用group by关键字,只显示一个分组的一条记录。

group by后可以跟多个字段实现分组查询。

group by可以与group_concat()函数一起使用,这样每个分组中指定字段的值都将显示出来。如:select 字段1,group——concat(字段2) from table_name group by 字段1;

5.having 查询:

group by之后可以跟having语句,满足having指定的条件表达式时,其结果将会被显示出来。一般情况下,having语句会和group by一起使用。

【having条件表达式可以限制查询结果的现实情况,虽然它与where条件查询都是用来限制显示的,但是它们所起到的作用不一样。where条件查询作用于表或试图,是表和试图的条件查询;而having指定的查询作用于分组后的记录,用于选择满足条件的分组】

6.排序查询:

order by 字段名 [asc | desc]

7.limit限制查询数量:

通过使用limit可以指定查询结果从哪条记录开始显示,还可以指定一共显示多少条记录。

使用limit时有两种方式:一种是不指定初始位置,另一种是指定初始位置。

  • 使用limit不指定初始位置:不指定初始记录时,查询的记录会从第一条开始显示,显示记录的条数就是由limit进行指定的。【limit 查询记录数量】(如果“查询记录数量”小于或者等于查询结果的总数量,这时将会从第一条记录开始,显示指定条数的记录;如果“查询记录数量”大于查询结果的总数量,数据库会直接显示查询出来的所有记录)
  • 指定初始位置:【limit 初始位置, 查询记录数量】(“初始位置”指定从哪条记录开始显示,如果是从第一条记录开始显示,则初始位置为0)

8.其他查询:

  • 避免重复查询:如果没有为数据库表中的字段添加唯一性约束或主键约束,这些字段很可能存在着重复的值。查询的时候可以通过distinct关键字消除重复的记录。【select distinct 字段名称】(字段名称为重复的)
  • 查询集合函数:mysql中的常用集合函数包括count()【用来统计记录的总条数,不仅可以查看表中的所有记录数,还可以查看表中不同字段的值的记录数】、avg()【用来求平均数,使用该函数可以求出表中某个字段取值的平均值】、sum()【用来计算表中某个字段取值的总和】、max()、min()。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值