MySQL基本介绍和基本操作---002
来源:互联网 发布:seo 关键词掉排名 编辑:程序博客网 时间:2024/05/17 00:55
紧接上篇,查询数据库有很多种方式和条件:
需求:2 ---- 按照价格降序排列
总结:
排序关键字:order by(默认是升序)
order by xxx desc;(降序)
order by xxx asc(升序);
需求:
价格按照升序排列,如果价格相同,按照品牌排序
SELECT * FROM phones ORDER BY jiage,pinpai DESC;
注意:
1、字符串可以排序,因为字符底层对应的是数字
2、排序标准可以有多个,多个情况下
如果第一排序标准一样,再按照第二排序标准比较....
根据多条记录产生一个结果,比如求平均价格,最大价格,最小价格,总记录数,总和....
avg ----- 平均值
max ----- 最大值
min ----- 最小值
sum ----- 总和
count --- 总记录数
例:
SELECT AVG(jiage) FROM phones;
总结:
a、聚合函数一般作用于数字,字段最好是数值型的
b、如果在字符串上使用聚合函数,那么不建议(了解)
max min ----- 按照字符串排序得到一个结果
sum avg ----- 得到的结果是 0
需求:
按照品牌分组,求出每组的平均价格
语法:
a、group by xxx ---- 按照某个字段分组,字段值相同的归为一组
b、分组一般结合聚合函数使用
c、如果不使用聚合函数,使用字段,那么选取组内的第一条记录(不建议使用)
字段可以使用,但是一般都用分组依赖的字段
注意:
对组进行条件筛选时,使用 having + 条件,不能使用 where
注意:这是固定语法
为什么?
where ----- 用于单条记录筛选
having ---- 专门用于组的筛选
将数据从一台机器A导出一个文件
还原:
将机器A导出的文件中的数据写入到机器B,就是数据的还原
每个表都应该包含一个主键,一个表中只能有一个主键
添加语法:
primary key (字段);
CONSTRAINT mypk PRIMARY KEY(id) //constraint
注意:
约束可以建表时就创建,还可以表建完了,添加数据,再添加约束,但是可能会出问题,
因为表中已有的数据,可能违反约束
主键删除(很少用):
alter table xxx drop primary key;
主键自增长:
auto_increment
特点:主键可以插入 null 值,且自动计算
注意:
1、自增长不适用字符串类型的主键
2、delete 与 truncate 的关于主键自增长的区别,前者会保留以前的主键信息
但是后者从1开始,为什么?因为后者要删表再建表
使用唯一约束的字段,在当前表中值不能重复出现
语法:
方式1:字段名 字段类型 unique (最常用)
方式2:字段最后:
CONSTRAINT myun UNIQUE (NAME)
方式3:
字段最后
UNIQUE (NAME)
方式4:
先建表,再修改表
ALTER TABLE un_4 ADD [CONSTRAINT myun2] UNIQUE(NAME);
注意:
如果使用方式4那么可能表中有数据存在了,且数据违反了唯一约束,那么这时约束添加失败
总结:
不管添加什么约束,只要是在表创建完了,去修改表添加约束的方式都是存在安全隐患的
删除约束:
alter table 表名 drop index 约束字段名;
限制字段,让字段必须插入对应的值
语法:
字段名 数据类型 not null
b、数据修改时效率低
显然不符合该要求
b、主表可以随意删除数据,语法没有问题,但是可能导致业务逻辑冲突
“一”的表 ---- 主表
“多”的表 ---- 从表
alter table 从表 add constraint 约束名
foreign key (从表字段) ---- 外键约束
references 主表(字段); ---- 引用主表字段
优点:
从表中不能随便插入数据
主表中不能随便删除数据
但是从表可以随便删,主表可以随便插
1.排序(order by)
需求:1 ---- 按照价格升序排列需求:2 ---- 按照价格降序排列
总结:
排序关键字:order by(默认是升序)
order by xxx desc;(降序)
order by xxx asc(升序);
需求:
价格按照升序排列,如果价格相同,按照品牌排序
SELECT * FROM phones ORDER BY jiage,pinpai DESC;
注意:
1、字符串可以排序,因为字符底层对应的是数字
2、排序标准可以有多个,多个情况下
如果第一排序标准一样,再按照第二排序标准比较....
2.聚合
聚合(函数):根据多条记录产生一个结果,比如求平均价格,最大价格,最小价格,总记录数,总和....
avg ----- 平均值
max ----- 最大值
min ----- 最小值
sum ----- 总和
count --- 总记录数
例:
SELECT AVG(jiage) FROM phones;
总结:
a、聚合函数一般作用于数字,字段最好是数值型的
b、如果在字符串上使用聚合函数,那么不建议(了解)
max min ----- 按照字符串排序得到一个结果
sum avg ----- 得到的结果是 0
3.分组:
就是按照某个字段,对表内数据进行分类需求:
按照品牌分组,求出每组的平均价格
语法:
a、group by xxx ---- 按照某个字段分组,字段值相同的归为一组
b、分组一般结合聚合函数使用
c、如果不使用聚合函数,使用字段,那么选取组内的第一条记录(不建议使用)
字段可以使用,但是一般都用分组依赖的字段
注意:
对组进行条件筛选时,使用 having + 条件,不能使用 where
注意:这是固定语法
为什么?
where ----- 用于单条记录筛选
having ---- 专门用于组的筛选
4.备份和还原
备份:将数据从一台机器A导出一个文件
还原:
将机器A导出的文件中的数据写入到机器B,就是数据的还原
5.主键约束
主键特点:非空唯一,主键列不能包含null值每个表都应该包含一个主键,一个表中只能有一个主键
添加语法:
方式1(最为常用):
字段名 字段类型 primary key;方式2:
字段最后:primary key (字段);
方式3:
字段最后(CONSTRAINT 约束,给主键约束起个名字,基本没用)CONSTRAINT mypk PRIMARY KEY(id) //constraint
方式4:
先创建表,再添加主键注意:
约束可以建表时就创建,还可以表建完了,添加数据,再添加约束,但是可能会出问题,
因为表中已有的数据,可能违反约束
主键删除(很少用):
alter table xxx drop primary key;
主键自增长:
auto_increment
特点:主键可以插入 null 值,且自动计算
注意:
1、自增长不适用字符串类型的主键
2、delete 与 truncate 的关于主键自增长的区别,前者会保留以前的主键信息
但是后者从1开始,为什么?因为后者要删表再建表
6.唯一约束
作用:使用唯一约束的字段,在当前表中值不能重复出现
语法:
方式1:字段名 字段类型 unique (最常用)
方式2:字段最后:
CONSTRAINT myun UNIQUE (NAME)
方式3:
字段最后
UNIQUE (NAME)
方式4:
先建表,再修改表
ALTER TABLE un_4 ADD [CONSTRAINT myun2] UNIQUE(NAME);
注意:
如果使用方式4那么可能表中有数据存在了,且数据违反了唯一约束,那么这时约束添加失败
总结:
不管添加什么约束,只要是在表创建完了,去修改表添加约束的方式都是存在安全隐患的
删除约束:
alter table 表名 drop index 约束字段名;
7.非空约束
作用:限制字段,让字段必须插入对应的值
语法:
字段名 数据类型 not null
8.外键约束_一对多
在很多情况下,一类事物与另一类事物之间存在一定的关系,如果想用数据库方式展现出来:A.一张表设计,存在的问题:
a、数据重复出现,造成空间浪费b、数据修改时效率低
B、从表必须依赖于主表
a、从业务逻辑上讲,从表依赖于主表,那么从表中和主表关联的字段的值,必须在主表中存在,但是当前版本2显然不符合该要求
b、主表可以随意删除数据,语法没有问题,但是可能导致业务逻辑冲突
“一”的表 ---- 主表
“多”的表 ---- 从表
C、实现思想,为从表中关联主表的字段添加约束 --- 外键约束
外键约束语法:alter table 从表 add constraint 约束名
foreign key (从表字段) ---- 外键约束
references 主表(字段); ---- 引用主表字段
优点:
从表中不能随便插入数据
主表中不能随便删除数据
但是从表可以随便删,主表可以随便插
9.外键约束_多对多
设计一个中间表,使用外键约束.阅读全文
0 0
- MySQL基本介绍和基本操作---002
- MySQL基本介绍和基本操作---001
- mysql常识和基本操作
- mysql 基本操作和命令
- MySql基本操作和使用
- MySQL数据库介绍及基本操作
- MySql学习笔记-介绍以及基本操作
- MySQL学习笔记(一)MySQL的介绍和基本操作
- MYSQL API以及基本操作介绍以及,MYSQL_FIELD介绍
- ClearCase 基本操作介绍
- ClearCase 基本操作介绍
- Oracle基本操作介绍
- 基本操作介绍
- hdfs基本操作介绍
- git基本操作介绍
- Oracle基本操作介绍
- MySQL 基础之了解基本操作和基本数据类型
- mysql 基本语法介绍
- JEECMS v6版标签
- 安卓设计规范(不断更新)
- SSL1338 人员分配(最大匹配)
- 神奇的输入法——小狼毫——个性化设置
- BaseDao
- MySQL基本介绍和基本操作---002
- 复选框、单行文本框、组合框
- 最长递增子序列的问题----两个经典题目:合唱队和Redraiment走法(简单动态规划)
- 【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
- PC端查看手机端页面
- 目标 检测领域(Object Detection Benchmark)
- us/osii
- Android悬浮球及全局返回功能的实现
- 浅析快消品企业营销费用管理之道