MySql数据库(学习笔记)*
* * * 初次上传学习资料,有不足之处望指教。* * *
DML:数据库(增删改操作)
1.mysql数据可库对某一字段进行加密可以使用MD5的加密方式或HEX的加密方式。
例:
Emp(id,emp_name,password,email,iphone,prces,age) 雇员表
1.INSERT INTO emp(emp_name,PASSWORD,email,iphone,prces,age) VALUES(‘jack’,MD5(‘123456’),‘jack@163.com’,‘13749288666’,123.11,25);
2.INSERT
INTO emp(emp_name,PASSWORD,email,iphone,prces,age) VALUES(‘jack3’,HEX(‘123456’),‘jack3@163.com’,‘15243285175’,125.11,27);
增加:
方式1:inserter into emp(emp_name,password,email,iphone,prces,age) values(‘asan’,‘123456’,’asan@163.com’,13749288666,13.14,20); //插入所有字段
方式2:inserter into emp(emp_name,password) values(‘asao’,‘000000’); //插入部分字段
方式3:inserter into emp
values(‘asan’,‘123456’,’asan@163.com’,15242150173,13.14,20); //插入所有字段
方式4:INSERT INTO stu(sname,age) VALUES(‘ccc’,12),(‘ddd’,13); //同时插入多条记录
修改:
方式1:update emp set
enm_name=’ahu’ where id=1; //将id=1的雇员姓名修改为ahu
方式2:update emp set prces=13.14 where
prces=0.00; //将表中价格为0.00的修改为13.14
方式3:update emp set
emp_name=‘刘亦菲’ where emp_name!=‘liudehua’; //将名字不是’liudehua’的改为‘刘亦菲’
方式4:update emp set emp_name=‘周杰伦’ where id in(2,4,6); //将id在(2,4,6)里的名字改为’周杰伦’
方式5:UPDATE emp SET
iphone=‘18614714676’ WHERE id between 2 and 5;
//在…之间between and
方式6:UPDATE emp SET PASSWORD=‘000000’,prces=100.23
WHERE id=4; //一次设置多个字段
删除
Delete:删除表中的数据,表结构还在。
Truncate:删除是把表直接drop掉,然后再创建一个同样的新表,执行速度比delete快。
例:
1.delete from stu where id=1;
2.delete from stu; //删除表中的所有内容
3.Truncate table stu; //删除表中的所有内容
DQL: 数据库(查询操作)
例如:
1.SELECT * FROM stu; //查询所有列
2.SELECT sname , age FROM stu; //查询指定列
-
SELECT * FROM stu WHERE sex=‘男’ AND age=20; //查询性别为男,并且年龄为20的学生记录。
-
SELECT * FROM stu WHERE id=1001 OR sname=‘zs’; //查询学号为1001或名为‘zs’的记录。
-
SELECT * FROM stu WHERE id IN(1001,1002,1003); //查询学号为1001,1002,1003的记录。
-
SELECT * FROM stu WHERE age BETWEEN 18 AND 20; //查询年龄在18-20之间的学生
-
SELECT * FROM stu WHERE sex!=‘男’; //查询性别非男的学生记录
-
SELECT * FROM stu WHERE age IS NULL; //查询age=null的学生记录
-
SELECT * FROM stu WHERE sname IS NOT NULL; //查询姓名不为null的学生记录
模糊查询(’_’代表任意一个字母,’%代表任意0-n个字母’)
-
SELECT * FROM stu WHERE sname LIKE ‘_____’;
//查询姓名由5个字母构成的学生记录 -
SELECT * FROM stu WHERE sname LIKE ‘____s’; //查询姓名由5个字母构成,并且第5个字母为‘s’结尾的学生记录
-
SELECT * FROM stu WHERE sname LIKE ‘a%’; //查询姓名以a开头的学生记录
-
SELECT * FROM stu WHERE sname LIKE ‘_b%’; //查询姓名中第2个字母为’b’的学生记录
-
SELECT * FROM stu WHERE sname LIKE ‘%k%’; //查询sname中含有s的学生记录
-
SELECT distinct sname FROM stu; //数据库去重
7.初始1: SELECT *,age+score FROM stu; //查询数据库中的age与score之和,生成新的列(age+score)
优化1:SELECT *,IFNULL(age,0)+IFNULL(score,0)
FROM stu; //查询数据库中的age与score之和,并将age和score为null赋值为0。生成新的列IFNULL(age,0)+IFNULL(score,0)。
优化2: SELECT *,IFNULL(age,0)+IFNULL(score,0) AS total
FROM stu; //查询数据库中的age与score之和,并将age和score为null赋值为0。生成新的列并给新的列取别名为total。
-
SELECT sname AS userName FROM stu; //给列起别名
-
SELECT * FROM stu ORDER BY gz; //查询工资并默认(升序)排序
SELECT * FROM stu ORDER BY gz ASC; //查询工资并按(ASC升序)排序
SELECT * FROM stu ORDER BY gz DESC; //查询工资并 (DESC降序)排序
SELECT * FROM stu ORDER
BY gz DESC,id DESC; //查询工资并 (DESC降序)排序,如果工资相同,则按id降序排序。
聚合函数
Count 总数
-
SELECT COUNT(*) FROM stu; //查询总计录条数
-
SELECT COUNT(jx) FROM stu; //查询有奖金的记录数,不包括为null的
-
SELECT COUNT(*) FROM stu where gz>2500; //查询月薪大于2500的记录条数
-
SELECT COUNT(*) FROM stu where ifnull(gz,0)+ifnull(jx,0)>5000;
//查询月薪+绩效>5000的记录条数 -
SELECT COUNT(jx),COUNT(jiangjin) FROM stu; //查询有绩效的人数和有奖金的人数
SUM和AVG 求和/平均值
-
SELECT SUM(gz) FROM stu; //查询工资和
-
SELECT SUM(gz),SUM(jx) FROM stu; //查询工资和,以及所有的绩效和
-
SELECT SUM(gz+IFNULL(jx,0)) AS usum FROM
stu; //查询工资+绩效之和 -
SELECT AVG(gz) AS uavg FROM stu; //统计所有雇员的平均工资
MAX和MIN 最大/最小
- SELECT MAX(gz),MIN(gz) FROM stu;
//查询最高/最低工资
分组查询
1.SELECT * FROM stu GROUP BY
sex; //以性别进行分组查询(展示出的为男的第一条数据和女的第一条数据)
-
SELECT bumen FROM stu GROUP BY bumen; //查询表中的部门并进行分组
-
SELECT bumen,GROUP_CONCAT(sname)
FROM stu GROUP BY bumen; //分组查询并展示每个分组内的人名 -
SELECT sex,GROUP_CONCAT(sname) FROM stu GROUP BY sex;
//男女分组,并展示每个分组内的人名 -
SELECT sname,sex FROM stu GROUP BY sex,sname; //对多个字段进行分组查询
6.SELECT bumen,GROUP_CONCAT(gz),SUM(gz),AVG(gz),MAX(gz),MIN(gz) FROM stu GROUP
BY bumen; //对部门进行分组并展示部门人员薪资、求和、求平均数、最大、最小。
-
SELECT bumen,GROUP_CONCAT(gz),SUM(gz)
FROM stu GROUP BY bumen; //查询每个部门的部门名称和每个部门的工资和。 -
SELECT
bumen,GROUP_CONCAT(sname),COUNT(*) FROM stu GROUP BY bumen; //查询每个部门的名称以及人数 -
SELECT bumen,GROUP_CONCAT(gz),COUNT(*)
FROM stu WHERE gz>1500 GROUP BY bumen;
//查询每个部门名称以及每个部门工资大于1500的人数
GROUP BY+having
Having与where的区别
Having:是在分组后对数据进行过滤。Having后面可以使用分组函数(统计函数)。
Where:是在分组前对数据进行过滤。Where后面不可以使用分组函数。
1.SELECT bumen,GROUP_CONCAT(gz),SUM(gz)
FROM stu GROUP BY bumen
having SUM(gz)>=9000; //查询工资总和大于9000的部门名称。
2.SELECT bumen,GROUP_CONCAT(gz),SUM(gz)
FROM stu WHERE gz>2000 GROUP BY bumen HAVING
SUM(gz)>6000 ORDER BY SUM(gz) DESC; //查询工资大于2000的,工资总和大于6000的部门名称以及工资和,将各部门工资总和大于6000的按降序排序。
总结:
书写顺序:select —> from —> where —> Group by —> having —> Order by —> limit
执行顺序:from
—> where —> Group by —> having —> select —>Order by —> limit
(从…表中判断条件为…的数据,并对数据进行分组,对分组后的数据再加判断条件,对所查询的数据结果进行分组,显示….条)
LIMIT 分页查询
1.SELECT * FROM stu LIMIT 0,3; //查询stu表中的前3条数据(LIMIT 参数1,参数2)
参数1:从那一行开始查。
参数2:一共要查几行。
角标从0开始。
分页思路:
int curPage=1; --当前页
int pageSize=3; --每页显示多少条数据
–当前页为1,第一页从0开始(1-1)*3=0;
–当前页为2,第一页从3开始(2-1)*3=3;
–当前页为3,第一页从6开始(3-1)*3=6;
–当前页为4,第一页从9开始(4-1)*3=9;
Select * from stu LIMIT (curPage-1)* pageSize,pageSize;
|----------第几页----------| |–查几条–|
改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎