博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL学习笔记(4)
阅读量:5881 次
发布时间:2019-06-19

本文共 3284 字,大约阅读时间需要 10 分钟。

插入记录①

INSERT [INTO] tbl_name [(col_name,…)] {VALUES | VALUE} ({

expr | DEFAULT},…),(…),…

可以用表达式或者DEFAULT来赋值

可以用DEFAULT给自增字段,或者DEFAULT字段赋值

可以用NULL给自增字段赋值

插入多条记录

插入记录②←此种方法可以使用子查询(SubQuery),使用较少,不支持一次插入多条

INSERT [INTO] tbl_name SET col_name = {expr | DEFAULT},…

插入记录③←此方法可以将查询结果写入到指定数据表

INSERT [INTO] tbl_name [(col_name,…)] SELECT

eg.INSERT test(username) SELECT username FROM users WHERE age >= 30;


 单表操作

 更新记录①←单表

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1 = {expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}][WHERE where_condition](←省略where条件则将会更新所有的记录)

eg1.更新年龄,在原有年龄上增加5岁

 

eg2.当前age更新为age减去当前id的值,sex更新为0

eg3.(更新过程中加条件)id为偶数的年龄加10

删除记录①←单表删除

DELETE FROM tbl_name [WHERE where_condition]

eg1.DELETE FROM users WHERE id=6;


重点

查找记录

SELECT select_expr [, select_expr …]

[

   FROM table_references

   [WHERE where_condition]

   [GROUP BY {col_name | position} [ASC | DESC], …]

   [HAVING where_condition]

   [ORDER BY {col_name | expr | position} [ASC | DESC], …]

   [LIMIT {[offset,] row_count | row_count OFFSET offset}]

]

①select_expr 查询表达式←查询表达式的顺序将影响结果的顺序,别名最好前加AS

用逗号分隔;*表示所有列;多表连接时用表名.字段名连接;使用[AS] alias_name赋予别名(当字段名称太长的时候比较常用),别名可以使用在GROUP BY,ORDER BY中。

②WHERE表达式:可以使用MySQL支持的函数或者运算符

③GROUP BY:查询结果分组(字段必须都在select语句中,多和聚合函数搭配使用)

ASC:默认,升序

DESC:降序

 

④HAVEING:分组条件指定

分组条件为聚合函数,或者字段必须出现在当前的select语句中

聚合函数:

1. AVG  返回指定组中的平均值,空值被忽略。     例:select  prd_no,avg(qty) from sales group by prd_no 2. COUNT  返回指定组中项目的数量。       例:select  count(prd_no) from sales 3. MAX  返回指定数据的最大值。       例:select  prd_no,max(qty) from sales group by prd_no 4. MIN  返回指定数据的最小值。       例:select  prd_no,min(qty) from sales group by prd_no 5. SUM  返回指定数据的和,只能用于数字列,空值被忽略。       例:select  prd_no,sum(qty) from sales group by prd_no 6. COUNT_BIG  返回指定组中的项目数量,与不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。      例:select  count_big(prd_no) from sales 7. GROUPING  产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.      例:select  prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup 8. BINARY_CHECKSUM  返回对表中的行或表达式列表计算的二进制校验值,用于检测表的更改。      例:select  prd_no,binary_checksum(qty) from sales group by prd_no 9. CHECKSUM_AGG  返回指定数据的校验值,空值被忽略。      例:select  prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no 10. CHECKSUM  返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。 11. STDEV  返回给定表达式中所有值的统计标准偏差。      例:select  stdev(prd_no) from sales 12. STDEVP  返回给定表达式中的所有值的填充统计标准偏差。      例:select  stdevp(prd_no) from sales 13. VAR  返回给定表达式中所有值的统计方差。      例:select  var(prd_no) from sales 14. VARP  返回给定表达式中所有值的填充的统计方差。      例:select  varp(prd_no) from sales

 

⑤ORDER BY:根据查询结果进行排序

升序;降序

eg.SELECT * FROM users ORDER BY id DESC;

多字段排序

eg. SELECT * FROM users ORDER BY age, id DESC;

先根据age升序排一次,然后再此基础上根据id降序排列

⑥LIMIT:限制查询结果返回的数量(实现分页效果,偏移值公式为(当前页码-1)*每页显示的记录数)

eg1.SELECT * FROM users LIMIT 2;

从第0条开始返回两条记录

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 

mysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: 
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目: 
mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行

//换句话说,LIMIT n 等价于 LIMIT 0,n。

 

转载于:https://www.cnblogs.com/kabocya/p/6046024.html

你可能感兴趣的文章
memcached 分布式聚类算法
查看>>
jquery css3问卷答题卡翻页动画效果
查看>>
$digest already in progress 解决办法——续
查看>>
虚拟机 centos设置代理上网
查看>>
Struts2中Date日期转换的问题
查看>>
mysql 数据类型
查看>>
Ubuntu 设置当前用户sudo免密码
查看>>
设置tomcat远程debug
查看>>
android 电池(一):锂电池基本原理篇【转】
查看>>
Total Command 常用快捷键
查看>>
ionic 调用手机的打电话功能
查看>>
怎么使用阿里云直播服务应用到现在主流直播平台中
查看>>
Xcode全局替换内容,一键Replace
查看>>
1000 加密算法
查看>>
exif_imagetype() 函数在linux下的php中不存在
查看>>
Ruby的case语句
查看>>
Linux的链接文件-ln命令
查看>>
maven的tomcat插件如何进行debug调试
查看>>
table表头固定
查看>>
截取字符串中两个字符串中的字符串
查看>>