A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

就业班day_08_MySQL对数据库表的记录进行操作
MySQL对数据库表的记录进行操作添加表记录
语法:
  • 向表中插入某些列: insert into 表名 (列名1,列名2,列名3...) values (值1,值2,值3...)

  • 向表中插入所有列:  insert into 表名 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 表名 set 列名=值,列名=值 [where 条件]
    注意事项
    • 值得类型与列的类型一致
    • 值得最大长度不能超过列设置的最大长度
    • 字符串类型和日期类型添加单引号


修改某一列的所有值
update user set password = ' ';
按条件修改数据
update user set password = ' ' where username = ' ';
删除表的记录
语法:
  • delete from 表名 [where 条件]
    注意事项
    • 删除表的记录,指的是删除表中的一行记录
    • 删除如果没有条件,默认是删除表中的所有记录


删除某一条记录
delete from eser where id = 2;
删除表中的所有记录
delete form user;
  • 删除表中的记录有两种做法

  • delete form user;

删除所有记录,属于DML语句,一条记录一条记录删除
  • tuncate table user;

删除所有记录,属于DDL语句,将表删除,然后重新创建一个结构一样的表。事务不能控制DDL的
查看表的记录(重点)
基本查询
  • 语法:  select [ distinct]*|列名 from 表[条件]
  • 环境的准备
  • 查询所有学生考试成绩信息
    select * from exam;

  • 查询所有学生的姓名和英语成绩
    select name , english from exam;

  • 查询英语成绩信息(不显示重复的值)
    select distinct english from exam;

  • 查看学生姓名和学生的总成绩
    selsct name,english+chinese+math from exam;

  • 别名查询
    selsct name,english+chinese+math  as   sum from exam;

条件查询
使用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();


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马