常用查询
create table shop(
article int(4) unsigned zerofill default '0000' not null,dealer char(20) default '' not null,
price double(16,2) default '0.00' not null, primary key(article,dealer));ZEROFILL 零填充
UNSIGNED 无符号
MAX
SELECT MAX(ARTICLE) AS article from shop;ORDER BY
SELECT ARTICLE,DEALER,PRICE FROM SHOP ORDER BY PRICE DESC LIMIT 1;LINT START,LENGTH 截取记录
GROUP BY
SELECT ARTICLE,MAX(PRICE) AS PRICE FROM SHOP GROUP BY ARTICLE;
SELECT ARTICLE,COUNT(*) AS COUNT FROM SHOP GROUP BY ARTICLE;每组最大值
SELECT ARTICLE,DEALER,PRICE FROM SHOP S1 WHERE PRICE =
(SELECT MAX(S2.PRICE) FROM SHOP S2 WHERE S1.ARTICLE = S2.ARTICLE );
SELECT ARTICLE,DEALER ,MAX(PRICE) AS PRICE FROM SHOP GROUP BY ARTICLE;1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
创建表
CREATE TABLE COURSE(name varchar(20) , course_name varchar(15), score int);插入数据
insert into course values
-> ('张三','语文',81),
-> ('张三','数学',75),
-> ('李四','语文',76),
-> ('李四','数学',90),
-> ('王五','语文',81),
-> ('王五','数学',100),
-> ('王五','英语',90);查询
1. 分组查询每个人最低分数的课程,是否大于80
select * from (
SELECT name, course_name, min(score)
as s from course group by name) T
where T.s >80;
SELECT name, course_name, min(score) as s from course group by name
having min(score)>80;Having 聚合函数过滤 -先聚合,再分组,再过滤
SELECT @X:= min(score),@Y:= max(score) from course;
SELECT * FROM COURSE WHERE SCORE = @X OR SCORE =@Y;创建表
create table person(
-> id smallint unsigned not null auto_increment,
-> name char(60) not null,
-> primary key(id));
create table shirt(
-> id smallint unsigned not null auto_increment,
-> style enum('t-shirt','polo','dress') not null,
-> color enum('red','blue','orange','white','black') not null,
-> owner smallint unsigned not null references person(id),
-> primary key(id));插入数据
插入主表记录-记录ID-利用变量插入从表
insert into person values(NULL,'Antonio Paz');
select @last = LAST_INSERT_ID();
INSERT INTO shirt values
-> (NULL,'polo','blue',@last),
-> (NULL,'dress','white',@last),
-> (NULL,'t-shirt','blue',@last);
insert into person values(NULL,'Lilianna angellovska');
select @last:= LAST_INSERT_ID();
INSERT INTO shirt values
-> (NULL,'dress','orange',@last),
-> (NULL,'polo','red',@last),
-> (NULL,'dress','blue',@last),
-> (NULL,'t-shirt','white',@last);查询
SELECT s.* FROM person p,shirt s
where p.name like '%lili%' and s.owner = p.id and s.color <> 'white';show create table shirt;SELECT * FROM SHIRT UNION SELECT * FROM SHIRT;
SELECT * FROM SHIRT WHERE color ='blue' UNION SELECT * FROM SHIRT where style='dress';创建表
create table t1
-> (
-> year year(4),month int(2) unsigned zerofill,day int(2) unsigned zerofill);插入数据
insert into t1 values
-> (2000,1,1),
-> (2000,1,20),
-> (2000,1,30),
-> (2000,2,2),
-> (2000,2,23),
-> (2000,2,23);查询
select year,month,bit_count(bit_or(1< | 留言与评论(共有 0 条评论) “” |