1.左外连接left outer join或者left jion,outer可以省略不写,下边的右连接和全连接也一样: 左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必须要全部显示出来,如下图: 这里第一个查询中,company表在左边,因此就以company为基准,所以显示的结果中除了depart_id相同的6条数据外,还把company中存在的另外一条也显示出来. 而第二个查询中,emp在左边,就以emp为基准,因此显示的结果中除了depart_id相同的6条…
1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tablename2: 注意这个操作必须保证两张表字段相同,字段数据类型也相同.另外,使用union的时候会去除重复(相同)的记录,而union all则不会. 注:下边的几个连接查询涉及到笛卡尔积的概念,即如果存在两张表,第一张记录数为n条,另一张表的记录数为m条,那么笛卡尔积得出的记录数就是n*m条:如果第一张表的字段数为a个,另一张的字段…
注:sql的移植性比较强,函数的移植性不强,一般为数据库软件特有,例如mysql有mysql的函数,oracle有oracle的函数. 1.concat连接字符串: 从上图中可以看出,直接使用select concat就可以连接任意两个以上的字符串,同时也可以用来连接查询结果,一般情况中也是会用来连接查询结果.需要注意的是,如果连接的内容有null存在的话,那么结果就只会是null. 2.concat_ws使用分隔符连接字符串: 在上边的语法中,第一个字符传代表指定的连接格式,其他的代表需要连接…
mysql中虽然有连接查询实现多表连接查询,但是连接查询的性能很差,因此便出现了子查询. 1.理论上,子查询可以出现在查询语句的任何位置,但实际应用中多出现在from后和where后.出现在from后的子查询结果通常是多行多列的,充当临时表:而出现在where后的子查询结果通常是单行单列,充当条件: 2.where后作为条件的子查询多与"="."!=".">"."<"等比较运算符一起使用.结果虽然通常是单行单列,但…
1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是用*. 2.去重查询:select distinct 字段1,字段2... form tablename: 可以结合上一张图的结果来对比. 3.直接在查询时做数学四则运算,加减乘除余: 4.查询时给查询结果字段重命名:select 字段1 as 名称1,字段2 as 名称2 ... from ta…
数值函数是常用函数之一,也是学习mysql必会的,常用的有如下一些: 1.ceil:返回大于某个数的最小整数值: 2.floor:和上一个相反,返回小于某个数的最大整数值: 3.round:返回某个数值四舍五入后的数值: 如上图,round的第二个参数代表需要保留的小数位. 4.truncate:返回某个数值被截断后的数值: 这里与round不同的是,不管需要保留的小数位后边一位是什么都会直接抛弃,同样的第二个参数代表需要保留的小数位. 注:以上的例子中都是整数,但这些函数也可以一样的处理负数.…
注:文中所有的...代表多个. 1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) from tablename: 这里都可以适当的拓展,比如加条件,重命名等等. 3.使用sum求和:select sum(字段名) from tablename: 4.使用max和min求最大值.最小值: 5.注意:使用这些函数时,如果数据库中没有数据,count返回0,其他的返回null: 6.使用…
1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询的开始位置,也可以理解为跳过的数量:上图中的2代表需要查询出的数量.这个表中有3条数据,因为限制了条数为2,因此实际结果只是两条.另外,这里的初始位置是0,实际上可以不写,默认就是0: 这里还有一种情况,就是指定查询结果的数量可能大于表中的实际数量,这个时候返回结果会返回表中所有符合条件的数据,例如…
1.单条件查询:select 字段名 from tablename where 条件: 2.简单多条件查询,使用&&或者between and等: 3.is null和is not null查询,这里要注意null不是空字符串不是0: 4.in和not in查询,相当于是用or把in后边的集合元素连起来.注意如果in后边带的集合中存在null,那么不会影响结果,但not in后边集合中有null,就不会查处任何结果,not in也查不出null: 5.like模糊查询(不仅适用字符串):…
1.插入单条数据:insert into tablename(字段名1,字段名2,...) values(值1,值2,...); 从图中可以看出,插入时不需要每个字段都有值(在没有相关的约束前提下),但是需要注意的是字段的数量和后边的值的数量必须一致,还要和自定的字段的顺序一致,类型也要一致,否则会报错.另外,如果没有指定任何字段的情况下,默认是选择了所有字段,则必须每个字段都有对应的值,并且需要和表中的字段顺序一致,否则会报错,如图: 2.插入多条数据:insert into tablenam…