素材:表名:worker-- 表中字段均為中文,比如部門號、工資、職工號、參加工作等
CREATE TABLE `worker` (`部門號` int(11) NOT NULL,`職工號` int(11) NOT NULL,`工作時間` date NOT NULL,`工資` float(8,2) NOT NULL,`政治面貌` varchar(10) NOT NULL DEFAULT '群眾',`姓名` varchar(20) NOT NULL,`出生日期` date NOT NULL,PRIMARY KEY (`職工號`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (101, 1001, '2015-5-4', 3500.00, '群眾', '張三', '1990-7-1');
INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (101, 1002, '2017-2-6', 3200.00, '團員', '李四', '1997-2-8');
INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1003, '2011-1-4', 8500.00, '黨員', '王亮', '1983-6-8');
INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1004, '2016-10-10', 5500.00, '群眾', '趙六', '1994-9-5');
INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1005, '2014-4-1', 4800.00, '黨員', '錢七', '1992-12-30');
INSERT INTO `worker` (`部門號`, `職工號`, `工作時間`, `工資`, `政治面貌`, `姓名`, `出生日期`) VALUES (102, 1006, '2017-5-5', 4500.00, '黨員', '孫八', '1996-9-2');
1、顯示所有職工的基本信息。
mysql> select * from worker;
+-----------+-----------+--------------+---------+--------------+--------+--------------+--------+
| 部門號 | 職工號 | 工作時間 | 工資 | 政治面貌 | 姓名 | 出生日期 | 性別 |
+-----------+-----------+--------------+---------+--------------+--------+--------------+--------+
| 101 | 1001 | 2015-05-04 | 3500.00 | 群眾 | 張三 | 1990-07-01 | 男 |
| 101 | 1002 | 2017-02-06 | 3200.00 | 團員 | 李四 | 1997-02-08 | 男 |
| 102 | 1003 | 2011-01-04 | 8500.00 | 黨員 | 王亮 | 1983-06-08 | 女 |
| 102 | 1004 | 2016-10-10 | 5500.00 | 群眾 | 趙六 | 1994-09-05 | 女 |
| 102 | 1005 | 2014-04-01 | 4800.00 | 黨員 | 錢七 | 1992-12-30 | 女 |
| 102 | 1006 | 2017-05-05 | 4500.00 | 黨員 | 孫八 | 1996-09-02 | 女 |
| 103 | 1007 | 2011-02-12 | 3000.00 | 團員 | 劉六 | 1992-08-13 | 男 |
| 103 | 1008 | 2016-08-13 | 3800.00 | 群眾 | 王虹 | 1992-08-13 | 女 |
+-----------+-----------+--------------+---------+--------------+--------+--------------+--------+
8 rows in set (0.00 sec)
2、查詢所有職工所屬部門的部門號,不顯示重復的部門號。
mysql> select distinct 部門號-> from worker;
+-----------+
| 部門號 |
+-----------+
| 101 |
| 102 |
| 103 |
+-----------+
3 rows in set (0.01 sec)
3、求出所有職工的人數。
mysql> select count(姓名) from worker;
+---------------+
| count(姓名) |
+---------------+
| 8 |
+---------------+
1 row in set (0.03 sec)
4、列出最高工和最低工資。
mysql> select max(工資) from worker;
+-------------+
| max(工資) |
+-------------+
| 8500.00 |
+-------------+
1 row in set (0.01 sec)mysql> select min(工資) from worker;
+-------------+
| min(工資) |
+-------------+
| 3000.00 |
+-------------+
1 row in set (0.00 sec)
5、列出職工的平均工資和總工資。
mysql> select avg(工資) from worker;
+-------------+
| avg(工資) |
+-------------+
| 4600.000000 |
+-------------+
1 row in set (0.00 sec)mysql> select sum(工資) from worker;
+-------------+
| sum(工資) |
+-------------+
| 36800.00 |
+-------------+
1 row in set (0.00 sec)
6、創建一個只有職工號、姓名和參加工作的新表,名為工作日期表。
7、顯示所有女職工的年齡。
8、列出所有姓劉的職工的職工號、姓名和出生日期。
9、列出1996年以前出生的職工的姓名、參加工作日期。
10、列出工資在3500-5000之間的所有職工姓名。
11、列出所有劉姓和王姓的職工姓名。
12、列出所有部門號為102和103的職工號、姓名、黨員否。
13、將職工表worker中的職工按出生的先后順序排序。
14、顯示工資最高的前3名職工的職工號和姓名。
15、求出各部門黨員的人數。
16、統計各部門的工資和平均工資
17、列出總人數大于4的部門號和總人數。
常見命令:
1.查看數據庫
mysql> show databases;
2.進入數據庫
mysql> use db_classes;
3.查看表
mysql> show tables;
4.展示表結構
mysql> desc worker;
5.展示表詳情
mysql> select * from worker;
6.添加一列
mysql> alter table worker add 性別 varchar(10);
7.修改約束條件
mysql> alter table worker modify 性別 varchar(10) check(性別 in ("男","女"));
8.添加新的性別數據
mysql> update worker set 性別="男" where 部門號="101";
mysql> update worker set 性別="女" where 部門號="102";
9.添加數據
mysql> insert into worker values(103,1008,"2016-08-13",3800.00,"群眾","王虹","1992-08-13","女");
mysql> insert into worker values(103,1007,"2011-02-12",3000.00,"團員","劉六","1992-08-13","男");