sql语句

mysql中字符串类型的数字排序出错解决方法:cast(year as signed)

eg:

 select year,month
 From table
 order by  cast(year as signed), cast(month as signed) asc

mysql查询结果自增(set @num = 0 ;)乱序问题

eg:

set @index_num=0; 
SELECT @index_num:=@index_num+1  indexnum,  device_name, years_data, months_data, day_data ,unit, `status` 
FROM 	energy_floor_dianbiao_month_data  

1、数据库准备

1.1:Websites.sql

create table Websites(
	id int(11) primary key auto_increment,
	name varchar(20),
	url varchar(100),
	alexa int(11),
	country varchar(20)
)

insert into Websites(name,url,alexa,country) values("Google","https://www.google.cm/",1,"USA");
insert into Websites(name,url,alexa,country) values("淘宝","https://www.taobao.com/",13,"CN");
insert into Websites(name,url,alexa,country) values("菜鸟教程","http://www.runoob.com/",4698,"CN");
insert into Websites(name,url,alexa,country) values("微博","http://www.weibo.com/",20,"CN");
insert into Websites(name,url,alexa,country) values("Facebook","https://www.Facebook.com/",3,"USA");


1.2:apps.sql

create table apps(
	id int(11) primary key auto_increment,
	app_name varchar(20),
	url varchar(100),
	country varchar(20)
)

insert into apps(app_name,url,country) values("QQ APP","http://im.qq.com/","CN");
insert into apps(app_name,url,country) values("微博 APP","http://weibo.com/","CN");
insert into apps(app_name,url,country) values("淘宝 APP","https://www.taobao.com/","CN");

1.3 :access_log.sql (该SQL中的site_id字段对应websites表中的id字段)
自己按照上面的方式,或者直接用工具的快捷方式创建一张表,表的字段如下:
在这里插入图片描述

like关键字

模糊查询,语法格式:like “条件”;条件中:%为一个或多个字符,_为一个字符

-- 语句中查找name中包含oo,并且oo前有一个或多个字符,oo后有一个字符的数据
select * from websites where name like '%oo_';

limit关键字

limit用于查询指定个数的数据
语句种查询前两条的数据
select * from apps limit 2;

in关键字

in小括号里面的条件全部匹配

语句中查找id为1,2,3的数据
select * from websites where id in(1,2,3);

between and关键字

查找v1和v2之间的数据,语法格式:between v1 and v2


-- 语句中查找id在13之间的数据
select * from websites where id between 1 and 3;

as关键字

给列或者表起别名,语法格式:列/表 as 别名;其简略形式可以把as去掉,直接列/表 别名;

-- 语句中name的别名为n,url的别名为u,websites表的别名w
select name as n,url as a from websites w;

inner join

inner join为连接左右两张表,最后的结果只显示符合条件的数据;注意判断条件为on,而不是where;

-- 查询websites表和access_log表中id相等的数据
select * from websites w inner join access_log a on w.id = a.site_id;

left join

left join左边的表作为主表,主表的所有数据会全部显示,如果没有对应右边的表则显示为null

-- websites表作为主表,数据全部显示,对应的access_log表没有值就显示为null
select * from websites w left join access_log a on w.id = a.site_id;

right join

right join右边的表作为主表,主表的所有数据全部显示,左边的表有满足条件的就显示,没有就显示为null

-- access_log表作为主表,数据全部显示,对应的websites表有符合查询条件的就显示,没有匹配的则显示为null
select * from websites w right join access_log a on w.id = a.site_id;

union和union all

作用在:用于连接两个select语句,在使用union或者union all的时候两个select中的被查询字段数量一定要保持一致,否则报错!其最终的结果为垂直拼接!union可以去重,union all会显示所有数据!

select name,url from websites
union all
select id,app_name from apps;

insert into select

insert into table1(field1,field2) select field1,field2 from table2 :复制table2的filed1和field2内容到存在的表table1中,特别注意,表table1一定是存在的表

-- 复制apps表的app_name,url字段到websites表的name,url字段
insert into websites(name,url) select app_name,url from apps where app_name = 'QQ APP';
转载地址:
https://blog.csdn.net/qq_41011626/article/details/114634514?spm=1001.2014.3001.5502
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值