day26 | 黑马程序员Java全程笔记 | 第二阶段MySQL基础1

目录

01.回顾

Linux相关命令

目录切换

目录操作

查看目录

文件操作

压缩包命令

其他命令

02.数据库概述和常见的数据存储方式

数据库概述

常见的存储数据方式

03.数据库管理系统,数据库和表的关系

**没完成**04. MySQL数据库安装-Linux版

在Linux服务器上安装MySQL软件

05.MySQL数据库安装-windows版

服务器

1. 下载

2. 安装

3. mysql多实例安装

客户端

06.windows版mysql启动关闭和连接

三种方式连上MySQL

sqlyog

07.sql概述和分类

sql作用和分类

sql语法

08. DDL操作数据库结构

操作数据库语法

09.操作表结构 创建和查看表

操作表语法

10.上午总结

11. DDL操作表结构-修改表(了解)和删除表

12. DDL字段类型

13. DML-添加数据信息

14.DML-修改和删除数据信息

15.小结和逻辑删除

16.DQL简单查询

17.DQL条件查询

准备数据

比较运算符

逻辑运算符

in关键字

范围

like模糊查询

匹配格式

其他

作业


01.回顾

  1. Linux:基于Unix的,直接运行在硬件之上的操作系统

  2. 安装与卸载:

    1. 虚拟机:Windows平台之上的一款软件,可以虚拟出多个独立空间

  3. 挂载:如果Linux系统需要装很多软件,自己操作比较麻烦的话,可以直接拷贝别人的Linux文件过来,然后点击里面的后缀名为vmx的文件双击,就可以将别人的操作系统挂载到自己的VMware。

  4. Linux目录系统:

    1. /:根,root用户的家目录

    2. home:普通用户的家目录(支持多用户登录和使用)

    3. usr:多用户共享目录

    4. etc:存放系统的配置文件

    Linux相关命令

    目录切换

    cd ../ :上一级目录,进入上一层目录

    cd.. :当前目录,运行可执行文件的时候需要

    cd 目录: 相对于当前所在的目录,在当前目录下找子目录

    cd /目录 :绝对定位,直接从根目录下找对应的目录

    cd~:可以省略,切换到用户主目录 如果是管理员:切换到root目录, 如果是普通用户:切换到home/用户名

    cd-:切换到上一个目录,相当于后退

    目录操作

    创建目录:

    单层目录: mkdir 目录名

    多个目录: mkdir 目录名A 目录名B

    多层目录: mkdir -p A/B/C

    修改目录名:mv 目录名 新名称

    剪切目录:mv 目录名 新位置

    删除目录:rm -rf 目录名 拷贝目录:cp -r 目录名 新位置

    查看目录

    命令: ls //查看文件

    命令: ls -l //可以看到该目录下的所有目录和文件的详细信息===>简写ll

    命令: ls -a //可以看到该目录下的所有文件和目录,包括隐藏的

    文件操作

    创建文件:touch 文件名

    查看文件:cat/more/less/tail/head 文件名

    打开文件:vim 文件名

    进入文件编辑模式:按i/a/o

    退出编辑模式:按esc

    进入低行模式(最下面那行):按:

    按wq(写入并退出)或q!(强制退出不保存)或wq!(强制写入并退出)

    改名,拷贝与目录操作一致

    压缩包命令

    打包:tar -zcvf 压缩包名.tar.gz 被压缩的文件1......

    解压:tar -xvf 压缩包名.tar.gz

    解压到指定目录:tar -xvf 压缩包名.tar.gz -C 目标目录

    其他命令

    查看所有进程:ps -ef

    管道查询:ps -ef | grep xxx

    展示所在位置:pwd

    查看端口使用情况:netstat -an

02.数据库概述和常见的数据存储方式

先学数据库,再学前端,然后学服务器

数据库概述

存储数据的仓库。

浏览器:即我们所说的前端,作用是展示。

服务器:即后台,作用是存储页面,存放执行业务逻辑的java代码。

数据库:java程序是否可以存储数据?

可以说不能:当程序停止后,内存会被释放,数据消失不见。

也可以说能:java程序中有序列化和反序列化的功能。

在java程序中有序列化,作用是把java的一个类序列化到硬盘进行永久保存。缺点是java程序序列化后的文件只有java程序能够读取和使用。不方便增删改查。

常见的存储数据方式

硬盘存储(关系型数据库)

优点:不会导致数据丢失

缺点:执行效率低(CPU加载数据来自内存,内存数据来自硬盘)

普通文件txt,excel...存储没有特定的数据格式,操作起来不方便。

MySQL数据库是硬盘数据库:将数据按照特定的格式存放,方便后期的使用(增删改查)

内存存储(非关系型数据库)

优点:存储速度快

缺点:当程序停止运行后,数据会丢失。

redis是内存数据库。

03数据库管理系统,数据库和表的关系

  1. 数据库管理系统(DBMS):MySQL软件

  2. database:本质是文件夹

  3. table:表,本质上是按照特定格式存储数据的文件

  4. 行:一行数据,描述一个对象的数据信息,一条记录对应一个Java类对象

  5. 列(字段):描述本列存放的数据信息。由字段名+字段类型组成。

**没完成**04 MySQL数据库安装-Linux版

注意:MySQL是数据库管理系统,真正的数据库是database

在Linux服务器上安装MySQL软件

05MySQL数据库安装-windows版

服务器

1. 下载

MySQL :: Download MySQL Installer

2. 安装

我们采用自定义安装模式:选择32位或64位

默认即可:

说明,如果没有该页面就上一步,选择高级选项:

安装完成

开始配置mysql

配置:

3. mysql多实例安装

使用安装器是无法安装多实例的,只能手动安装。

1、 复制安装好的3380文件夹到3381

2、 进入3381\logs目录下将所有文件删除

3、 进入3381\data目录,将所有的log文件删除(注意不是所有文件哦!)

4、 打开 my.ini 文件,将所有的 3380 替换为 3381

5、 修改serverid为81

6、 打开cmd,进入C:\mysql-5.6\3381\bin目录,执行如下命令: .\mysqld.exe install MySQL-3381 --defaults-file="C:\mysql-5.6\3381\data\my.ini" 注意改为自己的配置文件路径

7、 进入系统服务查看

8、 修改启动方式为手动,安装完成。

9、 如需删除服务执行如下命名即可: .\mysqld.exe remove MySQL-3381

客户端

下载SQLyog

06windows版mysql启动关闭和连接

关闭命令:net stop MySQL56

启动命令:net start MySQL56

访问:mysql -uroot -proot

mysql -h主机地址 -uroot -proot

连接Linux上的MySQL:mysql -h192.168.190.149(Linux的ip) -uroot -proot

三种方式连上MySQL

  1. dos命令(命令行):mysql -uroot -proot

  2. 客户端软件:sqlyog 输入用户名和密码连接

  3. java代码:Java程序(JDBC)

sqlyog

傻瓜式安装

  1. 点新建,名称随便写

  2. 输入主机地址,连接上

07sql概述和分类

sql作用和分类

作用:借助sql操作mysql管理系统

分类:

  1. DDL:数据定义语言。创建数据库,创建表,创建表中的字段

  2. DML:数据操作语言。操作表中的数据,增删改查

  3. DCL:数据控制语言。操作MySQL的用户,权限

  4. TCL:事务控制语言。操作MySQL中的事务

  5. DQL:数据查询语言。查询

sql语法

  1. SQL语句可以单行或者多行书写,必须以分号结尾

  2. 可使用空格和缩进来增强语句的可读性。

  3. MySQL数据库的SQL语句不区分大小写,建议大写,但是我们不听,我们小写

  4. 3种sql注释 --空格 # /**/

08 DDL操作数据库结构

在命令行中执行:

操作数据库语法

1.直接创建数据库(使用默认的编码方式)
CREATE DATABASE 数据库名;
2.判断是否存在并创建数据库(了解)
CREATE DATABASE IF NOT EXISTS 数据库名;
3.创建数据库并指定字符集(了解)
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
​
4.查看所有的数据库
SHOW DATABASES;
5.查看某个数据库的定义信息
SHOW CREATE DATABASE db1;
6.修改数据库字符集格式
ALTER DATABASE db1 DEFAULT CHARACTER SET utf8;
​
7.删除数据库
DROP DATABASE 数据库名;
8.使用数据库
use 数据库名;

09操作表结构 创建和查看表

在sqlyog里面执行

写好语句后,按左上角执行查询

操作表语法

这样写好之后,直接点执行查询是没有用的,要选中语句再执行。

-- 创建表
1.创建表
    create table 表名(
      字段名 字段类型 约束,
      字段名 字段类型 约束
    );
2.快速创建一个表结构相同的表
    CREATE TABLE 新表名 LIKE 旧表名;
​
-- 查看表
3.查看某个数据库中的所有表
        SHOW TABLES;
4.查看表结构(查看表有多少个字段,什么类型)
        DESC 表名;
5.查看创建表的SQL语句
        SHOW CREATE TABLE 表名;
-- 修改表: 了解
    /*
    修改表结构:
6.添加表列(添加一个字段)
        ALTER TABLE 表名 ADD 列名 类型;
7.修改列类型(修改字段类型)
        ALTER TABLE 表名 MODIFY 列名 新的类型;
8.修改列名(修改字段名称)
        ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
9.删除列(删除字段)
        ALTER TABLE 表名 DROP 列名;
10.修改表名(修改表名)
        RENAME TABLE 表名 TO 新表名;
11.修改表的字符集(编码方式)
        ALTER TABLE 表名 character set 字符集;
    */
    -- 需求: 给stu1表中添加一个字段, birthday(date)
    ALTER TABLE stu1 ADD birthday DATE;
    ALTER TABLE stu1 ADD sex CHAR(2);
    -- 需求: 将stu1表中的name的类型改为varchar(50)
    ALTER TABLE stu1 MODIFY `name` VARCHAR(50);
    -- 需求: 将stu1表中的name改为username
    ALTER TABLE stu1 CHANGE `name` username VARCHAR(20);
    -- 需求: 删除stu1表中的sex
    ALTER TABLE stu1 DROP sex;
    -- 需求: 将stu1表名改为student
    RENAME TABLE stu1 TO student;
    RENAME TABLE student TO stu1;
    -- 需求: 修改stu1表的字符集 gbk
    ALTER TABLE stu1 CHARACTER SET utf8;
-- 删除表
12.直接删除表: DROP TABLE 表名;
    
​
​

10上午总结

数据库:
    作用: 存储数据的仓库,将数据按照特征格式存储到文件中.
  数据存储位置:
            关系型数据库(硬盘数据库):
                    特征: 将数据存储到硬盘上,存储的数据和数据之间有一定的关联关系
          优点: 不会导致数据丢失
          缺点: 执行效率低
          代表产品: Mysql Oracle
            非关系型数据库(内存数据库):
                    特征: 将数据存储到内存中,存储的数据和数据之间没有任何的关联关系
          优点: 执行效率高
          缺点: 可能会导致数据丢失
          代表产品: redis MongoDB
        Mysql安装与卸载:
                Linux版本:
                        直接在线安装:
                                yum : 平台,用于托管Linux软件的平台 
            Docker: 项目一前置课
                Windows版本:
                        安装步骤安装即可
        Mysql结构:
                数据库管理系统(DBMS): mysql软件
            数据库: Database,本质上就是计算机上的一个文件夹
                    表: Table,本质上就是文件夹中的一个文件
                        行: 一行就是一条记录,对应java的一个对象
                                        列,字段: 描述当前列的相关信息
                        字段名: 自定义
                        数据类型: mysql中有与java类型一一对应的相关类型
        SQL: 结构化查询语言
        作用: 用于操作关系型数据库(硬盘数据库)
        分类:
                        DDL: 数据定义语言
                操作数据库,表,列结构
            DML: 数据库操作语言 ★
                操作表中的数据,对表中的数据进行增删改
            DCL: 数据控制语言
                控制数据库的权限
                        TCL: 事务控制语言
                控制事务的
            DQL: 数据查询语言 ★★★★★
                                是从DML中分离出的一种语言,专门负责查询
        DDL:
                数据库:
                        create database 数据库名;
                        create database 数据库名 character set utf8;
                        show create database 数据库名;
                        show databases;
                        use 数据库名; 使用数据库
        表:
                        create table 表名(
                    字段名 字段类型 [约束],
                字段名 字段类型 [约束],
                ....
            );
                        create table 表名 like 旧表名;
                        
                        查询所有的表:
                            show tables;
                        查询建表语句:
                            show create table 表名;
                        查询表结构:
                            desc 表名;
        DML:
        DQL:
​
​
​
​
​
​
技术源于生活,且高于生活(每一种技术在生活中都有对应的示例)
   DDL: 盖仓库这个房子(Table),存放货架(列)
   DML: 往仓库中进行存取商品
   DCL: 给仓库管理员设置权限
   TCL: 事务控制语言
   DQL: 查询
      default-character-set=utf8

11 DDL操作表结构-修改表(了解)和删除表

修改表:

添加表列(添加一个字段):alter table 表名 add 字段名 字段类型(长度);

修改字段类型:alter table 表名 modify 字段 新类型;

删除字段:altar table 表名 drop 字段名;

修改表名:raname table 表名 to 新表名;

修改表的字符集(编码方式):alter table 表名 character set 字符集;

删除表:

直接删除表:drop table 表名;

12 DDL字段类型

---------- 特殊的数据类型

double,float:

double(5,2)最大值999.99 参数1:数值总长度 参数2:小数位的个数

char,varchar:

char:固定长度 char(5):‘abc ’

varchar(因为灵活,较常用):可变长度 varchar(5):‘abc’

13 DML-添加数据信息

作用: 操作数据库表中的数据

对表中的数据进行增删改查(CRUD)

  1. 添加部分字段:insert into 表名 (字段名1,字段名2....) value (值1,值2....);

  2. 添加所有字段:insert into 表名 value(值1,值2......);

  3. 批量添加部分数据:insert into 表名 (字段名1,字段名2....)value(值1,值2......),value(值1,值2......)....;

  4. 批量添加所有数据:insert into 表名 value(值1,值2......),value(值1,值2......)....;

  5. 注意:除了数字类型 其他都要用“”或者‘’括起来

14DML-修改和删除数据信息

  1. 修改所有数据:update 表名 set 字段名1=值1,字段名2=值2;

  2. 修改满足条件的数据:update 表名 set 字段名1=值1,字段名2=值2 where 条件;

  3. 删除所有数据:delete from 表名;delete删除时是一行一行删除 truncate table 表名; truncate删除时,摧毁整张表,再创建一张结构相同的表

  4. 删除满足条件的数据:delete from 表名 where 条件;

备份数据

蠕虫复制:从表1获得原始数据(表1与表2 的表结构必须相同)

create from 表名2 like 表名1;创建一张结构相同的表

insert into 表2 select * from 表1;将一张表中的数据插入结构相同的表

15小结和逻辑删除

添加数据信息: 1.罗列所有的字段 INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3); 2.不写字段名 INSERT INTO 表名 VALUES (值1, 值2, 值3…); 此时值的个数,顺序,类型要和数据库表字段的个数,顺序,类型保持一致

修改数据信息: 1.修改所有字段: update 表名 set 字段名1=值1,字段名2=值2... 2.修改满足条件的字段: update 表名 set 字段名1=值1,字段名2=值2... where 条件 删除数据信息: 1.删除满足条件的数据信息: delete from 表名 where 条件 2.删除所有数据信息: delete from 表名; 一行一行删除数据信息 truncate table 表名; 摧毁表,创建一张结构相同的表 注意: 在工作中所有的删除都是假删除 --- 逻辑删除 假删除(逻辑删除),本质上是修改,修改数据的状态

16DQL简单查询

#创建商品表:
create table product(
    pid int,
    pname varchar(20),
    price double,
    category_id varchar(32)
);
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
​
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
​
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
​
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
​
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);
INSERT INTO product(pid,pname,category_id) VALUES(14,'香飘飘奶茶','c005');
​
#简单查询
#1.查询所有的商品.
#2.查询商品名和商品价格.
#3.别名查询.使用的关键字是as(as可以省略的). 
#   3.1表别名: 
#   3.2列别名: 
#4.查看商品表中有那些价格. 
#5.将所有商品的价格+10元进行显示.
  1. 查询所有信息:select * from 表名;

  2. 查询部分字段信息:select 字段名,字段名 from 表名;

  3. 别名查询(使用的关键字是as as可以省略的):

    1. 表别名:select * from 表名 as 别名;

    2. 列别名:select 字段名as‘别名’,字段名 as‘别名’ from 表名

  4. 去重查询:select distinct字段名 from 表名

  5. 对查询结果操作后显示(结果参与运算):select 字段名+固定值from 表名;

  6. ifnull(字段,值)当指定字段为null时 使用后面的值 (为此赋值后操作)

17DQL条件查询

将符合条件的数据查询出来

格式: select * from 表名 where 条件;

sql执行顺序:
    select 查询结果         3
      from 表名               1
      where 条件;             2

准备数据

# 注意: 重音符 ` (键盘横排数字1左边的那个键直接按,就是重音符)
#   重音符,在sql语句中可以区人关键字和普通字符串
CREATE TABLE stu3 (
    id INT,
    `name` VARCHAR(20),
    age INT,
    sex VARCHAR(5),
    address VARCHAR(100),
    math INT,
    english INT
);
# 批量插入
INSERT INTO stu3 VALUES 
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);
​
# 比较运算符
-- 查询math分数大于80分的学生
-- 查询english分数小于或等于80分的学生
-- 查询age等于20岁的学生
-- 查询age不等于20岁的学生
# 逻辑运算符
-- 查询age大于35且性别为男的学生(两个条件同时满足)
-- 查询age大于35或性别为男的学生(两个条件其中一个满足)
-- 查询id是1或3或5的学生
# in关键字
-- 查询id是1或3或5的学生
-- 查询id不是1或3或5的学生
# 范围
-- 查询english成绩大于等于75,且小于等于90的学生
# 模糊查询
-- 查询姓马的学生
-- 查询姓名中包含'德'字的学生
-- 查询姓马,且姓名有三个字的学生

比较运算符

    > 大于 
    < 小于 
    <= 小于等于 
    >= 大于等于 
    = 等于 
    <>  != 不等于   

逻辑运算符

and(&&) 多个条件同时满足 
or(||) 多个条件其中一个满足 
not(!) 不满足

in关键字

例如 查询id是1或3或5的学生 select * from 表名 where id 【如果不是1,3,5,就加一个not】in (1,3,5);

范围

select * from 表名 where 字段名 between 值1and值2(两边都是闭区间)

like模糊查询

select * from 表名where 字段名 like “匹配格式”

匹配格式

%匹配任意位 _匹配一位

其他

排序:select 字段名from表名where条件order by 字段名 asc/desc;

组合排序:select 字段名from表名where条件order by 字段名 asc/desc,字段名2 asc/desc;

聚合函数:select 聚合函数(字段名) from 表名;

分组:select 字段名 from 表名 where 条件 group by 字段名having 条件;

limit分页:select 字段名 from 表名 where语句 group by语句 having语句 order by语句 limit 开始条目,每页条目;

-- ==============条件查询
# 注意: 重音符 ` (键盘横排数字1左边的那个键直接按,就是重音符)
#	重音符,在sql语句中可以区人关键字和普通字符串
CREATE TABLE stu3 (
	id INT,
	`name` VARCHAR(20),
	age INT,
	sex VARCHAR(5),
	address VARCHAR(100),
	math INT,
	english INT
);
# 批量插入
INSERT INTO stu3 VALUES 
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);
# 比较运算符  > < >= <= = != <>
-- 查询math分数大于80分的学生
SELECT * FROM stu3 WHERE math > 80;
-- 查询english分数小于或等于80分的学生
SELECT * FROM stu3 WHERE english <= 80;
-- 查询age等于20岁的学生
SELECT * FROM stu3 WHERE age = 20;
-- 查询age不等于20岁的学生
SELECT * FROM stu3 WHERE age != 20;
SELECT * FROM stu3 WHERE age <> 20;
# 逻辑运算符  and or not
-- 查询age大于35且性别为男的学生(两个条件同时满足)
SELECT * FROM stu3 WHERE age > 35 AND sex = "男";
-- 查询age大于35或性别为男的学生(两个条件其中一个满足)
SELECT * FROM stu3 WHERE age > 35 OR sex = "男";
-- 查询id是1或3或5的学生
SELECT * FROM stu3 WHERE id=1 OR id=3 OR id=5;
# in关键字 
-- 查询id是1或3或5的学生
SELECT * FROM stu3 WHERE id IN (1,3,5);
-- 查询id不是1或3或5的学生
SELECT * FROM stu3 WHERE id NOT IN (1,3,5);
# 范围
/* 
   格式: select * from 表名 where 字段名 between 值1 and 值2
   注意: 值1必须小于值2
*/
-- 查询english成绩大于等于75,且小于等于90的学生
SELECT * FROM stu3 WHERE english BETWEEN 75 AND 90;
SELECT * FROM stu3 WHERE english >= 75 AND english <=90;
# 模糊查询
/*
  格式: select * from 表名 where 字段名 like "匹配格式";
  匹配格式:
	% : 匹配任意位
	_ : 匹配一位
	"马%" : 查询以 马 开头的学生信息
	"%马" : 查询以 马 结尾的学生信息
	"%马%" : 查询包含 马 的学生信息
	"_马%" : 匹配第二个字是 马 的学生信息
	"马__" : 名字有三个字,且第一个为 马 的
	"___" : 匹配名字有三个字的学生信息
	
*/
-- 查询姓马的学生
SELECT * FROM stu3 WHERE `name` LIKE "马%";
-- 查询姓名中包含'德'字的学生
SELECT * FROM stu3 WHERE `name` LIKE "%德%";
-- 查询姓马,且姓名有三个字的学生
SELECT * FROM stu3 WHERE `name` LIKE "马__";

作业

#新建一个数据库

CREATE DATABASE day03;

#使用数据

USE day03;

#创建表

create table products(

pid int primary key auto_increment, #主键(编号)

pname varchar(20), #商品名称

price double(5,2), #商品价格

pnum int,                           #商品数量

cno int,                            #商品分类

pdate timestamp #添加日期

);

#添加数据

insert into products values (1,'泰国大榴莲',98,12,1,null);

insert into products values (2,'新疆大枣',38,123,1,null);

insert into products values (3,'新疆切糕',68,50,2,null);

insert into products values (4,'十三香',10,200,3,null);

insert into products values (5,'老干妈',20,180,3,null);

insert into products values (6,'豌豆黄',20,120,2,null);

排序查询练习:

1.查询所有的商品,按价格进行排序.(asc-升序,desc-降序)

2.查询所有的商品,按价格降序,若价格一致按照数量升序.

3.查询名称有"新"的商品的信息并且按价格降序排序.

聚合函数练习:

1.查询商品表中有多少条记录

2.查询所有商品的价格的总和

3.查询商品表中价格的平均数

4.查询商品表中价格最大的

5.查询商品表中价格最小的

对平均值处理

保留两位小数

cast(avg(字段名称) as decimal(5,2))

分组查询练习:

1.根据cno字段分组,分组后统计商品的个数.

2.根据cno分组,分组统计每组商品的总数量,并且总数量> 200;

你可能感兴趣的:(黑马程序员Java全程笔记,java,后端,开发语言)