数据库精选题(三)(SQL语言精选题)(按语句类型分类)
🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀数据库💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
前言
创建语句
创建表
创建视图
创建索引
插入语句
一次插入一条
一次插入多条
删除语句
修改语句
修改表结构
修改表格内容
查询语句
分类一:没有任何
分类二:至少有一个
分类三:满足条件一同时满足条件二但不满足条件三
分类五:模糊查询%的使用
分类五:间接关系(祖孙关系、间接先行课关系)
分类六:找出所有
分类七:存在重复项只记录一次(学生多次考试只取最高成绩)
分类八:存在具体数值要求+分组处理
分类九:超过所有
分类十:聚集函数嵌套的转化方法
分类十一:带条件更新
分类十二: 同表格不同角色匹配问题
总结
前言
数据库的操作无非就是增、删、改、查+创建
接下来,我将从以上五个角度来对SQL精选题进行分类,并总结相应解法
创建语句
数据库中创建主要包括:创建表、创建视图、创建索引、创建用户
创建的方式有:直接创建(直接指定创建内容)、间接创建(利用已有视图或表创建)
创建表
直接创建:
create table table1(sid char(12) not null,name varchar(10) not null,age int,birthday date,credit numeric(4,1)primary key(sid)foreign key(name) references student_name(name)
);
先设定属性;再设定主键、外键等键值
间接创建:
create table table1 as
select sid,cid,score
from student
where sid='202100202052'
两者比较:
直接创建:需要用小括号确定表结构范围(注意逗号、分号、括号)
间接创建:需要用as,但是会根据查询结果直接创建,不需要用()确定范围(啥也没有)
创建视图
视图的创建使用as间接创建,因为视图并不实际存储于数据库中,所以是基于已有表进行的
直接创建:
视图不能直接定义创建。因为视图并不存储在数据库中,而是基于已有表进行的创建
间接创建:
create view test3 as
select sid,cid,pub.course_name,score
from pub.student natural join pub.student_course natural join pub.course
where pub.student_name='李龙'
两者比较:
视图的创建只能用间接创建法:利用as、不用加()限制范围
创建索引
索引的创建没有直接创建和间接创建的说法,索引只能定义创建,不能根据已有索引创建
create index index1 on student(sid,name)
插入语句
插入语句分为:一次插入一条记录、一次插入多条记录两种类型
一次插入一条
insert into student values(202100202052,'李华',to_date('19950303 101010','yyyymmdd hh24miss'))
一次插入多条
insert allinto test1_course values('300002','数据库','300001',2.5)into test1_course values('300001','数据结构',null,2)
select * from dual
两者比较:
1、insert into
2、insert all into
3、date类型的插入利用to_data('20080715 101010‘,‘yyyymmdd hh24miss’)
删除语句
1、删除语句和插入语句的格式是相对应的
2、本部分的精选题重点在于各种全新的语句用法(不仅仅限于and、from、where等一般语句)
总结如下:
- regexp_like(sid,'^[0-9]+$')
- where score between 0 and 100
- length(sid)
- like '% %'
- where 后面跟(cid,tid)这种整体匹配语句
删除语句对应的是插入语句(一个是增一个删),因此两者的语法也类似。insert into和delete from相匹配
题目一:
删除表中的学号不全是数字的那些错误数据,学号应该是数字组成,不能够包含字母空格等非数字字符。方法之一:用substr函数,例如Substr(sid,1,1)返回学号的第一位,判断是否是数字。
delete from test3_01
where sid not in(select sidfrom test3_01where regexp_like(sid, '^[0-9]+$'))
题目二:
删除表中的性别有错误的那些错误数据(性别只能够是“男”、“女”或者空值)。
delete from test3_03
where sex <> '男' and sex <> '女' and sex is not null
题目三:
删除表中的院系名称有空格的、院系名称为空值或者院系名称小于3个字的那些错误数据。
delete from test3_04
where dname like '% %' or
dname is null or
length(dname) < 3
题目四:
删除其中的错误数据,错误指如下情况:课程号和教师编号在教师授课表pub.teacher_course中不同时存在的,即没有该教师教该课程;
delete from test3_08
where (cid, tid) not in(select cid, tidfrom pub.teacher_course
)
题目五:
删除其中的错误数据,错误指如下情况:成绩数据有错误(需要先找到成绩里面的错误)。
delete from test3_09
where score not between 0 and 100
修改语句
在创建数据库表格并往表格内插入数据后,我们可能还需要对表格进行修改,因此修改语句也是必要的。修改语句包括:修改表结构、修改表格内容
修改表结构
alter table test4_02
add avg_score numeric(3,1)
alter table test4_02
drop column avg_score
修改表格内容
update test4_01 Sset sum_score=(select sum(score)from pub.student_course Twhere S.sid=T.sid)
update test4_07
set sex= replace( sex,'性','')
update test4_10
set age=(select (2012-extract (year from birthday))from pub.student_42where test4_10.sid=sid
)
where test4_10.age is null;
两者联系及感悟:
1、只有修改表结构和创建表结构时需要指定table和view
2、修改表格内容时用update以及set函数
3、replace函数常用来update不规范数据
4、extract函数用来提取date类型数据中的year、month、day都可以
重点来啦!!!数据库SQL语言中最难的部分就是查询。数据库查询大约占数据库语言使用的80%(李晖老师说的),所以查询语句写的好/不好对整体数据库性能的影响是很大的
查询语句
编写语句的思考流程:
1、确定要查询的变量
2、根据要查询的变量确定要查询的关系表(哪几个表、是否要自然连接处理等)
3、写查询的条件(最难的部分)
分类一:没有任何
没有任何=完全否定=全集-只要有一个在里面
使用minus实现
找出至少选修了学号为“200900130417”的学生所选修的一门课的学生的学号、姓名(不包含这名同学)。
select sid,name
from pub.student
where sid in((select distinct sidfrom pub.student_coursewhere cid in (select cidfrom pub.student_coursewhere sid='200900130417'))minus(select sidfrom pub.studentwhere sid='200900130417')
)
分类二:至少有一个
in:或关系,只要有一个就是满足的
至少有一个=只要一个就满足=或关系
找出至少选修了一门其先行课程号为“300002”号课程的学生的学号、姓名。
select sid, namefrom pub.studentwhere sid in(select sidfrom pub.student_coursewhere cid in ( select cidfrom pub.student_coursewhere pcid='300002')
)
分类三:满足条件一同时满足条件二但不满足条件三
满足多个条件/不满足多个条件的处理:
1、对于关系集合用minus、intersect来求交并集;
2、对于在where查询条件后的用and、or等来处理
3、一个属性上多条件——》交并集(minus、intersect);多个属性上多条件(and、or)
找出选修了“操作系统”并且也选修了“数据结构”,但是没有选修“程序设计语言”的学生的学号、姓名。
select sid,namefrom pub.studentwhere sid in((select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='操作系统'))intersect(select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='数据结构'))minus(select sidfrom pub.student_coursewhere cid=(select cidfrom pub.coursewhere name='程序设计语言')))
查询2010级、计算机科学与技术学院、操作系统的学生成绩表,内容有学号、姓名、成绩。
select sid,name,scorefrom pub.student_course natural join pub.studentwhere class='2010' and dname='计算机科学与技术学院' and cid=(select cidfrom pub.coursewhere name='操作系统')
分类五:模糊查询%的使用
%:就是模糊查询;模糊查询与like以及not like绑定使用
条件字符串部分限制、部分自由
查询所有不姓张、不姓李、也不姓王的学生的学号sid、姓名name
select sid,name
from pub.student
where name not like '张%'
and name not like '李%'
and name not like '王%'
分类五:间接关系(祖孙关系、间接先行课关系)
两种方法:
1、利用笛卡尔积实现
2、利用嵌套结构实现
比较和联系:
1、笛卡尔积A*B实现本质就是让A中的每一个元组和B中的每一个元组比较
2、嵌套结构先找出B的所有元组,利用in来将A中的每个元组和B的每个元组比较比较
找出有间接先行课的所有课程的课程号、课程名称。
select cid ,name
from pub.course
where fcid in (select cidfrom pub.coursewhere fcid is not NULL
)
已知所有的父子关系fstable表,找出里面的爷孙关系的名字
select s1.father,s2.son
from fstable s1,fstable s2
where s1.son=s2.father
分类六:找出所有
所有关系:用除运算实现,除运算找出的就是集合和其子集的关系(所有关系)
在SQL中不能使用除运算,改为用not exists实现
找出选修了所有课程的学生的学号、姓名。
select sid,name
from pub.student
where not exists((select cidfrom pub.course)minus(select cidfrom pub.student_coursewhere pub.student_course.sid=pub.student.sid)
)
分类七:存在重复项只记录一次(学生多次考试只取最高成绩)
表格1存在重复项,想要计算没有重复项参与的表格1中的数据
1、找中介人:找到一个不存在重复项的表格2,利用表格2实现对表格1的剔除工作。此时,表格2作用为:剔除者、观察者;表格1作用为:实际要找寻的资料原件
使用update语句,利用pub.student_course、pub.course,统计 “总学分”;
(这是需要注意:成绩及格才能够计算所得学分,一门课多个成绩都及格只计一次学分)
update test4_03 Sset sum_credit=(select sum(credit)from pub.coursewhere cid in(select distinct cidfrom pub.student_course SCwhere S.sid=SC.sidand SC.score>=60))
分类八:存在具体数值要求+分组处理
分组处理:需要用表中的某一个元素将其他信息聚合起来(出版社/会员)
对于每个出版商,找出每个借了该出版商五本书以上的会员的编号和姓名
select memb_no,name
from member m
where memb_no in(select memb_nofrom borrowed bw,book bkwhere bw.isbn=bk.isbngroup by publisher,memb_nohaving (count(*)>5)
)
having:后面跟的应该是bool类型的表达式结果,having和where一样是筛选条件
having的作用范围:分组后的组内
分类九:超过所有
超过所有=超过最大值——》利用max来求解最大值
找出所有收入超过 "小型银行公司 "每个员工的员工 ID
select id
from work
where salary >
(select max(salary)from workswhere company_name='Small Bank Corporation'
)
假设一个公司可以在好几个城市有分部。找出位于“Small Bank Corporation”所在城市的所有公司(company_name是主键,所以一家公司只能在一个城市)
Select company_name
From Company
Where city in (select cityFrom companyWhere company_name = 'Small Bank Corporation'
)
上题的难度在于对题目的理解:位于“Small Bank Corporation”所在城市。
1、找出“Small Bank Corporation”的城市
2、利用in来实现位于动作
分类十:聚集函数嵌套的转化方法
有时候我们会遇到需要使用两个聚集函数的情况,但是在一个关系中聚集函数是不能够嵌套使用的,因此需要用别的方法来代替聚集函数嵌套使用
常见的嵌套场景:count+max(求count元组数中的最大值)
找出雇员最多的公司名称(或公司名称、在最多员工数相同的情况下)的公司名称
1、首先需要求解每个公司的雇员——需要count聚集函数
2、求解雇员数最大的公司——需要max函数对count结果使用
转化:雇员最多=雇员比最多的还多(count+max)=雇员比所有的都多(count+all),成功避开聚集函数的嵌套
select company_name
from works
group by company_name
having count(id)>=all(select count(id)from worksgroup by company_name
)
找出工资总额最小的公司
select company_name
from works
group by company_name
having (sum(salary)<all(select sum(salary)from worksgroup by company_name)
)
分类十一:带条件更新
存在一类更新是带有条件的,不同条件下的元组更新的方式也不同
更新无非增加/减少
为了防止非法更新两次:需要满足增加时先加大的,减少时先减少的
给 "第一银行公司 "的每位经理加薪 10%,除非其工资超过 100000 美元。在这种情况下,只加薪 3%(这两个update的顺序不可以更换)(增加时先加大的,减少时先减少的;防止有的记录被操作两次)
update works as T
set T.salary=t.salary*1.03
where works.id in (select idfrom manages
)
and salary>100000
and company_name='First Bank Corporation'update works as T
set T.salary=t.salary*1.1
where works.id in (select idfrom manages
)
and salary<100000
and company_name='First Bank Corporation'
分类十二: 同表格不同角色匹配问题
匹配问题=比较是否相等=比较问题
比较只能发生在两个关系模式之间
1、此时两个角色进行比较,两个角色对应的表格是同一个
2、因此拿相同关系模式当作两个不同的关系模式做笛卡尔积,再比较结果
3、笛卡尔后判断相应的属性是否符合要求
查找与其经理住在同一城市同一条街上的每位员工的 ID 和姓名
select e.id,e.person_name
from employee e natural join managers m,employee e2
where m.manager_id=e2.id and e.city=e2.city and e.street=e2.street
简化写法:
SELECT e.id, e.person_name
FROM employee e
JOIN managers m ON e.id = m.id
JOIN employee e2 ON m.manager_id = e2.id
WHERE e.city = e2.city AND e.street = e2.street;
总结
本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。
相关文章:
数据库精选题(三)(SQL语言精选题)(按语句类型分类)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据库 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 创建语句 创建表 创建视图 创建索引…...
Spring Boot + Apache Tika 实现文档内容解析
文章目录 1. 环境准备2. 创建 Spring Boot 项目2.1 初始化项目2.2 添加 Apache Tika 依赖 3. 创建文档解析服务3.1 创建服务类3.2 创建控制器类 4. 配置和运行4.1 配置 Apache Tika 数据文件4.2 运行应用程序 5. 测试和验证5.1 使用 Postman 或 cURL 进行测试 6. 注意事项和优化…...
AcWing 255. 第K小数
自己想出来的,感觉要容易想到,使用可持久化线段树,时间上要比y的慢一倍。大体思想就是,我们从小到大依次加入一个数,每加入一个就记录一个版本,线段树里记录区间里数的数量,在查询时,…...
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
目录 Nginx 开始 概述 安装(非 Docker) 配置环境变量 常用命令 配置文件概述 location 路径匹配方式 配置反向代理 实现效果 准备工作 具体配置 效果演示 配置负载均衡 实现效果 准备工作 具体配置 实现效果 其他负载均衡策略 配置动…...
从零开始精通Onvif之用户管理
💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 用户管理是Onvif协议的重要组成部分,它允许系统管理员通过网络接口创建、删除、修改用户账户,并分配不同的权限&am…...
设计模式——设计模式原则
设计模式 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 设计模式原则 单一职责原则(SPS): 又称单一功能原则,面向对象五个基本原则(SOLID)之一 原则定义…...
链表中环的入口节点
链表中环的入口节点 描述 链表中环的入口节点 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。 数据范围: n≤10000, 1<结点值<10000 要求:空间复杂度 O(1)…...
STL——函数对象,谓词
一、函数对象 1.函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象。 函数对象使用重载的()时,行为类似函数调用,也叫仿函数。 本质: 函数对象(仿函数)是一个类,不是一个函数。 2.函数对象…...
【区分vue2和vue3下的element UI Descriptions 描述列表组件,分别详细介绍属性,事件,方法如何使用,并举例】
在 Element UI(为 Vue 2 设计)和 Element Plus(为 Vue 3 设计)中,Descriptions(描述列表)组件通常用于展示一系列的结构化信息。然而,需要明确的是,Element UI 官方库中并…...
atcoder abc 358
A welcome to AtCoder Land 题目: 思路:字符串比较 代码: #include <bits/stdc.h>using namespace std;int main() {string a, b;cin >> a >> b;if(a "AtCoder" && b "Land") cout <&…...
手写docker:你先玩转namespace再来吧
哈喽,我是子牙老师。今天咱们聊聊Linux namespace 瓦特?你没听过namespace?那有必要科普一下了:namespace是Linux内核提供的一种软件性质的资源隔离机制。容器化技术,比如docker,就是基于这样的机制实现的…...
注册安全分析报告:PingPong
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …...
mysqladmin——MySQL Server管理程序(二)
mysqladmin 是一个命令行工具,用于执行简单的 MySQL 服务器管理任务,如检查服务器的状态、创建和删除数据库、重载权限等。 1 reload 重新加载授权表(grant tables)。当修改了MySQL的权限系统(例如,修改了…...
Microsoft Edge无法启动搜索问题的解决
今天本来想清一下电脑,看到visual studio2022没怎么用了就打算卸载掉。然后看到网上有篇文章说进入C盘的ProgramFiles(x86)目录下的microsoft目录下的microsoft visual studio目录下的install目录中,双击InstallCleanup.exe&#…...
Appium Android 自动化测试 -- 元素定位
自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。 Appium 定位方式和 selenium 一脉相承,selenium 中的定位方式Appium 中都支持,而 Appium 还增加了自己…...
C#.net6.0+Vue+Ant-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解
C#.net6.0VueAnt-Design智慧医院手术麻醉系统源码 手术麻醉软件信息化管理系统 麻醉文书祥解 医护人员通过手麻信息系统可以进行手术的预约申请、受理、安排,从门诊医生下医嘱到发起手术申请、护士长审核通过,均实现了全流程信息化管理,大大…...
6G时代,即将来临!
日前,由未来移动通信论坛、紫金山实验室主办的2024全球6G技术大会在南京召开。本次大会以“创新预见6G未来”为主题,在大会开幕式上发布了协力推进全球6G统一标准行动的倡议和紫金山科技城加速培育以6G技术引领未来产业行动计划。 在我国已开展第五代移动…...
进程、线程的区别
进程、线程的关系 开工厂生产手机,制作一条生产线,这个生产线上有很多的器件以及材料。一条生产线就是一个进程。 只有生产线是不够的,使用找五个工人来进行生产,这个工人能够利用这些材料最终一步步的将手机做出来,这…...
JWT详解、JWTUtil工具类的构建方法
一、前言 使用一些用户不友好的项目时,会发现,每一次进入网站,我们都要重新登录。 这是为什么呢? 现代多采用前后端分离的项目架构,这种架构,前后端使用不同的服务器,两个服务器上存储的信息不…...
江协科技51单片机学习- p11 静态数码管显示
前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: 51单片机入门教程-2…...
pandas.frame输出parquet
代码 import pandas as pd import pyarrow._parquet as pqdata pd.read_parquet("0000.parquet") total_rows len(data) half_row_num total_rows//2 print(half_row_num) first_half data.iloc[:20000] second_half data.iloc[20000:20000] # print(first_hal…...
【CT】LeetCode手撕—42. 接雨水
目录 题目1- 思路2- 实现⭐42. 接雨水——题解思路 3- ACM实现 题目 原题连接:42. 接雨水 1- 思路 模式识别:求雨水的面积 ——> 不仅是只求一个比当前元素大的元素,还要求面积 单调栈 应用场景,需要找到左边比当前元素大的…...
GPT-4o一夜被赶超,Claude 3.5一夜封王|快手可灵大模型推出图生视频功能|“纯血”鸿蒙大战苹果AI|智谱AI“钱途”黯淡|月之暗面被曝进军美国
快手可灵大模型推出图生视频功能“纯血”鸿蒙大战苹果AI,华为成败在此一举大模型低价火拼间,智谱AI“钱途”黯淡手握新“王者”,腾讯又跟渠道干上了“美食荒漠”杭州,走出一个餐饮IPOGPT-4o一夜被赶超,Anthropic推出Cl…...
C# + easyui 写的一个web项目
用C# easyui 来开发,其实就是为了开发速度,用easyui可以一天写很多页面,比一些低代码平台还快。 登陆页面 主界面 记录数统计 家庭信息采集表 新建家庭 家庭成员 低保、五保人员帮扶情况登记表 低保、五保人员帮扶情况登记表的新增和编辑 治…...
JVM 垃圾回收分配及算法
一、判断对象是否可以回收 垃圾收集器在做垃圾回收的时候,首先需要判定的就是哪些内存是需要被回收 的,哪些对象是「存活」的,是不可以被回收的;哪些对象已经「死掉」了,需 要被回收。 一般有两种方法来判断ÿ…...
尚品汇-(四)
(1)商品的基本知识 1.1基本信息—分类 一般情况可以分为两级或者三级。咱们的项目一共分为三级,即一级分类、二级分类、三级分类。 比如:家用电器是一级分类,电视是二级分类,那么超薄电视就是三级分类。…...
colima配置docker镜像源
只在 colima ssh 环境下修改 docker 配置文件是无效的,我们需要修改 colima 配置文件才能使 docker 镜像源生效。 此时你需要进入到~/.colima/default目录下编辑colima.yaml文件。该文件是 colima 的配置文件。内容如下图所示,我这里配置了许多家的镜像源…...
Linux_内核缓冲区
目录 1、用户缓冲区概念 2、用户缓冲区刷新策略 3、用户缓冲区的好处 4、内核缓冲区 5、验证内核缓冲区 6、用户缓冲区存放的位置 7、全缓冲 结语 前言: Linux下的内核缓冲区存在于系统中,该缓冲区和用户层面的缓冲区不过同一个概念&#x…...
步步精:连接器领域的卓越品牌
自1987年成立以来,步步精坐落于美丽的旅游城市——温州市乐清虹桥镇,被誉为“国家电子主体生产基地”、“国家精密模具制造基地”。公司拥有7大厂区、9大事业部,800名专职员工,致力于提供高品质的连接器解决方案。注册商标“BBJCO…...
【Linux】基础IO_3
文章目录 六、基础I/O3. 软硬链接4. 动静态库 未完待续 六、基础I/O 3. 软硬链接 使用 ln 就可以创建链接,使用 ln -s 可以创建软链接,直接使用 ln 则是硬链接。 我们对硬链接进行测试一下: 根据测试,我们知道了 硬链接就像一…...
电脑网页无法打开是什么原因/北京seo顾问
本文内容 引入IHttpModule 概述创建自定义 HTTP 模块的步骤演示创建自定义 HTTP 模块 HTTP 模块的工作方式 HTTP 模块与 Global.asax 文件参考资料引入 本文在 VS 2008 和 IIS 6 环境下概述如何利用 IHttpModule 自定义 HTTP 模块。 当我们在 VS 2008 里新建一个 Web 应…...
上海浦东做网站/全国疫情高峰感染高峰进度查询
环境:Red Hat 6.7 服务端:192.168.163.128 客户端:192.168.163.131 背景:解决多个服务器之间数据共享 环境检查: 1、检查服务器是否安装nfs服务 rpm -q nfs-utils 2、如果没有安装的话执行 yum install …...
珠海市企业网站建设/中国站长网站
正则表达式使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用来处理字符串的语言。可以认为正则表达式表达了一个字符串的书写规则。 正则表达式是由普通字符以及特殊字符(元字符)组成的文字…...
asp.net做网站后台/香港疫情最新情况
Boris FX Continuum Complete 2020又简称BCC插件2020,是为Adobe软件和OFX而开发的视频特效插件,该插件能够为用户提供了丰富的特效,类型多样,拥有图像恢复,拉伸文本,处理标题和3D对象,色调调节&…...
花生壳域名可以做网站域名吗/百度网首页
一、效果预览 用的图标都是网上到处拷贝的,仅仅做个示例使用。 截图 gif 二、思路 首先我们需要一个 FilePickerActivity 去显示页面。里面包含一个标题栏(ToolBar)、路径文本(TextView)和文件列表(Re…...
上海网站建设哪家公司好/淘宝站外引流推广方法
1 简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。 经验表明,日志记录往往…...