Mysql常用语句和案例介绍
2016-04-09 21:24
337 查看
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
相关文章推荐
- mysqldump 导出数据库出错
- MySQL系统变量的使用
- MySQL优化的步骤详解
- mysql中 ' 和 ` 的区别
- mysql的启动原理剖析--利于实现多实例的理解
- mysql修改密码
- MySQL不支持事务处理的解决方法
- mysql忘记密码
- MySQL存储过程详解 mysql 存储过程
- mysql.bat
- mysql索引
- MySQL 学习笔记(3)2016-04-09
- [置顶] C# 执行Mysql数据库脚本 创建数据库和表
- MySQL 主从复制
- mysqli stmt 预处理的作用
- 怎么知道mysql是MyISAM还是InnoDB
- mysql获取表行数的方法
- mysql中count函数使用方法详解
- MySQL(help?)
- MySQL(help?)