热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL基础学习篇(2)——DQL

MySql基础学习注明:文章笔记均来自哔哩哔哩视频学习七、数据查询【重点】7.1数据库表的基本结构关系数据库是以表格(Table)进行数据存储,表格由“行”和“

MySql基础学习

注明:文章笔记均来自哔哩哔哩视频学习


七、数据查询【重点】


7.1 数据库表的基本结构


关系数据库是以表格(Table)进行数据存储,表格由“行”和“列”组成



  • 经验:执行查询语句返回的结果是一张虚拟表

7.2 基本查询


语法:SELECT列名FROM表名



关键字描述
SELECT指定要查询的列
FROM指定要查询的表

7.2.1 查询部分列

# 查询员工表中所有员工的编号】你名字、邮箱
select employee_id fist_name, email
from t_employee

7.2.2查询所有列

# 查询所有列
# 1、使用*的方式
SELECT * FROM t_employees;
# 2、使用列名的方式
SELECT 所有列的列名 FROM t_employees;

  • 注意:生产环境下,优先使用列名查询,*的方式需要转换成全列名。效率低,可读性差

7.2.3 对列中的数据进行运算

# 查询员工的编号、名字、年薪
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY * 12 FROM t_employees

算数运算符描述
+两列做加法运算
-两列做减法运算
*两列做乘法运算
/两列做除法运算

  • % 是占位符。而并非模运算符

7.2.4 列的别名


列 as 列名


SELECT EMPLOYEE_ID '编号',FIRST_NAME AS '姓氏',SALARY * 12 AS '年薪' FROM t_employees;

7.2.5 查询结果去重


distinct 列名


# 查询员工表中有多少个经理
SELECT DISTINCT MANAGER_ID FROM t_employees;

7.3 排序查询


语法:SELECT 列名 FROM 表名 ORDER BY排序列[排序规则]



排序规则描述
ASC对前面排序列做升序排列
desc对前面排序列做降序排序

7.3.1 依据单列排序

# 对员工工资进行升序排序
SELECT EMPLOYEE_ID,salary FROM t_employees ORDER BY salary + 0 ASC;
# 对员工工资进行降序排序
SELECT EMPLOYEE_ID,salary FROM t_employees ORDER BY salary + 0 DESC;

7.3.2 依据多列排序

# 按照工资高低进行降序排序,如果工资相等,按照员工编号升序进行排序
SELECT EMPLOYEE_ID,salary FROM t_employees ORDER BY salary + 0 DESC, EMPLOYEE_ID DESC;

7.4 条件查询


语法: SELECT 列名 FROM 表名 WHERE 条件



关键字描述
where 条件在查询结果中,筛选符合查询条件的查询结果,条件为布尔表达式

7.4.1 等值判断

# 查询符合条件的数据
SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY = 11000SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY = 24000

  • 注意:与java不同(==),mysql中等值判断使用=

7.4.2 逻辑判断(and 、or、 not)

SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY = 11000 AND COMMISSION_PCT = 0.30 AND EMPLOYEE_ID = '148';SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY = 11000 OR COMMISSION_PCT = 0.30;SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE NOT SALARY = 11000;

7.4.3 不等值判断&#xff08;>、 <、>&#61;、<&#61;、<>、!&#61;&#xff09;

SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY !&#61; 11000;SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY <> 11000;# 查询工资区间在[6000, 10000]之间
SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY >&#61; 6000 AND salary <&#61; 10000;

7.4.4 区间判断(between 起始and 终止)

# 查询工资区间在[6000, 10000]之间
SELECT EMPLOYEE_ID, FIRST_NAME,salary
FROM t_employees
WHERE SALARY BETWEEN 6000 AND 10000;

  • 注意&#xff1a;在区间判断中&#xff0c;小值在前&#xff0c;大值在后&#xff0c;反之&#xff0c;得不到结果

7.4.5 null值判断&#xff08;is null、is not null&#xff09;

# 查询出经理编号为null的员工信息
SELECT employee_id, FIRST_NAME,MANAGER_ID
FROM t_employees
WHERE MANAGER_ID IS NULL;SELECT employee_id, FIRST_NAME,MANAGER_ID
FROM t_employees
WHERE MANAGER_ID IS NOT NULL;

7.4.6 枚举查询&#xff08;IN&#xff08;值1&#xff0c; 值2&#xff0c;值3&#xff09;&#xff09;


# 查询部门编号为70,80,90 的员工信息
SELECT EMPLOYEE_ID, FIRST_NAME,SALARY,department_id
FROM t_employees
WHERE department_id &#61; 70 OR department_id &#61; 80 OR department_id &#61; 90;SELECT EMPLOYEE_ID, FIRST_NAME,SALARY,department_id
FROM t_employees
WHERE department_id IN (70,80,90);
# in 的效率在大数据面前较低

7.4.7 模糊查询


  • LIKE_&#xff08;单个任由字符&#xff09;

​ 列名 LIKE ‘张__’

  • LIKE %(任意长度的任意字符)

    列名 LIKE ‘张%’



  • 注意&#xff1a;模糊查询只能和LIKE关键字结合使用

# 查询L开头的三个字的员工信息
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY
FROM t_employees
WHERE FIRST_NAME LIKE &#39;L__&#39;;
# 查询所有以L开头的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY
FROM t_employees
WHERE first_name LIKE &#39;张%&#39;;

7.4.8 分支结构查询

CASEWHEN 条件1 THEN 结果1WHEN 条件2 THEN 结果2WHEN 条件3 THEN 结果3ELSE 结果
END

  • 注意&#xff1a;通过使用case end进行条件判断&#xff0c;每条数据对应生成一个值
  • 经验&#xff1a;类似java中的switch

# 查询员工信息
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY,department_id,
CASEWHEN SALARY >&#61; 10000 THEN &#39;A&#39;WHEN SALARY >&#61; 8000 AND SALARY <10000 THEN &#39;B&#39;WHEN SALARY >&#61; 6000 AND SALARY <8000 THEN &#39;C&#39;WHEN SALARY >&#61; 4000 AND SALARY <6000 THEN &#39;D&#39;ELSE &#39;E&#39;
END AS "level"
FROM t_employees;

7.5 时间查询


select 时间函数&#xff08;[参数列表]&#xff09;



  • 经验&#xff1a;执行时间函数查询&#xff0c;会自动生成一张虚表

时间函数描述
SYSDATE当前系统时间&#xff08;日月年时分秒&#xff09;
CURDATE获取当前日期
CURTIME获取当前时间
WEEK(DATE)获取指定日期为一年中的第几周
YEAR(DATE)获取指定日期的年份
HOUR(TIME)获取指定时间的小时值
MINUTE(TIME)获取时间的分钟值
DATEDIFF(DATE,DATE2)获取DATE1和DATE2之间相隔的天数
ADDDATE(DATE,N)计算DATE加上N天后的日期

# 当前系统的时间
SELECT SYSDATE();
# 当前系统的ri期
SELECT CURDATE();
# 获取系统时间
SELECT CURTIME();
# 获取指定日期为一年中的第几周
SELECT WEEK(SYSDATE());
# 获取指定日期忠厚的年份
SELECT YEAR(SYSDATE());
# 获取小时值
SELECT HOUR(CURTIME());
# 获取分钟值
SELECT MINUTE(CURTIME());
# 指定日期之间的相隔天数
SELECT DATEDIFF(&#39;2020-4-1&#39;,&#39;2019-4-1&#39;);
# 计算date日期加上n天后的日期
SELECT ADDDATE(&#39;2020-4-1&#39;, 5);

7.6 字符串查询


语法: SELECT 字符串函数([参数列表])



字符串函数说明
concat(str1, …)将多个字符串拼接
insert(str, pos, len, newStr)将str中指定pos位置开始len长度的内容替换为newStr
lower(str)将指定字符串转换诶小写
upper(str)将指定字符串转换为大写
substring(str, num, len)将str字符串指定num位置开始截取len个内容


# 多个字符串拼接
SELECT CONCAT(&#39;My&#39;, &#39;S,&#39;, &#39;QAL&#39;);
SELECT CONCAT(FIRST_NAME,&#39;-&#39;, last_name) FROM t_employees;
# 字符串替换
SELECT INSERT(&#39;这是一个数据库&#39;,3, 2, &#39;MySql&#39;)
# 字符串转小写
SELECT LOWER(&#39;LOWER&#39;)
# 字符串转大写
SELECT UPPER(&#39;shdiuashdui&#39;)
# 指定内容截取
SELECT SUBSTRING(&#39;JaavaMySqlStrSub&#39;,6,6);
# MySqlS

7.7 聚合函数


语法: SELECT 聚合函数(列名) FROM 表名;



  • 经验&#xff1a;对多条数据的单列进行统计&#xff0c;返回统计后的一行结果

聚合函数说明
SUM&#xff08;&#xff09;求所有行中单列结果的总和
AVG()平均值
MAX()最大值
MIN()最小值
COUNT()求总行数

# 聚合函数
# 求单列所有数据的和
SELECT SUM(SALARY) FROM t_employees;
# 求单列所有数据的平均值
SELECT AVG(SALARY) FROM t_employees;
# 求单列最大值
SELECT MAX(SALARY &#43; 0) FROM t_employees;
# 求单列最小值
SELECT MIN(salary &#43; 0) FROM t_employees;
# 求总行数 员工总数
SELECT COUNT(EMPLOYEE_ID) FROM t_employees;
# 统计有提成的人数 会自动忽略null值&#xff0c;不进行统计
SELECT COUNT(COMMISSION_PCT) FROM t_employees;

  • 注意&#xff1a;聚合函数会自动忽略null值&#xff0c;不进行统计

7.8 分组查询


语法&#xff1a;SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组依据(列);



关键字说明
GROUP BY分组依据&#xff0c;必须在WHERE之后生效

# 查询各个部门的额总人数
SELECT department_id, COUNT(employee_id)
FROM t_employees
GROUP BY department_id;
# 查询各个部门的平局工资
SELECT department_id, AVG(salary)
FROM t_employees
GROUP BY department_id;
# 查询各个部门、各个岗位的总人数
SELECT department_id,job_id, COUNT(employee_id)
FROM t_employees
GROUP BY department_id, job_id;
# 常见问题&#xff1a;查询各个部门id&#xff0c;总人数、first_name
SELECT department_id,COUNT(employee_id), first_name
FROM t_employees
GROUP BY department_id;

  • 分组查询中&#xff0c;select显示的列只能是分组依据列&#xff0c;或者聚合函数列&#xff0c;不能出现其他列

7.9 分组过滤查询


语法&#xff1a;SELECT 列名 FROM 表名 WHERE 条件 GROUNP BY 分组列 HAVING 过滤规则



关键字说明
HAVING过滤规则过滤规则定义对分组后的数据进行过滤

统计部门的最高工资

#思路
#1.确定分组依据&#xff08;DEPARTMENT_ID&#xff09;
#2.对分组后的数据&#xff0c;过滤出部门编号是60、70、90信息
#3.MAX()函数
SELECT DEPARTMENT_ID,MAX(SALARY)
FROM t_employees GROUP BY DEPARTMENT_ID
HAVING DEPARTMENT_ID IN (60,70,90);
#GROUP确定分组依据DEPARTMENT_ID
#HAVING过滤出60&#xff0c;70&#xff0c;90的部门
#SELECT查看部门编号和MAX函数

7.10 限定查询


语法&#xff1a;SELECT 列名 FROM 表名 LIMIT 起始行,查询行数



关键字说明
LIMIT offset_start,row_count限定查询结果的起始行和总行数

7.10.1 查询前5行记录

#查询表中前五名员工的所有信息
SELECT * FROM t_employees LIMIT 0,5;

  • 注意&#xff1a;起始行是从0开始&#xff0c;代表了第一行&#xff0c;第二个参数代表的是从指定行开始查询几行

7.10.2 查询范围记录

#查询表中从第四行开始&#xff0c;查询10行
SELECT * FROM t_employees LIMIT 3,10;

7.10.3 LIMIT典型应用

分页查询&#xff1a;一页显示10条&#xff0c;一共查询三页。

#思路&#xff1a;第一页是从0开始&#xff0c;显示10条
SELECT * FROM t_employees LIMIT 0,10;
#第二页是从10条开始&#xff0c;显示10条
SELECT * FROM t_employees LIMIT 10,10;
#第三页是从20条开始&#xff0c;显示10条
SELECT * FROM t_employees LIMIT 20,10;

  • 在分页应用场景中&#xff0c;起始行是变化的&#xff0c;但是一页显示的页数是不变的

7.11 查询总结


7.11.1 SQL语句编写顺序


COPYSELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组 HAVING 过滤条件 ORDER BY 排序列(ASC|DESC) LIMIT 起始行,查询行数



7.11.2 SQL语句执行顺序

COPY1.FROM:指定数据来源表
2.WHERE:对查询数据第一次过滤
3.GROUP BY:分组
4.HAVING:对分组后的数据第二次过滤
5.SELECT:查询各字段的值
6.ORDER BY:排序
7.LIMIT:限定查询结果

7.12 子查询&#xff08;作为条件判断&#xff09;


语法&#xff1a;SELECT 列名 FROM 表名 WHERE 条件(子查询结果)



7.12.1 查询工资大于Bruce的员工信息

#1.先查询到Bruce的工资&#xff08;一行一列&#xff09;
SELECT SALARY FROM t_employees WHERE FIRST_NAME &#61; &#39;Bruce&#39;;
#2.查询工资大于Bruce的员工信息
SELECT * FROM t_employees WHERE SALARY > 6000;
#3.将前两句整合
SELECT * FROM t_employees
WHERE SALARY >
(SELECT SALARY FROM t_employees WHERE FIRST_NAME &#61; &#39;Bruce&#39;);

  • 注意&#xff1a;将子查询一行一列的结果作为外部查询的条件&#xff0c;做第二次查询
  • 子查询得到一行一列的结果才能作为外部查询的等值判断条件或不等值判断条件

7.13 子查询&#xff08;作为枚举查询的条件&#xff09;


语法&#xff1a;SELECT 列名 FROM 表名 WHERE 列名 IN (子查询结果);



7.13.1 查询与名为“KING”同一部门的员工信息

#思路
#1.先查询KING所在的部门编号
SELECT DEPARTMENT_ID FROM t_employees WHERE LAST_NAME &#61; &#39;King&#39;;#80,90
#2.再查询80&#xff0c;90号部门的员工信息
SELECT * FROM t_employees WHERE DEPARTMENT_ID IN(80,90);
#3.SQL:合并
SELECT * FROM t_employees
WHERE DEPARTMENT_ID IN
(SELECT DEPARTMENT_ID FROM t_employees WHERE LAST_NAME &#61; &#39;King&#39;);

  • 将子查询多行一列的结果作为外部查询的枚举查询条件&#xff0c;做第二次查询

7.13.2 工资高于60编号部门的员工信息

#1.查询60编号部门所有人的工资&#xff08;多行单列&#xff09;
SELECT SALARY FROM t_employees WHERE DEPARTMENT_ID &#61; 60;
#2.查询工资高于60编号部门所有人的工资的员工信息&#xff08;高于所有&#xff09;
SELECT * FROM t_employees
WHERE SALARY >
ALL(SELECT SALARY FROM t_employees WHERE DEPARTMENT_ID &#61; 60);
#3.查询工资高于60编号部门的员工信息&#xff08;高于部分&#xff09;
SELECT * FROM t_employees
WHERE SALARY >
ANY(SELECT SALARY FROM t_employees WHERE DEPARTMENT_ID &#61; 60);

  • 注意&#xff1a;当子查询结果集形式为多行单列时可以使用ANY或ALL关键字

  • ALL表示查询高于部门所有员工工资的员工信息&#xff1b;ANY表示查询只需要高于部门中任意一名员工工资的员工信息


7.14 子查询&#xff08;作为一张表&#xff09;

查询到一张多行多列的临时表&#xff0c;这张表也可以作为查询数据源。


语法&#xff1a;SELECT 列名 FROM (子查询的结果集) WHERE 条件;



7.14.1 查询员工表中工资排名前5名的员工信息

#思路&#xff1a;
#1.先对所有员工的薪资进行排序&#xff08;排序后的临时表&#xff09;
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees ORDER BY SALARY DESC;
#2.再查询临时表中前5行员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM (临时表) LIMIT 0,5;
#3.合并
SELECT * FROM
(SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees ORDER BY SALARY DESC) AS 临时表 LIMIT 0,5;

  • 将子查询多行多列的结果作为外部查询的一张表&#xff0c;做第二次查询
  • 注意&#xff1a;子查询作为临时表&#xff0c;需要为其赋予一个临时表名

7.15 合并查询


  • SELECT * FROM 表名1 UNION SELECT * FROM 表名2
  • SELECT * FROM 表名1 UNION ALL SELECT * FROM 表名2


  • 返回的查询结果是将表1的结果和表2的结果做了一个合并。

15.1 合并两张表的结果&#xff08;去除重复记录&#xff09;

#合并两张表的结果&#xff0c;去除重复记录
SELECT * FROM T1 UNION SELECT * FROM T2;

  • 注意&#xff1a;合并结果的两张表&#xff0c;列数必须相同&#xff0c;列的数据类型可以不同

列数必须相同是因为该合并做了一个纵向合并&#xff0c;两个4列多行的结果集表合并后也是一个4列多行的表&#xff0c;但是合并后的列名以第一个结果集表为准。


7.15.2 合并两张表的结果&#xff08;保留重复记录&#xff09;

#合并两张表的结果&#xff0c;不去除重复记录&#xff08;显示所有&#xff09;
SELECT * FROM T1 UNION ALL SELECT * FROM T2;

该合并结果会保留两张查询表中重复的记录&#xff0c;而UNION只保留第一个不重复的记录

7.16 表连接查询


语法&#xff1a;SELECT 列名 FROM 表1 连接方式 表2 ON 连接条件



7.16.1 内连接查询&#xff08;INNER JOIN ON&#xff09;

#1.查询所有员工的职员和职位信息 SQL标准
SELECT * FROM t_employees INNER JOIN t_jobs
ON t_employees.JOB_ID &#61; t_jobs.JOB_ID;
#2.查询所有员工的职员和职位信息 MYSQL
SELECT * FROM t_employees,t_jobs WHERE t_employees.JOB_ID &#61; t_jobs.JOB_ID;

如果没有指定连接条件&#xff0c;则会造成笛卡尔积的结果&#xff0c;第一张表中的每行数据都会和第二张表进行连接。


  • 经验&#xff1a;在MySQL中&#xff0c;第二种方式也可以作为内连接查询&#xff0c;但是不符合SQL标准
  • 而第一种属于SQL标准&#xff0c;与其他关系型数据库通用

7.16.2 三表连接查询

#查询所有员工工号、名字、部门名称、部门所在国家ID
SELECT EMPLOYEE_ID,FIRST_NAME,t_departments.DEPARTMENT_NAME,t_locations.COUNTRY_ID
FROM t_employees
INNER JOIN t_departments ON
t_employees.DEPARTMENT_ID&#61;t_departments.DEPARTMENT_ID
INNER JOIN t_locations ON
t_departments.LOCATION_ID&#61;t_locations.LOCATION_ID;

该语句查询出来的结果没有员工编号为178的员工信息&#xff0c;该名员工的部门ID为NULL&#xff0c;不符合连接条件&#xff0c;所以不包含在匹配出的结果集中&#xff0c;你可以自己动手尝试并查看结果。之所以提这个是因为可以与下节的语句区分开来。


7.16.3 左外连接&#xff08;LEFT JOIN ON&#xff09;

#查询所有员工的工号、名字、工资及其对应的部门名称&#xff08;没有部门的员工也在查询结果中&#xff0c;部门名称以NULL值补充&#xff09;
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY,DEPARTMENT_NAME
FROM t_employees
LEFT JOIN t_departments
ON t_departments.DEPARTMENT_ID&#61;t_employees.DEPARTMENT_ID;

该语句查询出来的结果包含没有部门的178号员工&#xff0c;DEPARTMENT_NAME的值被填充为NULL。


  • 注意&#xff1a;左外连接&#xff0c;是以左表作为主表&#xff0c;依次向右匹配&#xff0c;匹配到则返回结果&#xff1b;
  • 匹配不到则返回NULL值填充

7.16.4 右外连接&#xff08;RIGHT JOIN ON&#xff09;

#查询所有部门信息&#xff0c;以及此部门中的所有员工信息&#xff08;没有员工的部门也在查询结果中&#xff0c;员工信息以NULL值填充&#xff09;
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY,DEPARTMENT_NAME
FROM t_employees
RIGHT JOIN t_departments
ON t_departments.DEPARTMENT_ID&#61;t_employees.DEPARTMENT_ID;

该查询结果以部门表作为主表&#xff0c;有些部门没有员工&#xff0c;其员工信息全部为NULL。


  • 注意&#xff1a;右外连接&#xff0c;是以右表为主表&#xff0c;依次向左匹配&#xff0c;匹配到返回结果
  • 匹配不到&#xff0c;则返回NULL值填充

推荐阅读
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
author-avatar
mobiledu2502863997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有