MySQL知识点总结(1)
目录
1、sql、DB、DBMS分别是什么,他们之间的关系?
2、什么是表?
3、SQL语句怎么分类呢?
4、导入数据
5、什么是sql脚本呢?
6、删除数据库
7、查看表结构
8、表中的数据
10、查看创建表的语句
11、简单的查询语句(DQL)
12、条件查询
13、排序(升序、降序)
14、分组函数
15、单行处理函数
16、group by 和 having
17、总结一个完整的DQL语句怎么写?
1、sql、DB、DBMS分别是什么,他们之间的关系?
DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer...)SQL: 结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。SQL属于高级语言。只要能看懂英语单词的,写出来的sql语句,可以读懂什么意思。SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。(sql语句的编译由DBMS完成。)DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据。DBMS -(执行)-> SQL -(操作)-> DB
2、什么是表?
表:table表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。一个表包括行和列:行:被称为数据/记录(data)列:被称为字段(column)学号(int) 姓名(varchar) 年龄(int)------------------------------------110 张三 20120 李四 21每一个字段应该包括哪些属性?字段名、数据类型、相关的约束。
3、SQL语句怎么分类呢?
DQL(数据查询语言): 查询语句,凡是select语句都是DQL。DML(数据操作语言):insert delete update,对表当中的数据进行增删改。DDL(数据定义语言):create drop alter,对表结构的增删改。TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)DCL(数据控制语言): grant授权、revoke撤销权限等。
4、导入数据
第一步:登录mysql数据库管理系统dos命令窗口:mysql -uroot -p333第二步:查看有哪些数据库show databases; (这个不是SQL语句,属于MySQL的命令。)+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+第三步:创建属于我们自己的数据库create database bjpowernode; (这个不是SQL语句,属于MySQL的命令。)第四步:使用bjpowernode数据use bjpowernode; (这个不是SQL语句,属于MySQL的命令。)第五步:查看当前使用的数据库中有哪些表?show tables; (这个不是SQL语句,属于MySQL的命令。)第六步:初始化数据mysql> source D:\course\05-MySQL\resources\bjpowernode.sql注意:数据初始化完成之后,有三张表:+-----------------------+| Tables_in_bjpowernode |+-----------------------+| dept || emp || salgrade |+-----------------------+
5、什么是sql脚本呢?
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。注意:直接使用source命令可以执行sql脚本。sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。
6、删除数据库
drop database bjpowernode;
7、查看表结构
+-----------------------+| Tables_in_bjpowernode |+-----------------------+| dept | (部门表)| emp | (员工表)| salgrade | (工资等级表)+-----------------------+mysql> desc dept;+--------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| DEPTNO | int(2) | NO | PRI | NULL | | 部门编号| DNAME | varchar(14) | YES | | NULL | | 部门名称| LOC | varchar(13) | YES | | NULL | | 部门位置+--------+-------------+------+-----+---------+-------+mysql> desc emp;+----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| EMPNO | int(4) | NO | PRI | NULL | | 员工编号| ENAME | varchar(10) | YES | | NULL | | 员工姓名| JOB | varchar(9) | YES | | NULL | | 工作岗位| MGR | int(4) | YES | | NULL | | 上级领导编号| HIREDATE | date | YES | | NULL | | 入职日期| SAL | double(7,2) | YES | | NULL | | 月薪| COMM | double(7,2) | YES | | NULL | | 补助/津贴| DEPTNO | int(2) | YES | | NULL | | 部门编号+----------+-------------+------+-----+---------+-------+mysql> desc salgrade;+-------+---------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| GRADE | int(11) | YES | | NULL | | 等级| LOSAL | int(11) | YES | | NULL | | 最低薪资| HISAL | int(11) | YES | | NULL | | 最高薪资+-------+---------+------+-----+---------+-------+
8、表中的数据
mysql> select * from emp;
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
+-------+--------+-----------+------+------------+---------+---------+--------+mysql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+mysql> select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
+-------+-------+-------+
9、常用命令
mysql> select database(); 查看当前使用的是哪个数据库
+-------------+
| database() |
+-------------+
| bjpowernode |
+-------------+mysql> select version(); 查看mysql的版本号。
+-----------+
| version() |
+-----------+
| 5.5.36 |
+-----------+\c 命令,结束一条语句。exit 命令,退出mysql。
10、查看创建表的语句
show create table emp;
11、简单的查询语句(DQL)
语法格式:select 字段名1,字段名2,字段名3,.... from 表名;提示:1、任何一条sql语句以“;”结尾。2、sql语句不区分大小写。查询员工的年薪?(字段可以参与数学运算。)select ename,sal * 12 from emp;+--------+----------+| ename | sal * 12 |+--------+----------+| SMITH | 9600.00 || ALLEN | 19200.00 || WARD | 15000.00 || JONES | 35700.00 || MARTIN | 15000.00 || BLAKE | 34200.00 || CLARK | 29400.00 || SCOTT | 36000.00 || KING | 60000.00 || TURNER | 18000.00 || ADAMS | 13200.00 || JAMES | 11400.00 || FORD | 36000.00 || MILLER | 15600.00 |+--------+----------+给查询结果的列重命名?select ename,sal * 12 as yearsal from emp;别名中有中文?select ename,sal * 12 as 年薪 from emp; // 错误select ename,sal * 12 as '年薪' from emp;+--------+----------+| ename | 年薪 |+--------+----------+| SMITH | 9600.00 || ALLEN | 19200.00 || WARD | 15000.00 || JONES | 35700.00 || MARTIN | 15000.00 || BLAKE | 34200.00 || CLARK | 29400.00 || SCOTT | 36000.00 || KING | 60000.00 || TURNER | 18000.00 || ADAMS | 13200.00 || JAMES | 11400.00 || FORD | 36000.00 || MILLER | 15600.00 |+--------+----------+注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用。as关键字可以省略?mysql> select empno,ename,sal * 12 yearsal from emp;+-------+--------+----------+| empno | ename | yearsal |+-------+--------+----------+| 7369 | SMITH | 9600.00 || 7499 | ALLEN | 19200.00 || 7521 | WARD | 15000.00 || 7566 | JONES | 35700.00 || 7654 | MARTIN | 15000.00 || 7698 | BLAKE | 34200.00 || 7782 | CLARK | 29400.00 || 7788 | SCOTT | 36000.00 || 7839 | KING | 60000.00 || 7844 | TURNER | 18000.00 || 7876 | ADAMS | 13200.00 || 7900 | JAMES | 11400.00 || 7902 | FORD | 36000.00 || 7934 | MILLER | 15600.00 |+-------+--------+----------+查询所有字段?select * from emp; // 实际开发中不建议使用*,效率较低。
12、条件查询
语法格式:select 字段,字段...from表名where条件;执行顺序:先from,然后where,最后select查询工资等于5000的员工姓名?select ename from emp where sal = 5000;+-------+| ename |+-------+| KING |+-------+查询SMITH的工资?select sal from emp where ename = 'SMITH'; // 字符串使用单引号括起来。+--------+| sal |+--------+| 800.00 |+--------+找出工资高于3000的员工?select ename,sal from emp where sal > 3000;select ename,sal from emp where sal >= 3000;select ename,sal from emp where sal < 3000;select ename,sal from emp where sal <= 3000;找出工资不等于3000的?select ename,sal from emp where sal <> 3000;select ename,sal from emp where sal != 3000;找出工资在1100和3000之间的员工,包括1100和3000?select ename,sal from emp where sal >= 1100 and sal <= 3000;select ename,sal from emp where sal between 1100 and 3000; // between...and...是闭区间 [1100 ~ 3000]select ename,sal from emp where sal between 3000 and 1100; // 查询不到任何数据between and在使用的时候必须左小右大。between and除了可以使用在数字方面之外,还可以使用在字符串方面。select ename from emp where ename between 'A' and 'C';+-------+| ename |+-------+| ALLEN || BLAKE || ADAMS |+-------+select ename from emp where ename between 'A' and 'D'; // 左闭右开。找出哪些人津贴为NULL?在数据库当中NULL不是一个值,代表什么也没有,为空。空不是一个值,不能用等号衡量。必须使用 is null或者is not nullselect ename,sal,comm from emp where comm is null;+--------+---------+------+| ename | sal | comm |+--------+---------+------+| SMITH | 800.00 | NULL || JONES | 2975.00 | NULL || BLAKE | 2850.00 | NULL || CLARK | 2450.00 | NULL || SCOTT | 3000.00 | NULL || KING | 5000.00 | NULL || ADAMS | 1100.00 | NULL || JAMES | 950.00 | NULL || FORD | 3000.00 | NULL || MILLER | 1300.00 | NULL |+--------+---------+------+select ename,sal,comm from emp where comm = null;Empty set (0.00 sec)找出哪些人津贴不为NULL?select ename,sal,comm from emp where comm is not null;+--------+---------+---------+| ename | sal | comm |+--------+---------+---------+| ALLEN | 1600.00 | 300.00 || WARD | 1250.00 | 500.00 || MARTIN | 1250.00 | 1400.00 || TURNER | 1500.00 | 0.00 |+--------+---------+---------+找出哪些人没有津贴?select ename,sal,comm from emp where comm is null or comm = 0;+--------+---------+------+| ename | sal | comm |+--------+---------+------+| SMITH | 800.00 | NULL || JONES | 2975.00 | NULL || BLAKE | 2850.00 | NULL || CLARK | 2450.00 | NULL || SCOTT | 3000.00 | NULL || KING | 5000.00 | NULL || TURNER | 1500.00 | 0.00 || ADAMS | 1100.00 | NULL || JAMES | 950.00 | NULL || FORD | 3000.00 | NULL || MILLER | 1300.00 | NULL |+--------+---------+------+找出工作岗位是MANAGER和SALESMAN的员工?select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';+--------+----------+| ename | job |+--------+----------+| ALLEN | SALESMAN || WARD | SALESMAN || JONES | MANAGER || MARTIN | SALESMAN || BLAKE | MANAGER || CLARK | MANAGER || TURNER | SALESMAN |+--------+----------+and和or联合起来用:找出薪资大于1000的并且部门编号是20或30部门的员工。select ename,sal,deptno from emp where sal > 1000 and deptno = 20 or deptno = 30; // 错误的select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30); // 正确的。注意:当运算符的优先级不确定的时候加小括号。in等同于or:找出工作岗位是MANAGER和SALESMAN的员工?select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER';select ename,job from emp where job in('SALESMAN', 'MANAGER');select ename,job from emp where sal in(800, 5000); // in后面的值不是区间,是具体的值。+-------+-----------+| ename | job |+-------+-----------+| SMITH | CLERK || KING | PRESIDENT |+-------+-----------+not in: 不在这几个值当中。select ename,job from emp where sal not in(800, 5000);模糊查询like ? 找出名字当中含有O的?(在模糊查询当中,必须掌握两个特殊的符号,一个是%,一个是_)%代表任意多个字符,_代表任意1个字符。select ename from emp where ename like '%O%';+-------+| ename |+-------+| JONES || SCOTT || FORD |+-------+找出名字中第二个字母是A的?select ename from emp where ename like '_A%';+--------+| ename |+--------+| WARD || MARTIN || JAMES |+--------+找出名字中有下划线的?mysql> select * from t_user;+------+----------+| id | name |+------+----------+| 1 | zhangsan || 2 | lisi || 3 | WANG_WU |+------+----------+select name from t_user where name like '%_%';+----------+| name |+----------+| zhangsan || lisi || WANG_WU |+----------+select name from t_user where name like '%\_%';+---------+| name |+---------+| WANG_WU |+---------+找出名字中最后一个字母是T的?select ename from emp where ename like '%T';+-------+| ename |+-------+| SCOTT | +-------+
13、排序(升序、降序)
按照工资升序,找出员工名和薪资?select ename,sal from emp order bysal;
+--------+---------+
| ename | sal |
+--------+---------+
| SMITH | 800.00 |
| JAMES | 950.00 |
| ADAMS | 1100.00 |
| WARD | 1250.00 |
| MARTIN | 1250.00 |
| MILLER | 1300.00 |
| TURNER | 1500.00 |
| ALLEN | 1600.00 |
| CLARK | 2450.00 |
| BLAKE | 2850.00 |
| JONES | 2975.00 |
| FORD | 3000.00 |
| SCOTT | 3000.00 |
| KING | 5000.00 |
+--------+---------+注意:默认是升序。怎么指定升序或者降序呢?asc表示升序,desc表示降序。select ename , sal from emp order by sal; // 升序select ename , sal from emp order by sal asc; // 升序select ename , sal from emp order by sal desc; // 降序。按照工资的降序排列,当工资相同的时候再按照名字的升序排列。select ename,sal from emp order by sal desc;select ename,sal from emp order by sal desc , ename asc;注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。找出工作岗位是SALESMAN的员工,并且要求按照薪资的降序排列。select ename,job,salfromempwhere job = 'SALESMAN'order bysal desc;
+--------+----------+---------+
| ename | job | sal |
+--------+----------+---------+
| ALLEN | SALESMAN | 1600.00 |
| TURNER | SALESMAN | 1500.00 |
| WARD | SALESMAN | 1250.00 |
| MARTIN | SALESMAN | 1250.00 |
+--------+----------+---------+select 字段 3from表名 1where条件 2order by.... 4order by是最后执行的。
14、分组函数
count 计数sum 求和avg 平均值max 最大值min 最小值记住:所有的分组函数都是对“某一组”数据进行操作的。找出工资总和?select sum(sal) from emp;找出最高工资?select max(sal) from emp;找出最低工资?select min(sal) from emp;找出平均工资?select avg(sal) from emp;找出总人数?select count(*) from emp;select count(ename) from emp;分组函数一共5个。分组函数还有另一个名字:多行处理函数。多行处理函数的特点:输入多行,最终输出的结果是1行。分组函数自动忽略NULL。select count(comm) from emp;+-------------+| count(comm) |+-------------+| 4 |+-------------+select sum(comm) from emp;+-----------+| sum(comm) |+-----------+| 2200.00 |+-----------+select sum(comm) from emp where comm is not null; // 不需要额外添加这个过滤条件。sum函数自动忽略NULL。找出工资高于平均工资的员工?select avg(sal) from emp; // 平均工资+-------------+| avg(sal) |+-------------+| 2073.214286 |+-------------+select ename,sal from emp where sal > avg(sal); //ERROR 1111 (HY000): Invalid use of group function思考以上的错误信息:无效的使用了分组函数?原因:SQL语句当中有一个语法规则,分组函数不可直接使用在where子句当中。why????怎么解释?因为group by是在where执行之后才会执行的。select 4.. from 1..where 2..group by 3..having 5..order by 6..count(*)和count(具体的某个字段),他们有什么区别?count(*):不是统计某个字段中数据的个数,而是统计总记录条数。(和某个字段无关)count(comm): 表示统计comm字段中不为NULL的数据总数量。分组函数也能组合起来用:select count(*),sum(sal),avg(sal),max(sal),min(sal) from emp;+----------+----------+-------------+----------+----------+| count(*) | sum(sal) | avg(sal) | max(sal) | min(sal) |+----------+----------+-------------+----------+----------+| 14 | 29025.00 | 2073.214286 | 5000.00 | 800.00 |+----------+----------+-------------+----------+----------+找出工资高于平均工资的员工?第一步:找出平均工资select avg(sal) from emp;+-------------+| avg(sal) |+-------------+| 2073.214286 |+-------------+第二步:找出高于平均工资的员工select ename,sal from emp where sal > 2073.214286;+-------+---------+| ename | sal |+-------+---------+| JONES | 2975.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || FORD | 3000.00 |+-------+---------+select ename,sal from emp where sal > (select avg(sal) from emp);
15、单行处理函数
什么是单行处理函数?输入一行,输出一行。计算每个员工的年薪?select ename,(sal+comm)*12 as yearsal from emp;重点:所有数据库都是这样规定的,只要有NULL参与的运算结果一定是NULL。使用ifnull函数:select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;ifnull() 空处理函数?ifnull(可能为NULL的数据,被当做什么处理) : 属于单行处理函数。select ename,ifnull(comm,0) as comm from emp;+--------+---------+| ename | comm |+--------+---------+| SMITH | 0.00 || ALLEN | 300.00 || WARD | 500.00 || JONES | 0.00 || MARTIN | 1400.00 || BLAKE | 0.00 || CLARK | 0.00 || SCOTT | 0.00 || KING | 0.00 || TURNER | 0.00 || ADAMS | 0.00 || JAMES | 0.00 || FORD | 0.00 || MILLER | 0.00 |+--------+---------+
16、group by 和 having
group by : 按照某个字段或者某些字段进行分组。having : having是对分组之后的数据进行再次过滤。案例:找出每个工作岗位的最高薪资。select max(sal),job from emp group by job;+----------+-----------+| max(sal) | job |+----------+-----------+| 3000.00 | ANALYST || 1300.00 | CLERK || 2975.00 | MANAGER || 5000.00 | PRESIDENT || 1600.00 | SALESMAN |+----------+-----------+注意:分组函数一般都会和group by联合使用,这也是为什么它被称为分组函数的原因。并且任何一个分组函数(count sum avg max min)都是在group by语句执行结束之后才会执行的。当一条sql语句没有group by的话,整张表的数据会自成一组。select ename,max(sal),job from emp group by job;以上在mysql当中,查询结果是有的,但是结果没有意义,在Oracle数据库当中会报错。语法错误。Oracle的语法规则比MySQL语法规则严谨。记住一个规则:当一条语句中有group by的话,select后面只能跟分组函数和参与分组的字段。每个工作岗位的平均薪资?select job,avg(sal) from emp group by job;+-----------+-------------+| job | avg(sal) |+-----------+-------------+| ANALYST | 3000.000000 || CLERK | 1037.500000 || MANAGER | 2758.333333 || PRESIDENT | 5000.000000 || SALESMAN | 1400.000000 |+-----------+-------------+多个字段能不能联合起来一块分组?案例:找出每个部门不同工作岗位的最高薪资。select deptno,job,max(sal)fromempgroup bydeptno,job;找出每个部门的最高薪资,要求显示薪资大于2900的数据。第一步:找出每个部门的最高薪资select max(sal),deptno from emp group by deptno;+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 || 2850.00 | 30 |+----------+--------+第二步:找出薪资大于2900select max(sal),deptno from emp group by deptno having max(sal) > 2900; // 这种方式效率低。+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 |+----------+--------+select max(sal),deptno from emp where sal > 2900 group by deptno; // 效率较高,建议能够使用where过滤的尽量使用where。+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 |+----------+--------+找出每个部门的平均薪资,要求显示薪资大于2000的数据。第一步:找出每个部门的平均薪资select deptno,avg(sal) from emp group by deptno;+--------+-------------+| deptno | avg(sal) |+--------+-------------+| 10 | 2916.666667 || 20 | 2175.000000 || 30 | 1566.666667 |+--------+-------------+第二步:要求显示薪资大于2000的数据select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000; +--------+-------------+| deptno | avg(sal) |+--------+-------------+| 10 | 2916.666667 || 20 | 2175.000000 |+--------+-------------+where后面不能使用分组函数:select deptno,avg(sal) from emp where avg(sal) > 2000 group by deptno; // 错误了。这种情况只能使用having过滤。
17、总结一个完整的DQL语句怎么写?
select 4..from 1 ..where 2..group by 3..having 5..order by 6..
相关文章:
MySQL知识点总结(1)
目录 1、sql、DB、DBMS分别是什么,他们之间的关系? 2、什么是表? 3、SQL语句怎么分类呢? 4、导入数据 5、什么是sql脚本呢? 6、删除数据库 7、查看表结构 8、表中的数据 10、查看创建表的语句 11、简单的查询…...
day45第九章动态规划(二刷)
今日任务 70.爬楼梯(进阶)322.零钱兑换279.完全平方数 70.爬楼梯(进阶) 题目链接: https://leetcode.cn/problems/climbing-stairs/description/ 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不…...
第十四届蓝桥杯第三期模拟赛原题与详解
文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描…...
client打包升级
目录 前言 一、client如何打包升级? 二、使用步骤 1.先进行改版本 2.执行打包升级命令 总结 前言 本文章主要记录一下,日常开发中,常需要进行打包升级的步骤。 一、client如何打包升级? # 升级发布版本 ## 修改版本 * 父p…...
Blazor_WASM之3:项目结构
Blazor_WASM之3:项目结构 Blazor WebAssembly项目模板可选两种,Blazor WebAssemblyAPP及Blazor WebAssemblyAPP-Empty 如果使用Blazor WebAssemblyAPP模板,则应用将填充以下内容: 一个 FetchData 组件的演示代码,该…...
OperWrt 包管理系统02
文章目录 OperWrt 包管理系统OPKG简介OPKG的工作原理OPKG命令介绍软件包的更新、安装、卸载和升级等功能软件包的信息查询OPKG配置文件说明OPKG包结构(.ipk)OPKG演示案例OperWrt 包管理系统 OPKG简介 OPKG(Open/OpenWrt Package)是一个轻量快速的软件包管理系统,是 IPKG…...
人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP
安卓从2009年开始流程于手机、平板,已经是不争的非常强大生产力工具,更为社会创造非常高的价值,现在已经是202X年,已经十几年的发展,安卓平台已经无所不在。因此建议人人都学学APP制作,简易入门,…...
【自然语言处理】从词袋模型到Transformer家族的变迁之路
从词袋模型到Transformer家族的变迁之路模型名称年份描述Bag of Words1954即 BOW 模型,计算文档中每个单词出现的次数,并将它们用作特征。TF-IDF1972对 BOW 进行修正,使得稀有词得分高,常见词得分低。Word2Vec2013每个词都映射到一…...
LIME: Low-light Image Enhancement viaIllumination Map Estimation
Abstract当人们在低光条件下拍摄图像时,图像通常会受到低能见度的影响。除了降低图像的视觉美感外,这种不良的质量还可能显著降低许多主要为高质量输入而设计的计算机视觉和多媒体算法的性能。在本文中,我们提出了一种简单而有效的微光图像增…...
源码指标编写1000问4
4.问: 哪位老师把他改成分析家的,组合公式:猎庄敢死队别样红(凤翔) {猎庄敢死队} rsv:(c-llv(l,9))/(hhv(h,9)-llv(l,9))100; stickline(1,50,50,1,0),pointdot,Linethick2,colorff00; k:sma(rsv,3,1); d:sma(k,3,1); rsv1:(hhv(h,9.8)-c)/(hhv(h,9.8)-llv(l,9.8))1…...
Golang中GC和三色屏障机制【Golang面试必考】
文章目录Go v1.3 标记—清楚(mark and sweep)方法Go V1.5 三色标记法三色标记过程无STW的问题强弱三色不变式插入写屏障Go V1.8的三色标记法混合写屏障机制混合写屏障场景场景1:对象被一个堆对象删除引用,成为栈对象的下游场景2:对象被一个栈对象删除引用࿰…...
MOS FET继电器(无机械触点继电器)设计输入侧电源时的电流值概念
设计输入侧电源时的问题 机械式继电器、MOS FET继电器分别具有不同的特长。基于对MOS FET继电器所具小型及长寿命、静音动作等优势的需求,目前已经出现了所用机械式继电器向MOS FET继电器转化的趋势。 但是,由于机械式继电器与MOS FET继电器在产品结构…...
5. 驱动开发
文章目录一、驱动开发1.1 前言1.2 何谓驱动框架1.3 内核驱动框架中LED的基本情况1.3.1 相关文件1.3.2 九鼎移植的内核中led驱动1.3.3 案例分析驱动框架的使用1.3.4 典型的驱动开发行业现状1.4 初步分析led驱动框架源码1.4.1 涉及到的文件1.4.2 subsys_initcall1.4.3 led_class_…...
模板方法模式详解
模板方法模式(行为模式) 1. 模板方法模式介绍 父类定义算法骨架,细节的具体实现延迟到子类子类只是定义某些自己的个性化处理,但不改变执行顺序 2. 好处 减少代码冗余,共性抽取后算法流程更加清晰与规范降低流程性…...
关于 Lightweight process container,ChatGPT的答案
晓楚 Can you give me a list of process container? As an AI language model, I can provide you with a list of popular process containers, which are as follows: Docker Kubernetes Apache Mesos LXC OpenVZ systemd-nspawn rkt (Rocket) Linux Containers (LXC) Ga…...
机器学习和深度学习的综述
机器学习和深度学习的综述 1.1.1人工智能、机器学习、深度学习的关系 人工智能(Artificial Intelligence,AI)是最宽泛的概念,是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。由于这个定义…...
Synopsys Sentaurus TCAD系列教程之--Sprocess(SmallMOS_2D3D) 解析
SmallMOS_2D3D解析 #header## STI depth set sti_depth 0.15 ## Half STI width set sti_width sti_width ## Half gate length set gate_len <lg/2> ## SD length (from center) set sd_len [expr $gate_len0.05]#endheader## X lines line x location 0.0 spacing 0.…...
好使!NAS中傻瓜式配置反向代理及SSL证书,提升网络安全性!
对于有NAS或者有个人主机的朋友来说,将机器映射到外网是基本操作。 但是一般来说,能直接从外网访问的往往仅有80和443端口。事实上,运营商一般把家庭宽带的这两个端口都封了,所以如果我们想要从外网访问自己家中机器部署的服务&a…...
数据结构队列-先进先出
一,概述 队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”。 二,顺序队列和链式队列 队列和栈一样,也是一种…...
CentOS 7使用TiUP部署TiDB
本文主要是根据官方文档指导,结合实际主机情况,在Cent OS7上使用TiUP在线部署TiDB。 环境说明 类型操作系统版本配置中控机Deepin 20.34核CPU6G内存40G硬盘TiDB部署机Cent OS 7.38核CPU48G内存100硬盘网络情况中控机与外网相连,中控机与部署…...
java单元测试批处理数据模板【亿点点日志配合分页以及多线程处理】
文章目录引入相关资料环境准备分页查询处理,减少单次批量处理的数据量级补充亿点点日志,更易观察多线程优化查询_切数据版多线程_每个线程都分页处理引入 都说后端开发能顶半个运维,我们经常需要对大量输出进行需求调整,很多时候…...
【数据结构】模拟实现 堆
堆数据结构是一种数组对象,它可以被看作一颗完全二叉树的结构(数组是完全二叉树),堆是一种静态结构。堆分为最大堆和最小堆。最大堆:每个父结点都大于孩子结点。最小堆:每个父结点都小于孩子结点。堆的优势…...
Go语言学习的第三天--上部分(基础用法)
前两天经过不断度娘,与对up主的跟踪学习了解了go的历史,今天开始了go的基础!!本章主要是go 的注释、变量及常量的梳理一、注释不管什么语言都有自己的注释,go也不例外 !!单行注释 // 多行注释 …...
linux面试基础篇
题目目录1.简述DNS分离解析的工作原理,关键配置2.apache有几种工作模式,分别简述两种工作模式及其优缺点?3.写出172.0.0.38/27 的网络id与广播地址4.写出下列服务使用的传输层协议(TCP/UDP)及默认端口5.在局域网想获得…...
黑马程序员提高变成
这里写目录标题函数模板1.2.2 函数模板注意事项1.2.3 函数模板案例调用规则类模板与函数模板区别类模板与继承类模板成员函数类外实现#pragma once类模板与友元案例重新定义【】stl2.2 STL基本概念STL六大组件容器算法迭代器初识vectorvector容器嵌套容器string容器string赋值操…...
MySQL5种索引类型
MySQL的类型主要有五种:主键索引、唯一索引、普通索引、空间索引、全文索引 有表: CREATE TABLE t1 ( id bigint unsigned NOT NULL AUTO_INCREMENT, u1 int unsigned NOT NULL DEFAULT 0, u2 int unsigned NOT NULL DEFAULT 0, u3 varchar(20) NOT NU…...
uniapp封装缓存方法,支持类似cookie具有过期时间
1、定义CacheManage类,有set和get方法 class CacheManage {set() {},get() {} }set用来设置缓存,get用来获取缓存 2、完善set业务逻辑 大概逻辑如下: 1、将接收params参数,包含key、data、unit、time key 缓存字段,…...
Jfrog 搭建本地maven仓库以及上传Android库
Jfrog 下载 安装包下载地址:Download Artifactory OSS | JFrog 如果是想下载之前的版本,可以点击上面的Get code source ,如果是最新版本,直接点下面的下载就好。下面以Linux安装为例。 Jfrog安装 对于Linux而言,其实…...
日报周报月报工作总结生成器【智能文案生成器】
日报周报月报工作总结生成器【智能文案生成器】 天天写日报,我真的快奔溃了! 摸了一天鱼,下班还要写日报; 划了一周的水,周末还要写周报; 啊啊啊啊… 在职场上,尤其是互联网公司里,…...
linux日志管理工具logrotate配置
linux日志管理工具logrotate配置logrotate介绍logrotate配置讲解主配置文件解释(/etc/logrotate.conf)logrotete 命令参数添加配置以添加一个nginx配置为例强制启动配置logrotate介绍 logrotate是centos自带工具,其他操作系统可能需要自行安装。logrotate用来进行日…...
做设计灵感的网站/网站友情链接怎么弄
第一步添加或修改/etc/yum.repos.d/的源文件 我选择手动创建 第二部 通过 wget http://mirrors.163.com/.help/CentOS-Base-163.repo 生成源文件 下一步把 CentOS-Base-163.repo中的内容 拷贝到 自己手动创建的 yum.源文件中 并且不用CentOS 源镜像 避免错误 用# 注释掉 一些…...
做网站要排版吗/seo入口
内容主要来自《python科学计算》一书 双摆 初始角度为θ1\theta_1θ1与θ2\theta_2θ2,无质量杆长L1L_1L1与L2L_2L2,小球质量m1m_1m1与m2m_2m2 拉格朗日力学求解 建立坐标系 设小球的坐标为(x1,y1)(x_1,y_1)(x1,y1)与(x2,y2)(x_2,…...
建设一个班级网站的具体步骤/如何做网站建设
CCNET配置文件代码1 <cruisecontrol xmlns:cb"urn:ccnet.config.builder">2 <!--项目名称-->3 <name>StartKit</name>4 <!--标示类型,有多种类型。下面为默认标示,作为每次编译时生成的日志文件的名称--&…...
南昌房地产信息网/seo销售代表招聘
首先说思路,在mybatis中防止sql注入,目前只能在Controller层进行转义,后台sql进行查询,然后在controller层转义回来,返回到前台。 理论上应该可以在dao.xml中进行判断 但是目前还没写出来。Orz 上代码 RequiresPerm…...
做家务的男人们在哪个网站播出/河北seo技术交流
SQL分组获取随机记录 2017-12-30 08:59:32 一木剑 阅读数 1038更多 分类专栏: SQL 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/q…...
哪家网站建设公司靠谱/手机百度正式版
今天在看王爽的《汇编语言》,看到地址总线的时候,由于那个图画的是并行传输,于是我就去搜了下地址总线是不是并行总线,结果看到一篇文章说现在串行总线的传输速度比并行总线要快,我就奇怪了。 在我的印象中,…...