Mysql常用语句和案例介绍

1.创建表
create table student(id int primary key auto_increment,name varchar(20),subject varchar(20),score int);
 
 
2.添加数据关键字 insert into
insert into 表名 values(添加的值);
例如:
insert into student values
(null,'大三','语文',81),
(null,'大三','数学',75),
(null,'小四','语文',76),
(null,'小四','数学',90),
(null,'小行','语文',100),
(null,'小行','数学',88),
(null,'小行','英语',81);
 
 

 

3.修改关键字 update set
修改id为2 的name
update 表名set 设置修改列的值 where 条件;
例如:
update student set name='李五' where id='2';
 
 
4.删除关键字 delete
删除id为2的
delete from student where id='2';
 
 
5.插入id为2的一组数据
insert into student values (2,'大三','数学',75);
 
 
6.查询所有字段
select * from  表名;
 
 

*”可以表示所有的字段,只有按照表中字段的顺序进行排列,不能改变字段的排列顺序

查询指定记录
select * from 表名 where id=6;
 
 
7.查询每门课都大于80分的学生姓名
关键字distinct  not in
解释:如果某个栏位有重复的,而你又不想要重复的就需要用distinct。
not in 是用在where 中的,如果你要查询某个值不等于'A','B','C'的,你可以用not in.
select distinct name from student where name not in
(
select distinct name from student where score<=80
) ;
 
 

8...分组加条件输出

关键字group by(分组依据) 属性名 having(语句条件)范围;

group by having解释:前提必须了解sql语言中一种特殊的函数:聚合函数, group by 字句通常和SUM, COUNT, MAX, AVG等聚合函数一起使用,这些函数和其它函数的根本区别就是它们一般作用在多条记录上。

WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用。

以分数进行分组并计算个数,条件大于80分的输出

select score,count(*) from student group by scorehaving score>80 ;

 

9...进行排序,降序或者升序

关键字order by(以..排序) ASC(升序)或者 DESC(降序);

以分数进行降序排序

select * from student order by score desc;

 10.查询条件                                   符号或关键字

       比较                          =、<、<=;>、>=、!=、<>、!>、!<
       指定范围                      between  and、not  between and
       指定集合                      in 、 not in
       匹配字符                      like、not like
       是否为空值                    is null、is not null
       多个查询条件                  and、or
       表中,“< >”表示不等于,等价于!=;
“!>”表示不大于,等价于“<=”;
in关键字可以判断某个字段的值是否在指定的集合中。
select * from student where id in(1,2,3);
 
 

 

between and 关键字可以判断读某个字段的值是否在指定的范围内,如果字段的值在指定范围内,则满足查询条件,该记录将被查询出来。
select * from student where score  between 80 and 100;
 
 

 

like关键字可以匹配字符串是否相等
[not] like “字符串”
“字符串”是用来指定用来匹配的字符串,该字符串必须加单引号或者双引号。
“字符串”参数的值可以是一个完整的字符串,也可以是包含百分号(%)或者下划线(_)的通配字符,但是%和_有很大的差别:
“%”可以代表任意长度的字符串,长度可以为0,例如,b%k表示以字母b开头,以字母k结尾的任意长度的字符串。该字符串可以代表bk、buk、book、b*******k等字符串。
“_”只能表示单个字符。例如,b_k表示以字母b开头,以字母k结尾的3个字符。中间的"_"可以代表任意一个字符,字符串可以代表bok、bak、buk等字符串。
注意:因为一个汉字是两个字符,而一个“_”符号只能代表一个字符,匹配的字符串应该为“张_  _”,必须是两个"_";

and关键字可以用来联和多个条件进行查询,使用and关键字时,只有同时满足所有查询条件的记录会被查询出来。

查询名字为小行和分数为88的数据。

select * from student where name='小行' and score like '88';

 

group by 关键字和group_concat()函数一起使用表示每个分组中指定字段值都显示出来

or关键字时,只要满足这几个查询条件的其中一个,这样的记录就会被查询出来

group by关键字与集合函数一起使用

group by关键字与having一起使用

注意:"where 条件表达式"作用于表或试图,是表和试图的查询条件,"having 条件表达式"作用于分组后的记录,用于选择满足条件的组.

连接查询

         连接查询是将两个或两个以上的表按某种条件联系起来,从中选取需要地数据。连接查询是同时查询两个或两个以上的表示使用的.

内连接查询

         当两个表中存在相同一样的字段时,可以通过该字段来连接这两个表,当该字段的值相等时,就查询出该记录

说明:2个表中相同意义的字段可以是指父表的主键和子表的外键

Select  score,sex  from student,studinfo  where  student.name=studinfo.name;

子查询:内层查询语句的查询结果,可以为外层查询语句提交查询条件

in关键字的子查询

一个查询语句的条件可能落在另一个select语句的查询结果中

查询student表中的记录,这些记录的name字段的值必须在studinfo表中出现过

select * from studinfo where name in(selectname from student);

 

exists关键字表示存在,使用exists关键字时,内存查询语句不返回查询的记录。而是返回一个真假值,如果内层查询语句查询到条件的记录,就返回一个真值(true),否则,返回一个假值(false)。当返回一个true时,外层查询语句将进行查询;当返回false时,外层查

询语句不进行查询或者查询不出任何记录.

注意:exists关键字与前面的关键字很不一样,使用exists关键字时,内层查询语句只返回true和false,如果内层查询语句查询到记录,那么返回true,否则,将返回false,如果返回true,那就可以执行外层查询语句.

同时我也要感谢一个人,都是她的功劳!

如果你是湖南的 欢迎加入 湖南人在深圳-Java群:557651502

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值