SQL语句的基本应用
数据库的逻辑判断
in 在某个集合中;
is 一般都用于判断是否为空;
between 用于数字的判断 , 两者之间(闭合区间);
like 一般用在查询字符串 , 模糊查询 ,与%配合使用
‘a%’ 以a开头
‘%a’ 以a结尾
‘%a%’ 含有a
连接数据库
mysql -h localhost -P 3306 - u root -p #连接数据库
show datebases; #展示数据库
use 数据库名字; #选择数据库
show tables; #展示表
数据库的基本操作:增删改查
现在有一个数据库,含有三张表,学生表,成绩表,班级表;
使用的三张表为红色选框内的。
查
基本查询
select 字段1,字段2 from 表名;
*表示所有字段
例如
显示学生表的所有字段:
只显示学生表的ID,学生姓名,学生性别:
条件查询
select * from 表名 where 条件;
查询性别为女的学生的所有信息:
查询性别为女并且年龄>25岁的学生的所有信息:
查询地址为成都、南京的学生信息:
查询备注为空的学生信息:
查询年龄在20~30岁之间的学生信息:
查询姓张的学生信息:
多表联查
select * from 表1 join 表2 on 表关系;
表1.字段1 = 表2.字段2
查询学生编号,姓名,所在班级,各科成绩:
别名
通过创建别名的方式,让复杂的内容变简单
t_student as a
#把t_student表取个别名为a,as可以省略不写
示例
多表联查有3种关联方式,分别是内关联和外关联(左关联和右关联)
join左边是左表,右边是右表
内关联要注意为空,如果想要查询到左表或右表的空值时就要使用外关联
join/inner join #内关联,取两表的交集
left join #左关联,取左表的集合
right join #右关联,取右表的集合
查询年龄>30岁的女生的信息:
排序
select * from 表名 order by 字段名 asc;
#正序 asc可以省略,默认是正序
select * from 表名 order by 字段名 desc;
#倒序
以年龄从小到大排序:
以年龄从大到小排序:
查询语文成绩大于115分的女生,并以语文成绩从高到低显示:
限制查询显示的数量
计算机是从0开始数数的
limit 0,1 #从第0条开始,显示到第一条
增
insert into 表名(字段1,字段2) values (值1,值2);
#必填字段必须要填
改
update 表名 set 字段1 = 值1,字段2 =值2 where 条件;
不附带条件则修改一整列
附带条件,只修改符合条件的
删
delete from 表名 where 条件;
不附带条件则删除所有行;
附带条件,只删除符合条件的行