day07学习总结

一、引言

到此为止学习的数据存储方式:

        A.将数据存储在内存 特点:临时存储 周期比较短

        B.将数据存储在文件中 特点:永久存储 操作数据比较麻烦

缺点:

        A.要么存储的数据没有规定的格式 存的数据是临时存储

        B.存储数据量比较小 存储周期比较短 操作数据比较麻烦

        C.存储数据的安全性比较低

二、数据库

简介:

特点:

        有组织 有规律存储 可实现数据共享

数据库分类:

        关系型数据库:

                数据库中表与表之间存在关系,如:mysql、oracle、SqlServer、sqlite.....

        非关系型数据库:

                数据库中表与表之间不存在关系,如:hbase、Redis、mondb、tidb.....

三、数据库管理系统

简介:

        A.mysql是一个关系型数据库    B.mysql数据库是oracle旗下的产品 

特点:

        A.开源 免费

        B.体积小 大部分中小型企业都是使用mysql数据

        C.mysql 学习成本比较低 数据安全性比较高

四、SQL语句分类

简介:

        SQL语句,是结构化查询语句,就是用于操作数据库的语句

分类:

        DDL:主要是针对数据库和数据库表的操作,关键字:create  aletr  drop  show....

        DML:主要是针对数据库表的操作,关键字:insert  delete  update 

        DQL:主要是针对于数据库中的数据查询操作,关键字:select

        DCL:主要是针对数据库表中的数据以及权限管理操作,关键字:alter  use

五、DDL-操作数据库

#创建数据库
create database 数据库名
#判断数据库是否存在再创建
create database if not exists 数据库名
#创建数据库并设置编码格式
create database 数据库名 character set 编码格式
#查看创建数据库的格式
show create database 数据库名
#修改数据库编码格式
alter database 数据库名 character set 编码格式
#查看所有数据库
show databases 
#使用具体数据库
use 数据库名
#删除数据库  谨慎使用
drop database 数据库名

六、mysql中的数据类型

数值类型:

字符串类型:

时间类型:

七、DDL-操作数据库表

#创建表
create table 表名 (
列名 数据类型(长度),
列名 数据类型(长度),
列名 数据类型(长度),
...
最后一行不用加逗号
);

#查看所有数据表
show tables

#查看表结构
desc 表名

#修改表名
alter table 表名 rename to 新表名

#删除表
drop table 表名

八、DDL-对数据库表中列操作

#增加列  在末尾增加
alter table 表名 add 列名 数据类型(长度)

#增加列 在指定列后面增加
alter table 表名 add 列名 数据类型(长度) after 指定列


#修改列  修改列的数据类型及长度
alter table 表名 modify 列名 新数据类型(长度)

#修改列  修改列名及数据类型和长度
alter table 表名 change 原列名 新列名 数据类型(长度)

#删除列
alter table 表名 drop 列名

        

九、DML-对数据库表操作

增加:

#第一种插入方式
insert into 表名 value (属性值1,属性值2,属性值3,...)  #使用此方法 必须填写所有属性值

#第二种插入方式 
insert into 表名 (属性1,属性2,属性3,...) value (值1,值2,值3,...) #使用此方法 可以只插入选定属性

#第三种插入方式
insert into 表名 (属性1,属性2,属性3,...) value (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...)...;  #使用此方法 可以一次插入多条数据

修改:

#修改数据的时候一定要加上条件 
update  表名 set 属性1=值1,属性2=值2,... where 条件

删除:

#删除单条数据
delete  from 表名 where 条件  #条件就是要删除的数据行的某一属性


#删除整个表数据
delete from 表名   #该方法会删除整个表的数据 

truncate table 表名  #该方法会删除整个表的数据并删除表结构

十、单表查询

数据表:

#创建商品表:
CREATE TABLE product(
pid INT PRIMARY KEY,#主键ID
pname VARCHAR(20),#商品名称
price DOUBLE,#商品价格
category_name VARCHAR(32)#商品分类名称
);
INSERT INTO product(pid,pname,price,category_name) VALUES(1,'联想电脑',5000,'电脑
办公');
INSERT INTO product(pid,pname,price,category_name) VALUES(2,'海尔电脑',3000,'电脑
办公');
INSERT INTO product(pid,pname,price,category_name) VALUES(3,'雷神电脑',5000,'电脑
办公');
INSERT INTO product(pid,pname,price,category_name) VALUES(4,'JACK JONES',800,'服
装');
INSERT INTO product(pid,pname,price,category_name) VALUES(5,'真维斯',200,'服装');
INSERT INTO product(pid,pname,price,category_name) VALUES(6,'花花公子',440,'服
装');
INSERT INTO product(pid,pname,price,category_name) VALUES(7,'劲霸',2000,'服装');
INSERT INTO product(pid,pname,price,category_name) VALUES(8,'香奈儿',800,'女士用
品');
INSERT INTO product(pid,pname,price,category_name) VALUES(9,'相宜本草',200,'女士用
品');
INSERT INTO product(pid,pname,price,category_name) VALUES(10,'面霸',5,'女士用品');
INSERT INTO product(pid,pname,price,category_name) VALUES(11,'雪碧',56,'饮料饮
品');
INSERT INTO product(pid,pname,price,category_name) VALUES(12,'香飘飘奶茶',1,'饮料饮
品');
INSERT INTO product(pid,pname,price,category_name)
VALUES(13,'iPhone9',8000,NULL);

查询所有数据:

#查询所有数据
select * from 表名  # *表示所有列  select是查询关键字
select * from product

查询指定列:

#查询指定列的记录
select 列名,列名,... from 表名
select pid,pname form product

根据条件查询:

#根据条件查询
select * from 表名 where 条件
select * from product where category_name="电脑办公"

运算查询:


#运算查询
select 需要运算的列 from 表名
select price+10 from product

设置别名:


#设置别名
select 列名 as 别名,... from 表名 as 别名  #通常给表名设置别名可以省略as 给列名设置别名不省略
select price+10 as price from product p

根据条件查询:

         

#查询商品名称为“花花公子”的商品所有信息:
SELECT * FROM product WHERE pname="花花公子"

#查询价格为800商品
SELECT * FROM product WHERE price=800

#查询价格不是800的所有商品
SELECT * FROM product WHERE price!=800
SELECT * FROM product WHERE NOT price=800

#查询商品价格大于60元的所有商品信息
SELECT * FROM product WHERE price>60

#查询商品价格在200到1000之间所有商品
SELECT * FROM product WHERE price>=200 AND price<=1000
SELECT * FROM product WHERE price>=200 && price<=1000
SELECT * FROM product WHERE price BETWEEN 200 AND 1000

#查询商品价格是200或800或者2000的所有商品
SELECT * FROM product WHERE price=200 OR price=800 OR price=2000
SELECT * FROM product WHERE price=200 || price=800 || price=2000
SELECT * FROM product WHERE price IN (200,800,2000)

模糊查询:

# _ 表示一个字符  %表示0-n个字符
select * from 表名 where 模糊查询条件的列 like 匹配条件

#查询含有'霸'字的所有商品
SELECT * FROM product WHERE pname LIKE "%霸%"

#查询以'香'开头的所有商品
SELECT * FROM product WHERE pname LIKE "香%"

#查询第二个字为'想'的所有商品
SELECT * FROM product WHERE pname LIKE "_想%"

分页查询:

# 关键字 limit    第一个?表示当前数据库的索引从0开始 第二个?表示每一页显示的数据条数
select * from 表名 limit ?,? 

#分页查询 前三条数据
SELECT * FROM product LIMIT 0,3

#分页查询 4,5,6条数据
SELECT * FROM product LIMIT 3,3

#分页查询 7 8 9条数据
SELECT * FROM product LIMIT 6,3

#分页查询中浏览器中的转换规则为  (页码索引-1)*页量数

非空查询:

# is null 和 is not null 

# is null 表示没有插入数据的默认状态  is null 不等于 ""

#商品没有分类的商品
SELECT * FROM product WHERE category_name IS NULL

#查询有分类的商品
SELECT * FROM product WHERE category_name IS NOT NULL

查询后排序:

#关键字 order by  asc(升序)|| desc(降序)
select * from 表名 order by 需要排序的列名 asc | desc

#1.使用价格排序(降序)
SELECT * FROM product ORDER BY price DESC

#2.在价格排序(降序)的基础上
#若价格相同,相同价格的数据以pid降序排序
SELECT * FROM product ORDER BY price DESC,pid DESC

分组查询:

#关键字 group by
select * from 表名 group by 分组的列名

# 统计各个分类下商品的个数
SELECT category_name,  COUNT(1) FROM product GROUP BY category_name

过滤查询:

#关键字 having
select * from 表名 gruop by 分组的列名 having 过滤的条件 

#having和where的比较
#相同点: 都可以对数据进行过滤 
#不同点: having是分组之后再进行过滤 where 是在分组之前进行过滤的


#统计各个分类商品的个数,有且 只显示分类名称不为空值的数据
SELECT category_name,COUNT(1) FROM product GROUP BY category_name 
HAVING category_name IS NOT NULL

十一、mysql中常见的函数

聚合函数:

#1 查询商品的总条数
SELECT COUNT(1) FROM product 

#查看商品总价格、最大价格、最小价格、价格的平均值
SELECT SUM(price) "总价",MAX(price) "最大值",MIN(price) "最小值" ,ROUND(AVG(price),2) "平
均值" FROM product

#2 查询价格大于200商品的总条数
SELECT COUNT(1) FROM product WHERE price >200

#3 查询分类为'电脑办公'的所有商品的总记录
SELECT COUNT(1) FROM product WHERE category_name="电脑办公"

#4 查询分类为'服装'所有商品的平均价格
SELECT AVG(price) FROM product WHERE category_name="服装"

时间函数:

#时间函数
#获取年月日时分秒
SELECT SYSDATE()
#获取年月日
SELECT CURDATE()
#获取时分秒
SELECT CURTIME()
#获取现在时间 年月日时分秒
SELECT NOW()

字符串函数:

#字符串函数
#拼接
SELECT CONCAT("123","abc","789")
#插入 索引从1开始
SELECT INSERT("班长喜欢去洗脚",3,2,"666")
#将字母转换为小写
SELECT LOWER("abcDEF")
#将字母转换为大写
SELECT UPPER("abcDEF")
#截取字符串 索引从1开始
SELECT SUBSTRING("班长喜欢去洗脚",3,3)

十二、查询语句中的顺序

select * from 表名 where like 模糊条件 group by 分组条件 having 过滤条件 order by 排序 limit ?,?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白昼乌龙茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值