MySQL-常用查询
MySQL-常用查询
urcuteimmehinge一、简介
1.1 内容
将通过一个经销商数据库的实例来学习并实践多种常用的在数据库中查找记录的方法
1.2 知识点
- 表查询操作
二、操作步骤
在下面的例子中使用数据表shop来存储商人(经销商)的每件物品(物品号)对应的价格。假如每个商人对应的每个物品都有一个固定的价格,那么该表中的关键字就是物品和商人。
1 | create DATABASE TEST; |
1 | create table shop( |
2.1 寻找列的最大值
使用MAX()函数计算物品号article的最大值
1 | select max(price) as article from shop; |
2.2 查询某列的最大值所在的行
1 | select article,dealer,price |
2.3 按组显示列的最大值
1 | select article, max(price) as price |
2.4 使用用户用户变量
通过使用用户变量找出价格最高或者最低的物品
1 | select @min_price:=MIN(price),@max_price:=MAX(price) from shop; |
1 | select * from shop where price=@min_price or price=@max_price; |
2.5 使用外键
在MySQL中,InnoDB表支持外键约束的检查。
在连接两个表的时候并不需要外键约束。对于除InnoDB表以外的表,可以使用REFERENCES tbl_name(col_name)语句定义将它的列设置为外键,但是该语句并没有实际的作用,只是作为备注来提醒你现在正在定义的列指向另外一个表的列。在执行该语句的时候需要注意以下几点:
- MySQL并不会执行任何操作检查列col_name是否存在于表tbl_name中(它甚至不会检查tbl_name这个表是否真正存在)。
- MySQL不执行表tbl_name中的操作,例如对你正定义的行的进行更改行为,致使ON DELETE或ON UPDATE语句在该行上不会生效(意思是如果你在REFERENCES子句中写入ON DELETE或ON UPDATE子句,将被忽略)。
- 该句法可以创建一个列;但不创建任何索引或关键字。
你可以使用下面的语句建立两个表并定义外键连接两个表中的列
1 | create table person ( |
尝试查询person和shirt这两个的内容
**按照以上方式建立表,并使用语句SHOW CREATE TABLE或者DESCRIBE查看输出结果,你会发现REFERENCES子句并不会出现在结果中 **
1 | desc person |
2.6 计算每月的访问量
下面使用BIT_COUNT函数计算每个月中某用户访问网页的天数
1 | CREATE TABLE t1 (year YEAR(4), |
上述建立的表中有用户访问网页的年月日,可以使用以下语句查询每个月的访问天数
1 | select year, month,BIT_COUNT(BIT_OR(1<<day)) as days |
2.7 使用AUTO_INCREMENT语句
在定义列属性的时候添加AUTO_INCREMENT语句可以使得每条记录都能被唯一标识
1 | CREATE TABLE animals ( |
查看以上语句的返回结果,你会发现id是自动生成的。
要想AUTO_INCREMENT语句生成的起始值不是1,可以通过CREATE TABLE或ALTER TABLE来设置该值,如下所示
1 | ALTER TABLE tbl AUTO_INCREMENT = 100; |
更多关于AUTO_INCREMENT语句的学习:
- 如何为列指定AUTO_INCREMENT属性:CREATE TABLE语法和ALTER TABLE语法。
- 找出含有最新的AUTO_INCREMENT值的行:比较函数和操作符号
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果