日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql查姓名中既有a也有e的姓_mysql查询初级练习题(已更完)

發(fā)布時間:2024/1/8 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql查姓名中既有a也有e的姓_mysql查询初级练习题(已更完) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這些初級題應(yīng)該算是入了sql查詢的門了吧?但是很多性能問題還是不清楚,太多知識有欠缺,一點(diǎn)一點(diǎn)來吧。

第一題

create table student(

Id int(10) not null auto_increment primary key,

Name varchar(20) not null ,

Sex varchar(4),

Birth year,

Department varchar(20) not null,

Address varchar(50)

)engine = InnoDB default charset = utf8

create table score(

Id int(10) not null auto_increment primary key,

Stu_id int(10) not null,

C_name varchar(20),

Grade int(10)

)engine = InnoDB default charset = utf8

INSERT INTO student VALUES( 901,’張老大’, ‘男’,1985,’計算機(jī)系’, ‘北京市海淀區(qū)’);

INSERT INTO student VALUES( 902,’張老二’, ‘男’,1986,’中文系’, ‘北京市昌平區(qū)’);

INSERT INTO student VALUES( 903,’張三’, ‘女’,1990,’中文系’, ‘湖南省永州市’);

INSERT INTO student VALUES( 904,’李四’, ‘男’,1990,’英語系’, ‘遼寧省阜新市’);

INSERT INTO student VALUES( 905,’王五’, ‘女’,1991,’英語系’, ‘福建省廈門市’);

INSERT INTO student VALUES( 906,’王六’, ‘男’,1988,’計算機(jī)系’, ‘湖南省衡陽市’);

INSERT INTO score VALUES(NULL,901, ‘計算機(jī)’,98);

INSERT INTO score VALUES(NULL,901, ‘英語’, 80);

INSERT INTO score VALUES(NULL,902, ‘計算機(jī)’,65);

INSERT INTO score VALUES(NULL,902, ‘中文’,88);

INSERT INTO score VALUES(NULL,903, ‘中文’,95);

INSERT INTO score VALUES(NULL,904, ‘計算機(jī)’,70);

INSERT INTO score VALUES(NULL,904, ‘英語’,92);

INSERT INTO score VALUES(NULL,905, ‘英語’,94);

INSERT INTO score VALUES(NULL,906, ‘計算機(jī)’,90);

INSERT INTO score VALUES(NULL,906, ‘英語’,85);

1) 查詢student表的第2條到4條記錄中計算機(jī)系和英語系的學(xué)生的信息

2) 從student表中查詢每個院系年齡18~30歲的學(xué)生信息

3) 查詢計算機(jī)成績低于95的學(xué)生信息

4) 查詢同時參加計算機(jī)和英語考試的學(xué)生的信息

#1) 查詢student表的第2條到4條記錄中計算機(jī)系和英語系的學(xué)生的信息

select * from (select * from student limit 1,3) as temTable where temTable.Department in (“計算機(jī)系”,”英語系”);

#2) 從student表中查詢每個院系年齡18~30歲的學(xué)生信息

select * from student where (year(now()) – Birth) between 18 and 22;

#3) 查詢計算機(jī)成績低于95的學(xué)生信息

select * from student where Id in (select Stu_id from score where Grade < 95);

#4) 查詢同時參加計算機(jī)和英語考試的學(xué)生的信息

SELECT * FROM student WHERE id in

(SELECT stu_id FROM score WHERE stu_id IN

(SELECT stu_id FROM score WHERE c_name= ‘計算機(jī)’)

AND c_name= ‘英語’ );#學(xué)著用any和把同一個表查兩次!!!

第二題

create table customer(

c_id char(6) not null primary key,

name varchar(30) not null,

location varchar(30),

salary decimal(8,2)

)engine = InnoDB default charset = utf8;

create table bank(

b_id char(5) not null primary key,

bank_name char(30) not null

)engine = InnoDB default charset = utf8;

create table deposite(

d_id int not null auto_increment primary key,

c_id char(6),

b_id char(5),

dep_date date,

dep_type char(1),

amount decimal(8,2),

foreign key(b_id) references bank(b_id),

foreign key(c_id) references customer(c_id)

)engine = InnoDB default charset = utf8;

insert into customer values (101001,”孫楊”,”廣州”,1234);

insert into customer values (101002,”郭海”,”南京”,3526);

insert into customer values (101003,”盧江”,”蘇州”,6892);

insert into customer values (101004,”郭慧”,”濟(jì)南”,3492);

insert into customer values (101005,”zain”,”北京”,6324);

insert into bank values (“B0001″,”工商銀行”);

insert into bank values (“B0002″,”建設(shè)銀行”);

insert into bank values (“B0003″,”中國銀行”);

insert into bank values (“B0004″,”農(nóng)業(yè)銀行”);

insert into deposite values (1,”101001″,”B0001″,”2011-04-05″,”3″,42526);

insert into deposite values (2,”101002″,”B0002″,”2012-07-15″,”5″,66500);

insert into deposite values (3,”101003″,”B0003″,”2010-11-24″,”1″,42366);

insert into deposite values (4,”101004″,”B0004″,”2008-03-31″,”1″,62362);

insert into deposite values (5,”101001″,”B0003″,”2002-02-07″,”3″,56346);

insert into deposite values (6,”101002″,”B0001″,”2004-09-23″,”3″,353626);

insert into deposite values (7,”101003″,”B0004″,”2003-12-14″,”5″,36236);

insert into deposite values (8,”101004″,”B0002″,”2007-04-21″,”5″,26267);

insert into deposite values (9,”101001″,”B0002″,”2011-02-11″,”1″,435456);

insert into deposite values (10,”101002″,”B0004″,”2012-05-13″,”1″,234626);

insert into deposite values (11,”101003″,”B0003″,”2001-01-24″,”5″,26243);

insert into deposite values (12,”101004″,”B0001″,”2009-08-03″,”3″,45671);

1) 對 deposite、customer、bank 進(jìn)行查詢,查詢條件為 location 在廣州、蘇州、濟(jì)南的客戶,存款在300000 至 500000 之間的存款記錄,顯示客戶姓名 name、銀行名稱 bank_name、存款金額 amount.

2) 對 deposite 表進(jìn)行統(tǒng)計,按銀行統(tǒng)計存款總數(shù),顯示為 b_id,total.

#對 deposite、customer、bank 進(jìn)行查詢,查詢條件為 location

#在廣州、蘇州、濟(jì)南的客戶,存款在300000 至 500000 之間的存款記錄,

#顯示客戶姓名 name、銀行名稱 bank_name、存款金額 amount.

SELECT amount,name,bank_name

FROM customer INNER JOIN deposite ON deposite.c_id = customer.c_id

INNER JOIN bank ON deposite.b_id = bank.b_id

WHERE deposite.amount BETWEEN 300000 AND 500000 AND customer.location IN (“廣州”,”蘇州”,”濟(jì)南”)

#2先子查詢再連表

select amount,name,bank_name from(

select b_id,c_id,amount from deposite where c_id in

(

select c_id from customer where location in (“廣州”,”蘇州”,”濟(jì)南”)

) and d_id in(

select d_id from deposite where amount between 300000 and 500000

)

)as temTable

inner join customer on temTable.c_id = customer.c_id

inner join bank on temTable.b_id = bank.b_id

#對 deposite 表進(jìn)行統(tǒng)計,按銀行統(tǒng)計存款總數(shù),顯示為 b_id,total.

select b_id, sum(amount) as total from deposite group by b_id

第三題

create table jifei(

phone char(8),

month char(8),

expenses decimal(8,2)

)engine = InnoDB default charset = utf8;

insert into jifei values (“11111111″,”20100606”,51.2);

insert into jifei values (“11111111″,”20100706”,51.2);

insert into jifei values (“11111111″,”20100806”,51.2);

insert into jifei values (“11111111″,”20100906”,0);

insert into jifei values (“11111111″,”20101006”,0);

insert into jifei values (“22222222″,”20100606”,70.2);

insert into jifei values (“22222222″,”20100706”,70.2);

insert into jifei values (“22222222″,”20100806”,50);

insert into jifei values (“22222222″,”20100906”,0);

insert into jifei values (“22222222″,”20101006”,0);

insert into jifei values (“33333333″,”20100606”,70);

insert into jifei values (“33333333″,”20100706”,70);

insert into jifei values (“33333333″,”20100806”,70);

insert into jifei values (“33333333″,”20100906”,0);

insert into jifei values (“33333333″,”20101006”,70);

insert into jifei values (“44444444″,”20100606”,0);

insert into jifei values (“44444444″,”20100706”,0);

insert into jifei values (“44444444″,”20100806”,0);

insert into jifei values (“44444444″,”20100906”,0);

insert into jifei values (“44444444″,”20101006”,0);

insert into jifei values (“44444444″,”20101006”,0);

1.查找6,7,8月有話費(fèi)產(chǎn)生且話費(fèi)為51到100;9,10月份沒有話費(fèi)產(chǎn)生的用戶

2刪除jifei表中10月份出現(xiàn)的相同記錄的多余條數(shù)

3查詢9,10月份,月均30元以上的用戶(結(jié)果無重復(fù)項)

1.查找6,7,8月有話費(fèi)產(chǎn)生且話費(fèi)為51到100;9,10月份沒有話費(fèi)產(chǎn)生的用戶

SELECT phone1 FROM(

SELECT phone AS phone1 FROM

(SELECT * FROM jifei

WHERE MONTH(month) IN (6,7,8) AND expenses BETWEEN 51 AND 100) AS a

GROUP BY a.phone

HAVING count(1) = 3

) AS temTableA

WHERE temTableA.phone1 IN(

SELECT phone AS phone2 FROM

(SELECT * FROM jifei

WHERE MONTH(month) IN (9,10) AND expenses = 0) AS b

GROUP BY b.phone

HAVING count(1) = 2

)

2刪除jifei表中10月份出現(xiàn)的相同記錄的多余條數(shù)

我覺得沒有不同的id,所有內(nèi)容都一樣時,無法刪除只保留一條,有寫出答案的希望可以告訴我多謝。所以我只寫了一個”查出10月份出現(xiàn)重復(fù)記錄的用戶“如下:

SELECT phone FROM

(SELECT * FROM jifei WHERE MONTH(month) = 10) AS a

GROUP BY a.phone

HAVING count(*) > 1

這個鏈接里面對處理重復(fù)數(shù)據(jù)寫的還比較全面。

3查詢9,10月份,月均30元以上的用戶(結(jié)果無重復(fù)項)

SELECT DISTINCT phone FROM jifei

WHERE MONTH(month) IN (9,10)

GROUP BY phone HAVING AVG(expenses) > 30;

第四題

create database xuexiao;

use xuexiao;

create table sc (sno varchar(20), cno varchar(20), grade int)ENGINE = INNODB DEFAULT charset = utf8;

create table course (cno varchar(20), cname varchar(20), hours int)ENGINE = INNODB DEFAULT charset = utf8;

create table student (sno varchar(20), sname varchar(20), ssex char(10), sage int, sdept varchar(20))ENGINE = INNODB DEFAULT charset = utf8;

insert into student values

(“9512101″,”李勇”,”男”,19,”計算機(jī)系”),

(“9512102″,”劉晨”,”男”,20,”計算機(jī)系”),

(“9512103″,”王敏”,”女”,20,”計算機(jī)系”),

(“9512103″,”王敏”,”女”,20,”計算機(jī)系”),

(“9521101″,”張立”,”男”,22,”信息系”),

(“9521102″,”吳賓”,”女”,21,”信息系”),

(“9521103″,”張海”,”男”,20,”信息系”),

(“9531101″,”錢小力”,”女”,18,”數(shù)學(xué)系”),

(“9531102″,”王大力”,”男”,19,”數(shù)學(xué)系”);

insert into course values

(“c01″,”計算機(jī)文化學(xué)”,70),(“c02″,”VB”,90),

(“c03″,”計算機(jī)網(wǎng)絡(luò)”,80),(“c04″,”數(shù)據(jù)庫基礎(chǔ)”,108),

(“c05″,”高等數(shù)學(xué)”,180),(“c06″,”數(shù)據(jù)結(jié)構(gòu)”,72);

insert into sc values

(“9512101″,”c01”,90),

(“9512101″,”c02”,86),

(“9512101″,”c06”,null),

(“9512102″,”c02”,78),

(“9512102″,”c04”,66),

(“9521102″,”c01”,82),

(“9521102″,”c02”,75),

(“9521102″,”c04”,92),

(“9521102″,”c05”,50),

(“9521103″,”c02”,68),

(“9521103″,”c06”,null),

(“9531101″,”c01”,80),

(“9531101″,”c05”,95),

(“9531102″,”c05”,85);

1) 查詢哪些學(xué)生的年齡相同,要求列出年齡相同的學(xué)生的姓名和年齡。

2) 分別查詢信息系和計算機(jī)系的學(xué)生的姓名、性別、修課名稱、修課成績,

a)并要求將這兩個查詢結(jié)果合并成一個結(jié)果集,

b)并以系名、姓名、性別、修課名稱、修課成績的順序顯示各列。

3) 將計算機(jī)系成績高于 80 分的學(xué)生的修課情況插入到另一張表中,分兩種情況實(shí)現(xiàn):

a) 在插入數(shù)據(jù)過程中建表。

b)先建一個新表,然后再插入數(shù)據(jù)

#1) 查詢哪些學(xué)生的年齡相同,要求列出年齡相同的學(xué)生的姓名和年齡。

SELECT * FROM student WHERE sno NOT IN(

SELECT sno FROM student GROUP BY sage HAVING COUNT(*) = 1)

ORDER BY sage;

#2) 分別查詢信息系和計算機(jī)系的學(xué)生的姓名、性別、修課名稱、修課成績,

SELECT sname,sage,cname,grade FROM student LEFT JOIN sc ON sc.sno = student.sno

LEFT JOIN course ON course.cno = sc.cno WHERE sdept = “信息系”;

SELECT sname,sage,cname,grade FROM student LEFT JOIN sc ON sc.sno = student.sno

LEFT JOIN course ON course.cno = sc.cno WHERE sdept = “計算機(jī)系”;

#a)并要求將這兩個查詢結(jié)果合并成一個結(jié)果集,

SELECT sname,sage,cname,grade FROM student LEFT JOIN sc ON sc.sno = student.sno

LEFT JOIN course ON course.cno = sc.cno WHERE sdept IN (“信息系”,”計算機(jī)系”);

#b)并以系名、姓名、性別、修課名稱、修課成績的順序顯示各列。

SELECT sdept,sname,sage,cname,grade FROM student LEFT JOIN sc ON sc.sno = student.sno

LEFT JOIN course ON course.cno = sc.cno WHERE sdept IN (“信息系”,”計算機(jī)系”) ORDER BY sdept;

#3) 將計算機(jī)系成績高于 80 分的學(xué)生的修課情況插入到另一張表中,分兩種情況實(shí)現(xiàn):

INSERT INTO newStudent SELECT * FROM student;

#a) 在插入數(shù)據(jù)過程中建表。

CREATE TABLE studentInfo1 AS SELECT sname,sage,cname,grade FROM student INNER JOIN sc ON student.sno = sc.sno

INNER JOIN course ON sc.cno = course.cno WHERE sdept = “計算機(jī)系” AND grade > 80;

#b) 先建一個新表,然后再插入數(shù)據(jù)

CREATE TABLE studentInfo (sname VARCHAR(20), sage INT, cname VARCHAR(20),grade INT)ENGINE = INNODB DEFAULT charset = utf8;

INSERT INTO studentInfo

SELECT sname,sage,cname,grade FROM student INNER JOIN sc ON student.sno = sc.sno

INNER JOIN course ON sc.cno = course.cno WHERE sdept = “計算機(jī)系” AND grade > 80;

能力有限,出現(xiàn)錯誤希望可以指出

完結(jié)

總結(jié)

以上是生活随笔為你收集整理的mysql查姓名中既有a也有e的姓_mysql查询初级练习题(已更完)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。