Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过不同的查询方式,可以获得不同的数据。MySQL中是使用SELECT语句来查询数据的。在这一章中将讲解的内容包括。
1、查询语句的基本语法
2、在单表上查询数据
3、使用聚合函数查询数据
4、多表上联合查询
5、子查询
6、合并查询结果
7、为表和字段取别名
8、使用正则表达式查询

什么是查询?


怎么查的?


数据的准备如下:

[sql]  view plain copy
  1. create table STUDENT(  
  2. STU_ID int primary KEY,  
  3. STU_NAME char(10) not null,  
  4. STU_AGE smallint unsigned  not null,  
  5. STU_SEX char(2) not null  
  6. );  
  7. insert  into STUDENT values(2001,'小王',13,'男');  
  8. insert  into STUDENT values(2002,'明明',12,'男');  
  9. insert  into STUDENT values(2003,'红红',14,'女');  
  10. insert  into STUDENT values(2004,'小花',13,'女');  
  11. insert  into STUDENT values(2005,'天儿',15,'男');  
  12. insert  into STUDENT values(2006,'阿猎',13,'女');  
  13. insert  into STUDENT values(2007,'阿猫',16,'男');  
  14. insert  into STUDENT values(2008,'阿狗',17,'男');  
  15. insert  into STUDENT values(2009,'黑子',14,'男');  
  16. insert  into STUDENT values(2010,'小玉',13,'女');  
  17. insert  into STUDENT values(2011,'头头',13,'女');  
  18. insert  into STUDENT values(2012,'冰冰',14,'女');  
  19. insert  into STUDENT values(2013,'美丽',13,'女');  
  20. insert  into STUDENT values(2014,'神乐',12,'男');  
  21. insert  into STUDENT values(2015,'天五',13,'男');  
  22. insert  into STUDENT values(2016,'小三',11,'男');  
  23. insert  into STUDENT values(2017,'阿张',13,'男');  
  24. insert  into STUDENT values(2018,'阿杰',13,'男');  
  25. insert  into STUDENT values(2019,'阿宝',13,'女');  
  26. insert  into STUDENT values(2020,'大王',14,'男');  

然后这是学生成绩表,其中定义了外键约束

[sql]  view plain copy
  1. create table GRADE(  
  2. STU_ID INT NOT NULL,  
  3. STU_SCORE INT,  
  4. foreign key(STU_ID) references STUDENT(STU_ID)  
  5. );  
  6. insert  into GRADE values(2001,90);  
  7. insert  into GRADE values(2002,89);  
  8. insert  into GRADE values(2003,67);  
  9. insert  into GRADE values(2004,78);  
  10. insert  into GRADE values(2005,89);  
  11. insert  into GRADE values(2006,78);  
  12. insert  into GRADE values(2007,99);  
  13. insert  into GRADE values(2008,87);  
  14. insert  into GRADE values(2009,70);  
  15. insert  into GRADE values(2010,71);  
  16. insert  into GRADE values(2011,56);  
  17. insert  into GRADE values(2012,85);  
  18. insert  into GRADE values(2013,65);  
  19. insert  into GRADE values(2014,66);  
  20. insert  into GRADE values(2015,77);  
  21. insert  into GRADE values(2016,79);  
  22. insert  into GRADE values(2017,82);  
  23. insert  into GRADE values(2018,88);  
  24. insert  into GRADE values(2019,NULL);  
  25. insert  into GRADE values(2020,NULL);  

一、查询语句的基本语法

查询数据是指从数据库中的数据表或视图中获取所需要的数据,在MySQL中,可以使用SELECT语句来查询数据。根据查询条件的不同,数据库系统会找到不同的数据。

SELECT语句的基本语法格式如下:

[sql]  view plain copy
  1. SELECT 属性列表  
  2.        FROM 表名或视图列表  
  3.        [WHERE 条件表达式1]  
  4.        [GROUP BY 属性名1 [HAVING 条件表达式2]]  
  5.        [ORDER BY 属性名2 [ASC|DESC]]  

  • 属性列表:表示需要查询的字段名。
  • 表名或视图列表:表示即将进行数据查询的数据表或者视图,表或视图可以有多个。
  • 条件表达式1:设置查询的条件。
  • 属性名1:表示按该字段中的数据进行分组。
  • 条件表达式2:表示满足该表达式的数据才能输出。
  • 属性2:表示按该字段中的数据进行排序,排序方式由ASC或DESC参数指定。
  • ASC:表示按升序的顺序进行排序。即表示值按照从小到大的顺序排列。这是默认参数。
  • DESC:表示按降序的顺序进行排序。即表示值按照从大到小的顺序排列。

如果有WHERE子句,就按照“条件表达式1”指定的条件进行查询;如果没有WHERE子句,就查询所有记录。

如果有GROUP BY子句,就按照“属性名1”指定的字段进行分组;如果GROUP BY子句后面带着HAVING关键字,那么只有满足“条件表达式2”中指定的条件的记录才能够输出。GROUP BY子句通常和COUNT()、SUM()等聚合函数一起使用。

如果有ORDER BY子句,就按照“属性名2”指定的字段进行排序。排序方式由ASC或DESC参数指定。默认的排序方式为ASC。


二、在单表上查询数据

2.1、查询所有字段

[sql]  view plain copy
  1. select * from STUDENT;  

  

2.2、按条件查询


(1) 比较运算符
    > ,  < ,=  , != (< >),>=   ,   <=  
[sql]  view plain copy
  1. select * from STUDENT where STU_AGE>13;  


 in(v1,v2..vn)  ,符合v1,v2,,,vn才能被查出
IN关键字可以判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件。其语法规则如下:[ NOT ] IN ( 元素1, 元素2, …, 元素n ) 

[sql]  view plain copy
  1. select * from STUDENT where STU_AGE in(11,12);  



 between v1 and v2    在v1至v2之间(包含v1,v2)
BETWEEN AND关键字可以判读某个字段的值是否在指定的范围内。如果字段的值在指定范围内,则满足查询条件,该纪录将被查询出来。如果不在指定范围内,则不满足查询条件。其语法规则如下:
[ NOT ] BETWEEN 取值1 AND 取值2 

[sql]  view plain copy
  1. select * from STUDENT where STU_AGE between 13 and 15;  




(2)逻辑运算符
not ( ! )  逻辑非

[sql]  view plain copy
  1. select * from STUDENT where STU_AGE NOT IN(13,14,16);  


or ( || )    逻辑或
OR关键字也可以用来联合多个条件进行查询,但是与AND关键字不同。使用OR关键字时,只要满足这几个查询条件的其中一个,这样的记录将会被查询出来。如果不满足这些查询条件中的任何一个,这样的记录将被排除掉。OR关键字的语法规则如下:
条件表达式1 OR 条件表达式2 [ …OR 条件表达式n ]
其中,OR可以用来连接两个条件表达式。而且,可以同时使用多个OR关键字,这样可以连接更多的条件表达式。

[sql]  view plain copy
  1. select * from STUDENT where STU_ID<2005 OR STU_ID>2015;  


 and ( && )  逻辑与
AND关键字可以用来联合多个条件进行查询。使用AND关键字时,只有同时满足所有查询条件的记录会被查询出来。如果不满足这些查询条件的其中一个,这样的记录将被排除掉。AND关键字的语法规则如下:
条件表达式1 AND 条件表达式2 [ … AND 条件表达式n ]
其中,AND可以连接两个条件表达式。而且,可以同时使用多个AND关键字,这样可以连接更多的条件表达式。

(3)模糊查询
like 像
LIKE关键字可以匹配字符串是否相等。如果字段的值与指定的字符串相匹配,则满足查询条件,该纪录将被查询出来。如果与指定的字符串不匹配,则不满足查询条件。其语法规则如下:[ NOT ] LIKE '字符串' 
“NOT”可选参数,加上 NOT表示与指定的字符串不匹配时满足条件;“字符串”表示指定用来匹配的字符串,该字符串必须加单引号或双引号。

通配符:
 %  任意字符
[sql]  view plain copy
  1. select * from STUDENT where STU_NAME LIKE '%王';  
表示匹配任何以王结尾的


[sql]  view plain copy
  1. select * from STUDENT where STU_NAME LIKE '阿%';  
表示匹配任何以阿开头的

 _  单个字符
比如说插入

[sql]  view plain copy
  1. insert  into STUDENT values(2021,'天下无镜',14,'男');  

然后

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME LIKE '_下_';  
查询的结果为空


但是如果下后面加两个_符号 

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME LIKE '_下__';  
查询结果不为空



“字符串”参数的值可以是一个完整的字符串,也可以是包含百分号(%)或者下划线(_)的通配字符。二者有很大区别
“%”可以代表任意长度的字符串,长度可以为0;
“_”只能表示单个字符。
如果要匹配姓张且名字只有两个字的人的记录,“张”字后面必须要有两个“_”符号。因为一个汉字是两个字符,而一个“_”符号只能代表一个字符。
(4)空值查询

IS NULL关键字可以用来判断字段的值是否为空值(NULL)。如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件。其语法规则如下:
IS [ NOT ] NULL
其中,“NOT”是可选参数,加上NOT表示字段不是空值时满足条件。
IS NULL是一个整体,不能将IS换成”=”.

三、使用聚合函数查询数据

3.1、group by 分组

如下:

[sql]  view plain copy
  1. select * from STUDENT group by STU_SEX;  
不加条件,那么就只取每个分组的第一条。


如果想看分组的内容,可以加groub_concat 

[sql]  view plain copy
  1. select STU_SEX,group_concat(STU_NAME) from STUDENT group by STU_SEX;  


3.2、一般情况下group需与统计函数(聚合函数)一起使用才有意义

 先准备一些数据:

[sql]  view plain copy
  1. create table EMPLOYEES(  
  2. EMP_NAME CHAR(10) NOT NULL,  
  3. EMP_SALARY INT unsigned NOT NULL,  
  4. EMP_DEP CHAR(10) NOT NULL  
  5. );  
  6. insert into EMPLOYEES values('小王',5000,'销售部');  
  7. insert into EMPLOYEES values('阿小王',6000,'销售部');  
  8. insert into EMPLOYEES values('工是不',7000,'销售部');  
  9. insert into EMPLOYEES values('人人乐',3000,'资源部');  
  10. insert into EMPLOYEES values('满头大',4000,'资源部');  
  11. insert into EMPLOYEES values('天生一家',5500,'资源部');  
  12. insert into EMPLOYEES values('小花',14500,'资源部');  
  13. insert into EMPLOYEES values('大玉',15000,'研发部');  
  14. insert into EMPLOYEES values('条条',12000,'研发部');  
  15. insert into EMPLOYEES values('笨笨',13000,'研发部');  
  16. insert into EMPLOYEES values('我是天才',15000,'研发部');  
  17. insert into EMPLOYEES values('无语了',6000,'审计部');  
  18. insert into EMPLOYEES values('什么人',5000,'审计部');  
  19. insert into EMPLOYEES values('不知道',4000,'审计部');  

mysql中的五种统计函数:
(1)max:求最大值
求每个部门的最高工资:

[sql]  view plain copy
  1. select EMP_NAME,EMP_DEP,max(EMP_SALARY) from EMPLOYEES group by EMP_DEP;  



(2)min:求最小值

求每个部门的最仰工资:

[sql]  view plain copy
  1. select EMP_NAME,EMP_DEP,min(EMP_SALARY) from EMPLOYEES group by EMP_DEP;  



 (3)sum:求总数和

求每个部门的工资总和:

[sql]  view plain copy
  1. select EMP_DEP,sum(EMP_SALARY) from EMPLOYEES group by EMP_DEP  



(4)avg:求平均值

求每个部门的工资平均值

[sql]  view plain copy
  1. select EMP_DEP,avg(EMP_SALARY) from EMPLOYEES group by EMP_DEP;  



(5)count:求总行数
求每个部门工资大于一定金额的人数

[sql]  view plain copy
  1. select EMP_DEP,count(*) from EMPLOYEES where EMP_SALARY>=500 group by EMP_DEP;  



3.3、带条件的groub by 字段 having,利用HAVING语句过滤分组数据

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。

[sql]  view plain copy
  1. select EMP_DEP,avg(EMP_SALARY),group_concat(EMP_NAME)from EMPLOYEES  group by EMP_DEP HAVING  avg(EMP_SALARY) >=6000;  
查找平均工资大于6000的部门,并把部门里的人全部列出来


四、多表上联合查询

多表上联合查询分为内连接查询和外连接查询

(1)隐式内连接查询

[sql]  view plain copy
  1. select STUDENT.STU_ID,STUDENT.STU_NAME,STUDENT.STU_AGE,STUDENT.STU_SEX,GRADE.STU_SCORE from STUDENT,GRADE WHERE STUDENT.STU_ID=GRADE.STU_ID AND GRADE.STU_SCORE >=90;  
查找大于90分的学生信息:


(2)显式内连接查询

[sql]  view plain copy
  1. select STUDENT.STU_ID,STUDENT.STU_NAME,STUDENT.STU_AGE,STUDENT.STU_SEX,GRADE.STU_SCORE from STUDENT inner join GRADE on STUDENT.STU_ID=GRADE.STU_ID AND GRADE.STU_SCORE >=90;  


用法:select .... from 表1 inner join 表2 on 条件表达式

(3)外连接查询

left join.左连接查询。

用法 :select .... from 表1 left join 表2 on 条件表达式

意思是表1查出来的数据不能为null,但是其对应表2的数据可以为null

[sql]  view plain copy
  1. select STUDENT.STU_ID,STUDENT.STU_NAME,STUDENT.STU_AGE,STUDENT.STU_SEX,GRADE.STU_SCORE from STUDENT left join GRADE on STUDENT.STU_ID=GRADE.STU_ID;  


right join就是相反的了,用法相同

用left join的时候,left join操作符左侧表里的信息都会被查询出来,右侧表里没有的记录会填空(NULL).right join亦然;inner join的时候则只有条件合适的才会显示出来

full join()
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据
值。
      仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或
视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外
部联接中两个表的所有行都将返回。

五、子查询

以一个查询select的结果作为另一个查询的条件

语法:select * from 表1 wher 条件1(select ..from 表2 where 条件2)

1、与In结合

[sql]  view plain copy
  1. select * from STUDENT where STU_ID IN(select STU_ID from GRADE where STU_SCORE>85);  
查找大于85分的学生信息



2、与EXISTS结合

EXISTS和NOT EXISTS操作符只测试某个子查询是否返回了数据行。如果是,EXISTS将是true,NOT EXISTS将是false。

[sql]  view plain copy
  1. select * from STUDENT where  EXISTS (select STU_ID from GRADE where STU_SCORE>=100);  
如果有学生成绩大于100,才查询所有的学生信息


3、ALL、ANY和SOME子查询

any和all的操作符常见用法是结合一个相对比较操作符对一个数据列子查询的结果进行测试。它们测试比较值是否与子查询所返回的全部或一部分值匹配。比方说,如果比较值小于或等于子查询所返回的每一个值,<=all将是true,只要比较值小于或等于子查询所返回的任何一个值,<=any将是true。some是any的一个同义词。

[sql]  view plain copy
  1. select STU_ID from GRADE where STU_SCORE <67;  



只要学号大于上面的任意一个就显示出来:

[sql]  view plain copy
  1. select * from STUDENT where STU_ID >= any (select STU_ID from GRADE where STU_SCORE <67);  



六、合并查询结果

合并查询结果是将多个SELECT语句的查询结果合并到一起。因为某种情况下,需要将几个SELECT语句查询出来的结果合并起来显示。
使用UNION关键字时,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录。而UNION ALL关键字则只是简单的合并到一起。其语法规则如下:

[sql]  view plain copy
  1. SELECT语句1  
  2. UNION | UNION ALL  
  3. SELECT语句2  
  4. UNION | UNION ALL ….  
  5. SELECT语句n ;  

七、排序与取数

7.1、order by

(1) order by price //默认升序排列
(2)order by price desc //降序排列
(3)order by price asc //升序排列,与默认一样
(4)order by rand() //随机排列,效率不高

[sql]  view plain copy
  1. select * from GRADE where STU_SCORE >80 order by STU_SCORE;  

默认是按升序的,

也可以这么写

[sql]  view plain copy
  1. select * from GRADE where STU_SCORE >80 order by STU_SCORE ASC;  
结果如下:

如果想换成降序的:

[sql]  view plain copy
  1. select * from GRADE where STU_SCORE >80 order by STU_SCORE desc;  



7.2、limit

limit [offset,] N
offset 偏移量,可选,不写则相当于limit 0,N
N 取出条目 

取分数最高的前5条

[sql]  view plain copy
  1. select * from GRADE order by STU_SCORE desc limit 5;  



取分数最低的前5条

[sql]  view plain copy
  1. select * from GRADE order by STU_SCORE asc limit 5;  


取分数排名在10-15之间的5条

[sql]  view plain copy
  1. select * from GRADE order by STU_SCORE desc limit 10,5  




八、为表和字段取别名

使用AS来命名列

[sql]  view plain copy
  1. select STU_ID as '学号',STU_SCORE as '分数' from GRADE;  


当表的名称特别长时,在查询中直接使用表名很不方便。这时可以为表取一个别名。用这个别名来代替表的名称。
MySQL中为表取别名的基本形式如下:
表名 表的别名

[sql]  view plain copy
  1. select S.STU_ID,S.STU_NAME,S.STU_AGE,S.STU_SEX,G.STU_SCORE from STUDENT S,GRADE G WHERE S.STU_ID=G.STU_ID AND G.STU_SCORE >=90;  



九、使用正则表达式查询

        正则表达式是用某种模式去匹配一类字符串的一个方式。例如,使用正则表达式可以查询出包含A、B、C其中任一字母的字符串。正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。正则表达式可以应用于非常复杂查询。
MySQL中,使用REGEXP关键字来匹配查询正则表达式。其基本形式如下:
属性名 REGEXP '匹配方式'


在使用前先插入一些数据:

[sql]  view plain copy
  1. insert  into STUDENT values(2022,'12wef',13,'男');  
  2. insert  into STUDENT values(2023,'faf_23',13,'男');  
  3. insert  into STUDENT values(2024,'fafa',13,'女');  
  4. insert  into STUDENT values(2025,'ooop',14,'男');  
  5. insert  into STUDENT values(2026,'23oop',14,'男');  
  6. insert  into STUDENT values(2027,'woop89',14,'男');  
  7. insert  into STUDENT values(2028,'abcdd',11,'男');  

(1)使用字符“^”可以匹配以特定字符或字符串开头的记录。

查询所有以阿头的

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP  '^阿';  


以数字开头

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP '^[0-9]';  


(2)使用字符“$”可以匹配以特定字符或字符串结尾的记录

以数字结尾

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP '[0-9]$';  


(3)用正则表达式来查询时,可以用“.”来替代字符串中的任意一个字符。

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP '^w....[0-9]$';  
以w开头,以数字结束,中间有4个


(4)使用方括号([])可以将需要查询字符组成一个字符集。只要记录中包含方括号中的任意字符,该记录将会被查询出来。
例如,通过“[abc]”可以查询包含a、b、c这三个字母中任何一个的记录。

使用方括号可以指定集合的区间。
“[a-z]”表示从a-z的所有字母;
“[0-9]”表示从0-9的所有数字;
“[a-z0-9]”表示包含所有的小写字母和数字。
“[a-zA-Z]”表示匹配所有字母。

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP '[0-9a-z]';  
查询所有包含有数字和小写字母的


使用“[^字符集合]”可以匹配指定字符以外的字符

(5){}表示出现的次数

正则表达式中,“字符串{M}”表示字符串连续出现M次;“字符串{M,N}”表示字符串联连续出现至少M次,最多N次。例如,“ab{2}”表示字符串“ab”连续出现两次。“ab{2,4}”表示字符串“ab”连续出现至少两次,最多四次。

o出现2次

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP 'o{2}';  

(6)+表示到少出现一次

fa至少出现一次

[sql]  view plain copy
  1. select * from STUDENT where STU_NAME REGEXP '(fa)+';  


       

 注意:  

       正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用符号“|”隔开。只要匹配这些字符串中的任意一个即可。每个字符串与”|”之间不能有空格。因为,查询过程中,数据库系统会将空格也当作一个字符。这样就查询不出想要的结果。
正则表达式中,“*”和“+”都可以匹配多个该符号之前的字符。但是,“+”至少表示一个字符,而“*”可以表示零个字符。

转载于:https://my.oschina.net/zhanghaiyang/blog/606371

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js -- Stream 使用小例 ( 流运用 :读取、写入、写出、拷贝)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Stream 是一个抽象接口&#xff0c;Node 中有很多对象实现了这个接口。例如&#xff0c;对http 服务器发起请求的request 对象就是一个 …

学会用好 Visual Studio Code

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Visual Studio Code是个牛逼的编辑器&#xff0c;启动非常快&#xff0c;完全可以用来代替其他文本文件编辑工具。又可以用来做开发&…

Maven学习总结(五)——聚合与继承

2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(五)——聚合与继承 一、聚合 如果我们想一次构建多个项目模块&#xff0c;那我们就需要对多个项目模块进行聚合 1.1、聚合配置代码 1 <modules> 2 <module>模块一</module> 3 …

19-6/28作业:100以内偶数求和

☞作业要求 ☞分析思路 在循环里面增加约束&#xff0c;使累加1变成累加2 ☞do-while循环代码 public class GaoSiFor { public static void main(String[] args) { //定义两个变量 int sum 0; int i 0; //开始循环 do{ //…

coco creator编辑动画坑之拖图片

如图所示&#xff0c;批量选中多张图片之后&#xff0c;拖到右下角的框中&#xff0c;发现有时候可以有时候不行。这个我觉得是个软件的bug 后来经过测试发现只有在粉红色圈的高度才可以正确放入图片&#xff0c;否则都放不了。转载于:https://www.cnblogs.com/codeDevotee/p/1…

Spring MVC常用注解说明

2019独角兽企业重金招聘Python工程师标准>>> 使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能。02 之前在使用Struts2实现MVC的注解时&#xff0c;是借助struts2-convention这个插件&#xff0c;如今我们使用Spring自带的spring-webmvc组件来实现同…

vue.js 三种方式安装 ( vue-cli ) 、安装详解、创建项目

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09;是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单…

数据结构之顺序表(一)

有关顺序表&#xff0c;由于代码太长&#xff0c;我将分成2部分&#xff0c;这边是头文件SeqList.h和主函数&#xff1a; #ifndef __SEQLIST_H__ #define __SEQLIST_H__#define FALSE -1 #define TRUE 0#define INIT_SIZE 100 #define INCRESS_SIZE 20typedef int Seq…

科目三考试指南

正在准备科目三的您&#xff0c;对顺利通过考试有信心吗&#xff1f;今天&#xff0c;小编为大家带来科目三靠边停车技巧&#xff0c;通过讲解靠边停车考试要求&#xff0c;让学员更好地掌握相关技巧&#xff0c;希望能帮到大家。 靠边停车考试项目中规定&#xff0c;车前保险杠…

docker学习4-docker安装mysql环境

前言 docker安装mysql环境非常方便&#xff0c;简单的几步操作就可以了 拉取mysql镜像 先拉取mysql的镜像&#xff0c;可以在docker的镜像仓库找到不同TAG标签的版本https://hub.docker.com/_/mysql?tabtags 我这里选择mysql:5.7标签 [rootyoyo ~]# docker pull mysql:5.7 5.7…

Dynamics CRM 2015 站点地图公告配置实体显示名称的变更

CRM更新2015后&#xff0c;在设置里找不到公告配置了 在原来的位置上你会东西一个叫活动源配置的东西&#xff0c;点开看后就是原来的公告配置。 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 转载于:https://www.cnblogs.com/VicTang/p/4799531…

漫谈微服务架构:什么是Spring Cloud,为何要选择Spring Cloud

Spring Cloud是基于Spring Boot的&#xff0c;因此还在使用SpringMVC的同学要先了解Spring Boot。先上一段官话&#xff0c;Spring Cloud是一个基于Spring Boot实现的云应用开发工具&#xff0c;它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、…

打印python包含汉字报SyntaxError: Non-ASCII character '\xe4' in file

因为本人主要使用Scala语言&#xff0c;但是之前同事包括老大都是使用python&#xff0c;加上python在spark的使用中的确越来越受欢迎&#xff0c;所以最近准备入坑python&#xff0c;但是装完写demo的时候出了问题&#xff0c;如下&#xff1a; 查了下发现&#xff0c;这是pyt…

Node.js 多版本安装配置(Window、Ubuntu 、CentOS 、Mac OS、Cloud Studio)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 向大家介绍在window和Linux上安装Node.js的方法。 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例。 Node.js安装包及源码下载…

cookie ? 利用cookie实现 显示上次访问时间?

二、 <%page import"java.text.SimpleDateFormat"%> <%page import"java.util.Date"%> <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC &…

C语言实现简单的电子通讯录

**制作一个电子通讯录&#xff0c;通过该通讯录能录入好友ID号、姓名(英文)、手 机号码&#xff0c;家庭住址&#xff0c;公司电话。** 原理&#xff1a;分成5个模块&#xff0c;将模块功能实现写入头文件中。主函数部分代码&#xff1a; 显示函数部分&#xff0c;在Markdow…

结构体的传参理解成员的存储方式

结构体的成员变量在内存中存储的方式&#xff0c;决定于设定的内存对齐方式是几字节&#xff1a;gcc编译默认使用4字节对齐&#xff1a; 1 #include <stdio.h>2 3 typedef struct test_buf4 {5 int a;6 char c;7 char buf[8];8 char *str;9 10 }buf…

eclipse插件大全整理学习

Eclipse Web Tools Platform(WTP) 地址&#xff1a;http://download.eclipse.org/webtools/ WTP十分强大&#xff0c;支持HTML, JavaScript, XML, JSP&#xff0c;支持语法着色&#xff0c;代码提示&#xff0c;代码折叠等&#xff0c;以及其它一堆JavaEE相关的功能。Web开发必…

网友力荐教子名言 只有50句却能改变儿女一生

从当今的家庭来看&#xff0c;大多数的家长把自己的一切希望寄托在孩子的身上&#xff0c;这个〝望子成龙〞或〝盼女成凤〞的希望能否成为现实&#xff0c;需要多方面的努力&#xff0c;而家庭是孩子的第一所〝学校〞&#xff0c; 父母是孩子的第一位〝老师〞&#xff0c;家庭…

Python-02-基础知识

一、第一个Python程序 【第一步】新建一个hello.txt 【第二步】将后缀名txt改为py 【第三步】使用记事本编辑该文件 【第四步】在cmd中运行该文件 print("Hello World!") 强调&#xff1a;python解释器执行程序是解释执行&#xff0c;即打开文件读内容&#xff0c;因…