MySql数据库(学习笔记)

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’),‘[email protected]’,‘13749288666’,123.11,25);

2.INSERT
INTO emp(emp_name,PASSWORD,email,iphone,prces,age) VALUES(‘jack3’,HEX(‘123456’),‘[email protected]’,‘15243285175’,125.11,27);

增加:

方式1:inserter into emp(emp_name,password,email,iphone,prces,age) values(‘asan’,‘123456’,’[email protected]’,13749288666,13.14,20); //插入所有字段

方式2:inserter into emp(emp_name,password) values(‘asao’,‘000000’); //插入部分字段

方式3:inserter into emp
values(‘asan’,‘123456’,’[email protected]’,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; //查询指定列

  1. SELECT * FROM stu WHERE sex=‘男’ AND age=20; //查询性别为男,并且年龄为20的学生记录。

  2. SELECT * FROM stu WHERE id=1001 OR sname=‘zs’; //查询学号为1001或名为‘zs’的记录。

  3. SELECT * FROM stu WHERE id IN(1001,1002,1003); //查询学号为1001,1002,1003的记录。

  4. SELECT * FROM stu WHERE age BETWEEN 18 AND 20; //查询年龄在18-20之间的学生

  5. SELECT * FROM stu WHERE sex!=‘男’; //查询性别非男的学生记录

  6. SELECT * FROM stu WHERE age IS NULL; //查询age=null的学生记录

  7. SELECT * FROM stu WHERE sname IS NOT NULL; //查询姓名不为null的学生记录

模糊查询(’_’代表任意一个字母,’%代表任意0-n个字母’)

  1. SELECT * FROM stu WHERE sname LIKE ‘_____’;
    //查询姓名由5个字母构成的学生记录

  2. SELECT * FROM stu WHERE sname LIKE ‘____s’; //查询姓名由5个字母构成,并且第5个字母为‘s’结尾的学生记录

  3. SELECT * FROM stu WHERE sname LIKE ‘a%’; //查询姓名以a开头的学生记录

  4. SELECT * FROM stu WHERE sname LIKE ‘_b%’; //查询姓名中第2个字母为’b’的学生记录

  5. SELECT * FROM stu WHERE sname LIKE ‘%k%’; //查询sname中含有s的学生记录

  6. 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。

  1. SELECT sname AS userName FROM stu; //给列起别名

  2. 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 总数

  1. SELECT COUNT(*) FROM stu; //查询总计录条数

  2. SELECT COUNT(jx) FROM stu; //查询有奖金的记录数,不包括为null的

  3. SELECT COUNT(*) FROM stu where gz>2500; //查询月薪大于2500的记录条数

  4. SELECT COUNT(*) FROM stu where ifnull(gz,0)+ifnull(jx,0)>5000;
    //查询月薪+绩效>5000的记录条数

  5. SELECT COUNT(jx),COUNT(jiangjin) FROM stu; //查询有绩效的人数和有奖金的人数

SUM和AVG 求和/平均值

  1. SELECT SUM(gz) FROM stu; //查询工资和

  2. SELECT SUM(gz),SUM(jx) FROM stu; //查询工资和,以及所有的绩效和

  3. SELECT SUM(gz+IFNULL(jx,0)) AS usum FROM
    stu; //查询工资+绩效之和

  4. SELECT AVG(gz) AS uavg FROM stu; //统计所有雇员的平均工资

MAX和MIN 最大/最小

  1. SELECT MAX(gz),MIN(gz) FROM stu;
    //查询最高/最低工资

分组查询
1.SELECT * FROM stu GROUP BY
sex; //以性别进行分组查询(展示出的为男的第一条数据和女的第一条数据)

  1. SELECT bumen FROM stu GROUP BY bumen; //查询表中的部门并进行分组

  2. SELECT bumen,GROUP_CONCAT(sname)
    FROM stu GROUP BY bumen; //分组查询并展示每个分组内的人名

  3. SELECT sex,GROUP_CONCAT(sname) FROM stu GROUP BY sex;
    //男女分组,并展示每个分组内的人名

  4. 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; //对部门进行分组并展示部门人员薪资、求和、求平均数、最大、最小。

  1. SELECT bumen,GROUP_CONCAT(gz),SUM(gz)
    FROM stu GROUP BY bumen; //查询每个部门的部门名称和每个部门的工资和。

  2. SELECT
    bumen,GROUP_CONCAT(sname),COUNT(*) FROM stu GROUP BY bumen; //查询每个部门的名称以及人数

  3. 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编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 K
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的有限差分法实验报告用MATLAB中的有限差分法计算槽内电位;对比解析法和数值法的异同点;选取一点,绘制收敛曲线;总的三维电位图+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值