MySQL数据库查询常用语句

目的:

学习总是需要记忆遗忘再记忆反反复复才能印入脑海。IT技术尤其如此。最好解决遗忘的方式,就是多多反复,然而捧起一本大部头从新看起显然效率低下。对于数据库入门级别的知识,看过一两遍,也就能理解主要机理了,欠缺在于代码练习。因此最近在重刷MySQL入门的同时,总结起来练习所使用的代码。用于以后的温习。某一天发现自己生疏了,花一点时间敲上一通,记忆就回来了。

说明:

1 大部分的语句都非常简单,进行了少量的注释; 
2 代码稍有一些冗余,是为了熟练操作; 
3 有意设置了一些错误,注意数据库的返回的信息; 
4 所有测试mysql上进行,但如果有错误,系手误或理解错误,望担待; 
5 本文覆盖基本常用的查询; 

——2017/7/31

select * from tt2; //tt2为表名
select all name from tt2; //all查询所有
select distinct name from tt2;  //distinct去除重复

select count(*) from tt2;  //统计表的行数
select count(name) from tt2;  //统计name不为null的行数
select count(distinct name) from tt2;  //返回不同的非null值的name数目

select * from tt2 limit 3;  //取前3条记录 mysql中没有top关键字
select * from tt2 limit 2,4;  //从第2条开始取4条

select id as 编号, name as 姓名 from tt2;  //查询结果中列重命名
select id 编号 from tt2;  // 查询结果中列重命名

select (score + singin) as col from tt2; //列运算

//where条件
select * from tt2 where id = 2;
select * from tt2 where id > 2;
select * from tt2 where id < 2;
select * from tt2 where id <>2;  //不等于
select * from tt2 where id != 2;  //不等于
select * from tt2 where id >= 2;
select * from tt2 where id <= 2;
select * from tt2 where id > 2 and id < 5;  //and并且
select * from tt2 where id > 5 or sex = 1;  //or或者

select * from tt2 where id in(1,3,5);  //判断某个字段的值是否在指定的集合中
select * from tt2 where id not in(1,3,5);  //不在指定的集合中

select * from tt2 where id between 2 and 5;  //判断某个字段的值是否在指定的范围内,相当于并且
select * from tt2 where id not between 2 and 5;  //不在指定范围之内
//like模糊匹配
select * from tt2 where name like '小_';  //下划线_代表一个未指定的字符 
select * from tt2 where name not like '%明';  //百分号%代表一个或多个未指定的字符 %注意中英文不同,必须英文
//正则表达式
select * from tt2 where name regexp '^ma';  //查找name字段中以ma开头的所有数据
select * from tt2 where name regexp 'eo$';  //查找name字段中以eo结尾的所有数据
select * from tt2 where name regexp '^ma|eo$';  //查找name字段中以ma开头的所有数据开头或者以eo结尾的所有数据
select * from tt2 where name regexp 'le';  //查找name字段中包含le的所有数据
select * from tt2 where name regexp '^[aei]|ok$'; //查找name字段中以a或者e或者i开头的所有数据开头或者以eo结尾的所有数据

select * from tt2 where score is null;
select * from tt2 where score is not null;

select * from tt2 order by name;  //order by排序
select * from tt2 order by name desc;  //降序
select * from tt2 order by name asc;  //升序

select count(age), age from tt2 group by age;  //按照年龄进行分组统计
select count(*), sex from tt2 group by sex;  //按照性别进行分组统计
select count(*), sex, age from tt2 group by sex, age order by age;  //按照性别和年龄组合进行分组统计,最后的结果再按照年龄排序
select count(*), sex from tt2 where age > 16 group by sex;  //在年龄大于16的记录中 按照性别进行分组统计 (where在分组之前先过滤数据)
select avg(score), age from tt2 group by age having age >= 18;  //(having在分组之后过滤)
select count(*), age from tt2 group by age having count(age) >= 2;  //按照年龄分组,过滤条件是分组后的记录条数大于等于2

//嵌套子查询
select * 
from (
	select id, name from tt1 where sex = 1
) tb
where tb.id > 2;  //查询性别为1的人中id>2的人的信息

select * 
from student 
where cid in(
	select id from classes where id > 2 and id < 4
);  //查询班级id大于2小于4的这些班级的学生信息

select *, (select count(*) from student where cid = classes.id) as num 
from classes
order by num;  //查询班级信息,统计班级学生人数

select *
from tt1
where birth <= all(select birth from tt1); //查询出生最早的人的详细信息
//上句等价于:
select * 
from tt1
where birth <= (select min(birth) from tt1);
//上句等价于: 
select * from tt1 order by birth limit 1;

select * 
from tt2 
where id = any(select id from tt2 where sex = 1);  //=any和in等效

//使用子查询进行多表查询
select name
from emp
where empNumber in
	(select distinct empNumber
	from assignment
	where hoursworked > 50);  // 查找在某个任务assignment中工作时间超过50个小时的所有雇员的姓名

//使用连接进行多表查询
select name, hoursworked
from emp join assignment 
	on emp.empNumber = assignment.empNumber
order by emp.empNumber;


待续

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是MySQL数据库查询所有语句命令: 1. SELECT:用于从数据库中检索数据。 2. FROM:用于指定要检索数据的表。 3. WHERE:用于筛选数据。 4. GROUP BY:用于将数据分组。 5. HAVING:用于筛选分组后的数据。 6. ORDER BY:用于按指定条件对数据进行排序。 7. JOIN:用于将两个或多个表中的行合并。 8. UNION:用于将两个或多个 SELECT 语句的结果集合并到单个结果集中。 9. LIMIT:用于限制结果集的数量。 10. IN:用于指定一组可能的值。 11. LIKE:用于搜索与指定模式匹配的值。 12. NOT:用于否定条件。 13. EXISTS:用于检查子查询是否有结果。 14. BETWEEN:用于指定一个范围。 15. NULL:用于检查值是否为空。 16. AS:用于为列或表指定别名。 17. AVG:用于计算列的平均值。 18. COUNT:用于计算列的行数。 19. MAX:用于查找列中的最大值。 20. MIN:用于查找列中的最小值。 21. SUM:用于计算列的总和。 ### 回答2: MySQL数据库查询所有语句命令主要包括以下几个常用的命令: 1. SELECT:用于从数据库中检索数据。可以根据指定的条件和要求来选择需要的列和行。 2. INSERT INTO:用于将新的数据插入到数据库中的表中。 3. UPDATE:用于更新数据库表中的已有数据。 4. DELETE:用于从数据库表中删除数据。 5. CREATE TABLE:用于创建一个新的数据库表。 6. ALTER TABLE:用于修改已有的数据库表的结构,例如添加、删除或修改列。 7. DROP TABLE:用于删除数据库表。 8. TRUNCATE TABLE:用于删除数据库表中的所有数据,但保留表的结构。 9. USE:用于选择要操作的数据库。 10. SHOW DATABASES:用于查看当前MySQL服务器上的所有数据库。 11. SHOW TABLES:用于查看当前数据库中的所有表。 12. DESC(或DESCRIBE):用于查看表的结构和字段的详细信息。 13. SHOW INDEX:用于显示表的索引信息。 14. SHOW PROCEDURE STATUS:用于显示当前数据库中的存储过程的状态。 15. SHOW VARIABLES:用于查看和修改MySQL服务器的变量。 这些是MySQL数据库查询常用的命令,不同的命令可以用于不同的查询和操作需求。可以根据具体的业务需求选择合适的命令进行操作。 ### 回答3: MySQL数据库查询所有语句命令包括SELECT、SHOW、DESCRIBE和EXPLAIN等。它们是用来检索和展示数据库中存储的数据和表结构的。 1. SELECT:用于从一个或多个表中检索数据。可以指定要检索的列、过滤条件和排序方式等。 2. SHOW:用于查看数据库或表的信息。有多种SHOW命令,如SHOW DATABASES用于查看数据库列表,SHOW TABLES用于查看某个数据库中的表列表,SHOW COLUMNS FROM table_name用于查看表的列信息等。 3. DESCRIBE:用于查看表结构的详细信息。可以通过DESCRIBE或EXPLAIN加上表名来查看表中各个列的属性、类型、索引等信息。 4. EXPLAIN:用于查看查询语句的执行计划,并分析查询性能。可以通过EXPLAIN加上SELECT语句来查看该查询语句的执行过程,包括如何访问表、连接方式、索引使用情况等。 除了以上常用的查询命令,MySQL还提供了许多其他的查询语句命令和子句,如INSERT INTO、UPDATE、DELETE、GROUP BY、HAVING、ORDER BY等,用于实现更复杂的查询操作。 总之,MySQL数据库查询语句命令是用于检索和展示数据库中存储的数据和表结构的,通过这些命令可以灵活地操作和管理数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值