?
目錄
第一題
?第二題
?第三題
第一題
?
1.創(chuàng)建數(shù)據(jù)表pet,并對表進(jìn)行插入、更新與刪除操作,pet表結(jié)構(gòu)如表8.3所示。
(1)首先創(chuàng)建數(shù)據(jù)表pet,使用不同的方法將表8.4中的記錄插入到pet表中。
mysql> create table pet( name varchar(20) not null, owner varchar(20), species varchar(20) not null,
sex char(1) not null, birth year not null, death year);
Query OK, 0 rows affected (0.00 sec)mysql> desc pet;
+---------+-------------+------+-----+---------+-------+
| Field ? | Type ? ? ? ?| Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name ? ?| varchar(20) | NO ? | ? ? | NULL ? ?| ? ? ? |
| owner ? | varchar(20) | YES ?| ? ? | NULL ? ?| ? ? ? |
| species | varchar(20) | NO ? | ? ? | NULL ? ?| ? ? ? |
| sex ? ? | char(1) ? ? | NO ? | ? ? | NULL ? ?| ? ? ? |
| birth ? | year(4) ? ? | NO ? | ? ? | NULL ? ?| ? ? ? |
| death ? | year(4) ? ? | YES ?| ? ? | NULL ? ?| ? ? ? |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)插入數(shù)據(jù)
mysql> insert into pet values('Fluffy','Harold','cat','f',2003,2010);
Query OK, 1 row affected (0.00 sec)mysql> insert into pet values('Claws','Gwen','cat','m',2004,NULL);
Query OK, 1 row affected (0.00 sec)mysql> insert into pet values('Buffy','NULL','dog','f',2009,NULL);
Query OK, 1 row affected (0.00 sec)mysql> insert into pet values('Fang','Benny','dog','m',2000,NULL);
Query OK, 1 row affected (0.00 sec)mysql> insert into pet values('Bowser','Diane','dog','m',2003,2009);
Query OK, 1 row affected (0.00 sec)mysql> insert into pet values('Chirpy','NULL','bird','f',2008,NULL);
Query OK, 1 row affected (0.01 sec)mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name ? | owner ?| species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat ? ? | f ? | ?2003 | ?2010 |
| Claws ?| Gwen ? | cat ? ? | m ? | ?2004 | ?NULL |
| Buffy ?| NULL ? | dog ? ? | f ? | ?2009 | ?NULL |
| Fang ? | Benny ?| dog ? ? | m ? | ?2000 | ?NULL |
| Bowser | Diane ?| dog ? ? | m ? | ?2003 | ?2009 |
| Chirpy | NULL ? | bird ? ?| f ? | ?2008 | ?NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)
(2)使用UPDATE語句將名稱為Fang 的狗的主人改為Kevin。
mysql> update pet set owner='Kevin' where name='Fang';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 ?Changed: 1 ?Warnings: 0mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name ? | owner ?| species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat ? ? | f ? | ?2003 | ?2010 |
| Claws ?| Gwen ? | cat ? ? | m ? | ?2004 | ?NULL |
| Buffy ?| NULL ? | dog ? ? | f ? | ?2009 | ?NULL |
| Fang ? | Kevin ?| dog ? ? | m ? | ?2000 | ?NULL |
| Bowser | Diane ?| dog ? ? | m ? | ?2003 | ?2009 |
| Chirpy | NULL ? | bird ? ?| f ? | ?2008 | ?NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)
(3)將沒有主人的寵物的owner字段值都改為Duck。
mysql> update ?pet set owner='Duck' ?where ?owner='NULL';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 ?Changed: 2 ?Warnings: 0mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name ? | owner ?| species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat ? ? | f ? | ?2003 | ?2010 |
| Claws ?| Gwen ? | cat ? ? | m ? | ?2004 | ?NULL |
| Buffy ?| Duck ? | dog ? ? | f ? | ?2009 | ?NULL |
| Fang ? | Kevin ?| dog ? ? | m ? | ?2000 | ?NULL |
| Bowser | Diane ?| dog ? ? | m ? | ?2003 | ?2009 |
| Chirpy | Duck ? | bird ? ?| f ? | ?2008 | ?NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)
(4)刪除已經(jīng)死亡的寵物記錄。
mysql> delete from pet where death is not NULL;
Query OK, 2 rows affected (0.00 sec)mysql> select * from pet;
+--------+-------+---------+-----+-------+-------+
| name ? | owner | species | sex | birth | death |
+--------+-------+---------+-----+-------+-------+
| Claws ?| Gwen ?| cat ? ? | m ? | ?2004 | ?NULL |
| Buffy ?| Duck ?| dog ? ? | f ? | ?2009 | ?NULL |
| Fang ? | Kevin | dog ? ? | m ? | ?2000 | ?NULL |
| Chirpy | Duck ?| bird ? ?| f ? | ?2008 | ?NULL |
+--------+-------+---------+-----+-------+-------+
4 rows in set (0.00 sec)
(5)刪除所有表中的記錄。
mysql> delete from pet;
Query OK, 4 rows affected (0.00 sec)mysql> select * from pet;
Empty set (0.01 sec)
?
?第二題
?
?1.創(chuàng)建表:
mysql> create table employee( id int primary key auto_increment, name varchar(20), gender varchar(20), salary decimal(4,2));
Query OK, 0 rows affected (0.01 sec)mysql> desc employee;
+--------+--------------+------+-----+---------+----------------+
| Field ?| Type ? ? ? ? | Null | Key | Default | Extra ? ? ? ? ?|
+--------+--------------+------+-----+---------+----------------+
| id ? ? | int(11) ? ? ?| NO ? | PRI | NULL ? ?| auto_increment |
| name ? | varchar(20) ?| YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|
| gender | varchar(20) ?| YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|
| salary | decimal(6,2) | YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
2. 插入數(shù)據(jù)
mysql> insert into employee values(1,'張三','男',2000.00);
Query OK, 1 row affected (0.00 sec)mysql> insert into employee values(2,'李四','男',1000.00);
Query OK, 1 row affected (0.01 sec)mysql> insert into employee values(3,'王五','女',4000.00);
Query OK, 1 row affected (0.00 sec)mysql> select * from employee;
+----+--------+--------+---------+
| id | name ? | gender | salary ?|
+----+--------+--------+---------+
| ?1 | 張三 ? | 男 ? ? | 2000.00 |
| ?2 | 李四 ? | 男 ? ? | 1000.00 |
| ?3 | 王五 ? | 女 ? ? | 4000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)
?要求3.1 將所有員工薪水修改為5000元
mysql> update employee set salary =5000.00;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 ?Changed: 3 ?Warnings: 0mysql> select * from employee;
+----+--------+--------+---------+
| id | name ? | gender | salary ?|
+----+--------+--------+---------+
| ?1 | 張三 ? | 男 ? ? | 5000.00 |
| ?2 | 李四 ? | 男 ? ? | 5000.00 |
| ?3 | 王五 ? | 女 ? ? | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)
?? ?3.2將姓名為張三的員工薪水修改為3000元
mysql> update employee set salary =3000.00 where name='張三';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 ?Changed: 1 ?Warnings: 0mysql> select * from employee;
+----+--------+--------+---------+
| id | name ? | gender | salary ?|
+----+--------+--------+---------+
| ?1 | 張三 ? | 男 ? ? | 3000.00 |
| ?2 | 李四 ? | 男 ? ? | 5000.00 |
| ?3 | 王五 ? | 女 ? ? | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)
?? ?3.3將姓名為李四的員工薪水修改為4000元,gener改為女
mysql> update employee set salary =4000.00,gender='女' ?where name='李四';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 ?Changed: 1 ?Warnings: 0mysql> select * from employee;
+----+--------+--------+---------+
| id | name ? | gender | salary ?|
+----+--------+--------+---------+
| ?1 | 張三 ? | 男 ? ? | 3000.00 |
| ?2 | 李四 ? | 女 ? ? | 4000.00 |
| ?3 | 王五 ? | 女 ? ? | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)
?? ?3.4 將王五的薪水在原有基礎(chǔ)上增加1000元
mysql> update employee set salary =salary +1000.00 ?where name='王五';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 ?Changed: 1 ?Warnings: 0mysql> select * from employee;
+----+--------+--------+---------+
| id | name ? | gender | salary ?|
+----+--------+--------+---------+
| ?1 | 張三 ? | 男 ? ? | 3000.00 |
| ?2 | 李四 ? | 女 ? ? | 4000.00 |
| ?3 | 王五 ? | 女 ? ? | 6000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)
?第三題
創(chuàng)建表:
CREATE TABLE `emp` ?(
? `empno` int(4) NOT NULL,
? `ename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
? `job` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
? `mgr` int(4) NULL DEFAULT NULL,
? `hiredate` date NOT NULL,
? `sai` int(255) NOT NULL,
? `comm` int(255) NULL DEFAULT NULL,
? `deptno` int(2) NOT NULL,
? PRIMARY KEY (`empno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;插入數(shù)據(jù)
INSERT INTO `emp` VALUES (1001, '甘寧', '文員', 1013, '2000-12-17', 8000, NULL, 20);
INSERT INTO `emp` VALUES (1002, '黛綺絲', '銷售員', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO `emp` VALUES (1003, '殷天正', '銷售員', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO `emp` VALUES (1004, '劉備', '經(jīng)理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO `emp` VALUES (1005, '謝遜', '銷售員', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO `emp` VALUES (1006, '關(guān)羽', '經(jīng)理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO `emp` VALUES (1007, '張飛', '經(jīng)理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO `emp` VALUES (1008, '諸葛亮', '分析師', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1009, '曾阿牛', '董事長', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO `emp` VALUES (1010, '韋一笑', '銷售員', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO `emp` VALUES (1011, '周泰', '文員', 1006, '2007-05-23', 11000, NULL, 20);
INSERT INTO `emp` VALUES (1012, '程普', '文員', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO `emp` VALUES (1013, '龐統(tǒng)', '分析師', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1014, '黃蓋', '文員', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO `emp` VALUES (1015, '張三', '保潔員', 1001, '2013-05-01', 80000, 50000, 50);
?
1.查詢出部門編號為30的所有員工
mysql> select * from emp where deptno='30';
+-------+-----------+-----------+------+------------+-------+-------+--------+
| empno | ename ? ? | job ? ? ? | mgr ?| hiredate ? | sai ? | comm ?| deptno |
+-------+-----------+-----------+------+------------+-------+-------+--------+
| ?1002 | 黛綺絲 ? ?| 銷售員 ? ?| 1006 | 2001-02-20 | 16000 | ?3000 | ? ? 30 |
| ?1003 | 殷天正 ? ?| 銷售員 ? ?| 1006 | 2001-02-22 | 12500 | ?5000 | ? ? 30 |
| ?1005 | 謝遜 ? ? ?| 銷售員 ? ?| 1006 | 2001-09-28 | 12500 | 14000 | ? ? 30 |
| ?1006 | 關(guān)羽 ? ? ?| 經(jīng)理 ? ? ?| 1009 | 2001-05-01 | 28500 | ?NULL | ? ? 30 |
| ?1010 | 韋一笑 ? ?| 銷售員 ? ?| 1006 | 2001-09-08 | 15000 | ? ? 0 | ? ? 30 |
| ?1012 | 程普 ? ? ?| 文員 ? ? ?| 1006 | 2001-12-03 | ?9500 | ?NULL | ? ? 30 |
+-------+-----------+-----------+------+------------+-------+-------+--------+
6 rows in set (0.00 sec)
?-- 2. 所有銷售員的姓名、編號和部門編號。
-- 3. 找出獎金高于工資的員工。
-- 4. 找出獎金高于工資60%的員工。
-- 5. 找出部門編號為10中所有經(jīng)理,和部門編號為20中所有銷售員的詳細(xì)資料。
-- 6. 找出部門編號為10中所有經(jīng)理,部門編號為20中所有銷售員,還有即不是經(jīng)理又不是銷售員但其工資大或等于20000的所有員工詳細(xì)資料。
-- 7. 無獎金或獎金低于1000的員工。
-- 8. 查詢名字由三個字組成的員工。
-- 注意:一個漢字占三個字節(jié)?
-- 9.查詢2000年入職的員工。
-- 10. 查詢所有員工詳細(xì)信息,用編號升序排序
-- 11. 查詢所有員工詳細(xì)信息,用工資降序排序,如果工資相同使用入職日期升序排序
?文章來源地址http://www.zghlxwxcb.cn/news/detail-536639.html
-- 12.查詢每個部門的平均工資
?
-- 13.查詢每個部門的雇員數(shù)量
?
-- 14.查詢每種工作的最高工資、最低工資、人數(shù)
文章來源:http://www.zghlxwxcb.cn/news/detail-536639.html
?
到了這里,關(guān)于MySQL單表查詢練習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!