MySQL对数据库表的记录进行操作添加表记录语法:
向表中插入某些列: insert into 表名 (列名1,列名2,列名3...) values (值1,值2,值3...)
注意事项:
值得类型与数据库中表列的类型一致
值得顺序与数据库中表列的顺序一致
值得最大长度不能超过列设置的最大长度
值得类型是字符串或日期类型,使用单引号引起来
添加记录:
添加某几列
insert into user (id,username,password) values ( null, ' ',' ');
添加所有列
insert into user values ();
添加中文记录
insert into user values ('null','张三');
使用中文会直接报错
解决办法:
show variables like '%character%'; 查看数据库中与字符集相关参数
需要将MySQL 数据库服务器中的客户端部分的字符集该为gbk
找到MySQL 的安装路径: my.ini文件 修改文件中[client]下的字符集
重新启动MySQL 的服务器
关闭服务器: net stop 服务器名
打开服务器: net start 服务器名
修改表的记录语法:
修改某一列的所有值
update user set password = ' ';
按条件修改数据
update user set password = ' ' where username = ' ';
删除表的记录语法:
删除某一条记录
delete from eser where id = 2;
删除表中的所有记录
delete form user;
删除所有记录,属于DML语句,一条记录一条记录删除
删除所有记录,属于DDL语句,将表删除,然后重新创建一个结构一样的表。事务不能控制DDL的
查看表的记录(重点)基本查询
条件查询使用where 子句
< , > , >= , <= , <> , =+
like : 模糊查询
in : 范围查询
条件查询 : and , or , not
查询学生的成绩:
select * from exam where name = '李四';
查询名称叫李四的学生并且英文大于90分
select * from exam where name = '李四' and english > 90;
查询李姓的学生的信息
lije 可以进行模糊查询,在like 子句中可以使用_或者%作为占位符. _只能代表一个字符,而%可以代表任意字符.
like '李_' : 名字中必须是两个字,而且姓李的
like '李%' : 名字中姓李的学生,李字后可以是1个或任意个字符
like '$四' : 名字中以四结尾的
like '%王%' ; 只要名称中包含这个字就行
排序查询使用 order by 字段名称 asc/desc;
查询学生信息,并且按照语文成绩进行排序:
select * from exam order by chinese;
查询学生信息,并且按照语文成绩倒序排序:
select * from exam order by chinese desc;
查询学生信息,先按照语文成绩进行倒序排序, 如果成绩相同在按照英语成绩升序排序
select * from exam order by chinese desc,english asc;
查询姓李的学生的信息,按照英语成绩降序排序
select * from exam where name like '李%' order by english desc;
分组统计查询聚合函数使用
sum();
获取所有学生英语成绩的总和:
select sum (english)from exam;
查询所有学生各科的总成绩:
select sum(english)+sum(chinese)+sum(math) from exam;
select sum(english+chinese+math) from exam;
count();
获得学生的总数:
select count(*) from exam;
获得姓李的学生的个数:
select count(*) from exam where name like '李%';
max();
获得数学成绩的最高分:
select max(math) from exam;
min();
获得语文成绩的最小值:
select min(chinese) from exam;
avg();
获取语文成绩的平均值:
select avg(chinese) from exam;
分组查询语法: 使用group by 字段名称;
环境准备
sum();
获取索引学生英语
count();
max();
min();
avg();