create table 表名(
字段名1 类型 约束,
字段名2 类型 约束,
)
在新建查询里面,用命令行的方式创建表,这样会有提示,有错的话,方便后面检查
选中要运行的代码-》点击上方的“运行已选择的”-》下方出现OK,表示运行成功
如图所示,成功创建students表
//删除数据表
drop table students;
drop table if exists students;
//创建一个成绩表,姓名(长度为10),班级(长度为8),科目(长度为56),成绩(保留两位小数)
create table score(
name varchar(10),
class varchar(8),
subject varchar(56),
result decimal(4,1)
);
insert into score values('Mike','六班','语文','59');
insert into score(name) values('Jane');
select * from score;
drop table score;
drop table if exists score;
功能 | 命令 |
---|---|
查看所有数据库 | show databases |
使用数据库 | use 数据库名 |
查看当前使用的数据库 | select database() |
创建数据库 | create database 数据库名 charset=utf-8 |
删除数据库 | drop database 数据库名 |
查看数据库所有的表 | show tables |
查看数据表的结构 | desc 表名 |
查看数据表的创建语句 | show create table 表名 |
//通过一条insert语句,插入多条数据,数据间用逗号分隔
insert into 表名 values(0,'Bill',25,158.56),(0,'kill',21,168.56)
insert into 表名(字段名1,...)values(值1,...)
update 表名 set 字段名1=值1,字段名2=值2,... where 条件
//这个方法是物理删除对应的数据,工作中大部分使用逻辑删除。
//所谓逻辑删除是指通过设定一个字段来标识当前记录已删除,is_delete字段来标识,1表示删除,0标识未删除
delete from 表名 where 条件
delete from students where id=6
//其他删除数据的方法,这个方法用得少,一般直接用drop table 表名,这样删的彻底点,效率高
truncate table 表名(清除表里面所有数据,但是表结构会保留,自增长字段的值会从1开始)
truncate table students;
通过一条SQL语句在成绩表中新增以下三条数据
– 张三,一班,语文,89.5
– 李四,二班,数学,66.3
– 王五,三班,英语。78.6
//查询部分字段数据
select 字段1,字段2,... from 表名
//起别名
select 别名.字段1,别名.字段2,... from 表名 as 别名
select 字段1 as 别名1,字段2 as 别名2,... from 表名
//去重
select distinct 字段1,... from 表名
/*
条件查询
where支持多种运算符进行条件处理
比较运算
逻辑运算
模糊查询
范围查询
空判断
*/
select 字段1,字段2,... from 表名 where 条件;
查询非20岁的学生
关键字:like
%:匹配任意多个字符
_:匹配一个任意字符
查询姓孙的学生
查询姓孙且名字是一个字的学生
查询姓名以‘乔’结尾的学生
in:表示在一个非连续的范围内
between...and...:表示在一个连续的范围内
查询家乡是北京或上海或广东的学生
查询年龄为18至20的学生
查询年龄为18或19或22的女生
判断为空:is null
判断非空:is not null
语法格式
select * from 表名 order by 字段名1 asc|desc,字段名2 asc|desc,...
说明:
将行数据按照字段1进行排序,如果某些字段1的值相同时,则按照字段2排序,以此类推;
默认按照值从小到大排列;
asc从小到大排列,即升序;
desc从大到小排序,即降序
查询所有学生信息,按年龄从小到大排序
查询所有学生信息,按年龄从大到小排序,年龄相同时,按学号从小到大排序
查询所有学生信息,按班级从小到大排序,班级相同时,再按学号从小到大排序
1、使用聚合函数方便进行数据统计
2、聚合函数不能在where中使用
count():查询总记录数
max(字段名):查询最大值
min(字段名):查询最小值
sum(字段名):求和
avg(字段名):求平均值
查询学生总数
因为不管查询那个字段,出来的结果都是12个,所以这边可以直接用*表示查询所有的
查询女生的平均年龄
查询所有学生的最大年龄,最小年龄,平均年龄
按照字段分组,此字段相同的数据会被放到一个组中;
分组的目的是对每一组的数据进行统计(使用聚合函数);
语法格式:
select 字段1,字段2,聚合函数... from 表名 group by 字段1,字段2...
分组后的数据筛选
语法格式:
select 字段1,字段2,聚合... from 表名 group by 字段1,字段2,...having
说明:关键字having后面的条件运算符与where相同
//having与where的区别
1.where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
2.having是对group by的结果进行筛选
3.having后面的条件中可以使用聚合函数,where后面不可以
查询每个班级中各种性别的人数
查询男生总人数
查询所有班级中不同性别的记录数大于1的信息
查询各个班级学生的平均年龄,最大年龄,最小年龄
使用场景:用来获取一部分的数据或者用来分页
语法格式:
select * from 表名 limit start,count
说明:
从start开始,获取count条数据;
start索引从0开始
select * from 表名 limit (n-1)*m,m
n:表示的是显示第几页的数据
m:表示每页显示多少条数据
已知总记录数和每页显示条数,求总页数
– 总数为12,每页显示3个数据,12/3=4页
– 总数为12,每页显示5个数据,12/5,取商加1