-- 主键冲突(duplicate key)
insert into user(id,username,address) values(1,'xujian','anhui');
insert into user(id,username,address) values(2,'xiewei','anhui'); insert into user(id,username,address) values(2,'luyang','anhui');-- 主键冲突了
-- 可以选择性的进行处理,更新或替换
-- 主键冲突:更新操作
insert into user(id,username,address) values(2,'xiewei','liuan') on duplicate key update address='liuan';
-- 主键冲突:替换操作
replace into user(id,username,address) values(2,'luyang','hefei');
select * from user; -- 蠕虫复制:从已有的数据中去获取数据,然后将数据又进行新增操作,数据将成倍增加
-- 表创建高级操作:从已有表创建新表
create table copyuser like user; -- 只复制结构,不复制数据
-- 蠕虫复制:先查出数据,然后将查出的数据新增一遍
insert into copyuser select(id,username,address) from user;
-- 蠕虫复制的意义
-- 1、从已有表拷贝数据到新表中
-- 2、可以顺序让表中的数据膨胀到一定的数量级:测试表的压力以及效率 -- 更新数据
-- 基本语法:
update user set username='wanghui' where id=1; -- 删除:如果表中存在主键自增长,那么当删除之后,自增长不会还原
-- 数据的删除是不会改变表结构只能删除表后重建表
truncate 表名; -- 清空数据,但是保留表的结构 -- 高级查询
-- 去掉重复数据(所有字段都一样)
select distinct * from my_info;
-- 字段别名:当数据进行查询出来的时候,有时候名字并不一定就满足需求,
-- (多表查询的时候,会有同名字段),需要对字段名进行重命名
select name as 姓名,numbers as 学号 from my_info; select * from my_student,studentinfo;
-- 从一张表中取出一条记录,去另一张表中匹配所有的记录,而且全部保留:(记录数和字段数)
-- 将这种结果称为:笛卡尔积(交叉连接) -- 子查询:数据的来源是一条查询语句(查询语句的结果是二维表)
select * from (select * from my_student) as s; -- where子句:返回的结果:0或1,0代表false,1代表true
-- where是唯一一个直接从磁盘获取数据的时候就开始判断的条件:从磁盘取出一条记录,开始where判断,判断的结果如果成立保存到内存,如果失败直接放弃 -- group by 子句 :根据某个字段进行分组(相同的放一组,不同的分到不同的组)
-- 分组的意义:是为了统计数据(安祖统计:按组字段进行数据统计)
-- count:统计分组后的记录数(每一组有多少记录)
-- max:统计每组中最大的值
-- min:统计最小值
-- avg: 统计平均值
-- sum:统计和
select count(*),gender,avg(age) as 平均年龄,max(age) as 最大年龄,min(age) as 最小年龄,sum(age) as 年龄总和 from studentinfo group by gender; -- 分组会自动排序:根据字段默认排序
-- group by 字段[asc|desc]; 对分组的结果然后合并之后的整个结果进行排序 -- Having子句:与where子句一样,进行条件判断
-- where是针对磁盘数据进行判断,进入到内存之后,会进行分组操作,分组结果就需要having来做
-- Having能做where能做的几乎所有事情,但是where却不能做having能做的很多事情
-- 1.分组统计的结果或者说统计函数都只有having能够使用
-- 2.Having能够使用字段别名,where不能 -- order by排序:根据某个字段进行升序或者降序,依赖校对集
select * from studentinfo order by age asc; -- limit子句:是一种限制借结果的子句,限制数量
-- 有两种使用方式:
-- 方案一:只用来限制长度(数据量)
select * from studentinfo limit 2;
-- 方案二:限制起止位置,限制数量:limit 起始位置,限制数量
-- 主要用来实现数据的分页
select * from studentinfo limit 1,3;

mysql学习笔记(三)的更多相关文章

  1. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  2. MySql学习笔记三

    MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) val ...

  3. mysql学习笔记三 —— 数据恢复与备份

    要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...

  4. MySQL学习笔记三:库和表的管理

    1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...

  5. mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...

  6. MySQL学习笔记(三)—索引

    一.概述 1.基本概念       在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...

  7. MySQL学习笔记(三):常用函数

    一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...

  8. MySql学习笔记(三) —— 聚集函数的使用

    1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...

  9. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

随机推荐

  1. python进行数据分析---python3卡方

    数学公式思路: 代码: 使用典型的pandas进行的逻辑操作 同时也指针对了pandas https://github.com/renfanzi/python3_Variance_Chisquare. ...

  2. Java如何重置正则表达式的模式?

    在Java编程中,如何重置正则表达式的模式? 以下示例演示如何使用Pattern类Pattern.compile()方法和Matcher类的m.find()方法来重置正则表达式的模式. package ...

  3. googletest进行单元测试(使用cmake编译)

    一.前提: 1.假定你的系统为centos6系列 2.假定你已经安装了基本的编译环境,gcc,g++4.4.7 3.假定你已经设置了环境变量:KDS_MOBILE_STOCK_HOME 4.假定你已经 ...

  4. EF + MySql 错误:配置错误 无法识别的元素“providers”

    “/”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 无法识别的元素“providers” ...

  5. Cisco配置VLAN+DHCP中继代理+NAT转发上网

    实验环境: 路由器 使得TP-link 设置NAT转发使用,tp-link路由器网关设置成 192.168.30.254 (核心层)Cisco 3550三层交换机(型号C3550-I5Q3L2-M)配 ...

  6. Linux中mkdir和touch命令区别

    一.目的 本文将介绍linux下新建文件或文件夹.删除文件或文件夹命令.         touch能够新建文件,mkdir用来新建文件夹.rm用来删除文件或文件夹.         本文将选取ubu ...

  7. CentOS7 从管理员组中 新增/删除用户

    $ sudo usermod -aG wheel usera #增加 $ sudo usermod -G usera usera # 删除

  8. Oracle 10.2.0.1 精简客户端配置

    装完Ooracle 11g之后客户端sqlplus复制粘贴的时候不太简单,就 用了实验室的老版本10g客户端. 前提服务端装好了,想换一个客户端.11g sql plus也能用. 文件链接: 链接:h ...

  9. Dominoserver 安装

    domino安装及语言包安装 http://wenku.baidu.com/view/f473600d581b6bd97f19ea9b.html dominoserver 安装后启动配置: http: ...

  10. lnmp无法删除.user.ini文件的解决办法

    有一次使用命令lnmp vhost del删除虚拟主机后,需要使用ftp或者rm命令删除网站目录,但是却发现网站目录下有个文件.user.ini文件没有自动删除,出现提示rm: cannot remo ...