MySQL查询数据案例
1.单表查询:
1.创建表
CREATE TABLE worker(did INT(11) NOT NULL COMMENT '部门号',uid INT(11) NOT NULL PRIMARY KEY COMMENT '职工号',work_time DATE NOT NULL COMMENT '工作时间',salary FLOAT(8,2) NOT NULL COMMENT '工资',outlook VARCHAR(10) NOT NULL DEFAULT '群众' COMMENT '政治面貌',NAME VARCHAR(20) NOT NULL,birthday DATE NOT NULL
)ENGINE=InnDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
2.添加数据
INSERT INTO worker VALUES (101, 1001, '2015-5-4', 3500.00, '群众', '张三', '1990-7-1'),(101, 1002, '2017-2-6', 3200.00, '团员', '李四', '1997-2-8'),(102, 1003, '2011-1-4', 8500.00, '党员', '王亮', '1983-6-8'),(102, 1004, '2016-10-10', 5500.00, '群众', '赵六', '1994-9-5'),(102, 1005, '2014-4-1', 4800.00, '党员', '钱七', '1992-12-30'),(102, 1006, '2017-5-5', 4500.00, '党员', '孙八', '1996-9-2');
3.修改数据
ALTER TABLE worker ADD sex INT(1) DEFAULT 1 COMMENT '1:男,2:女';
UPDATE worker SET sex=0 WHERE NAME='李四' OR NAME='赵六' OR NAME='孙八';
ALTER TABLE worker ADD age INT(3) DEFAULT 18 COMMENT '年龄';
UPDATE worker SET age=25 WHERE NAME='李四' OR NAME='王亮';
UPDATE worker SET age=30 WHERE NAME='孙八' OR NAME='赵六';
4.查询数据
1.显示所有职工的基本信息。
SELECT * FROM worker;
2.查询所有职工所属部门的部门号,不显示重复的部门号。
SELECT DISTINCT did FROM worker;
3.求出所有职工的人数。
SELECT COUNT(uid) FROM worker;
4.列出最高工和最低工资。
SELECT MAX(salary),MIN(salary) FROM worker;
5.列出职工的平均工资和总工资。
SELECT SUM(salary),AVG(salary) FROM worker;
6.创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。
CREATE TABLE work_jtime SELECT uid,NAME,work_time FROM worker;
7.显示所有女职工的年龄。
SELECT age FROM worker;
8.列出所有姓刘的职工的职工号、姓名和出生日期。
SELECT uid,NAME,birthday FROM worker WHERE NAME LIKE '刘%';
9.列出1960年以前出生的职工的姓名、参加工作日期。
SELECT NAME,work_time FROM worker WHERE work_time > '1960-00-00';
10.列出工资在1000-2000之间的所有职工姓名。
SELECT NAME FROM worker WHERE FLOOR(salary) BETWEEN 1000 AND 2000;
11.列出所有陈姓和李姓的职工姓名。
SELECT NAME FROM worker WHERE NAME LIKE '刘%' OR NAME LIKE '李%';
12.列出所有部门号为2和3的职工号、姓名、党员否。
SELECT uid,NAME,outlook FROM worker WHERE did=2 OR did=3;
13.将职工表worker中的职工按出生的先后顺序排序。
SELECT * FROM worker ORDER BY birthday ASC;
14.显示工资最高的前3名职工的职工号和姓名。
SELECT uid,NAME FROM worker ORDER BY salary DESC LIMIT 0,3;
15.求出各部门党员的人数。
SELECT COUNT(*) FROM worker WHERE outlook='党员';
16.统计各部门的工资和平均工资
SELECT COUNT(*),AVG(salary) FROM worker GROUP BY did;
17.列出总人数大于4的部门号和总人数。
SELECT did,COUNT(*) FROM worker GROUP BY did HAVING COUNT(*)>4;
2.多表查询:
1.创建表
CREATE TABLE student (id INT(10) NOT NULL PRIMARY KEY COMMENT '学生ID',NAME VARCHAR(20) NOT NULL COMMENT '学生姓名',sex VARCHAR(4) COMMENT '学生性别',birth YEAR COMMENT '学生生日',department VARCHAR(20) COMMENT '学生部门',address VARCHAR(50) COMMENT '学生地址'
);
CREATE TABLE score (id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '课程ID',stu_id INT(10) NOT NULL COMMENT '学生ID',c_name VARCHAR(20) COMMENT '课程名',grade INT(10) COMMENT '学生成绩'
);
2.插入数据
INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区'),( 902,'张老二', '男',1986,'中文系', '北京市昌平区'),( 903,'张三', '女',1990,'中文系', '湖南省永州市'),( 904,'李四', '男',1990,'英语系', '辽宁省阜新市'),( 905,'王五', '女',1991,'英语系', '福建省厦门市'),( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
INSERT INTO score VALUES(NULL,901, '计算机',98),(NULL,901, '英语', 80),(NULL,902, '计算机',65),(NULL,902, '中文',88),(NULL,903, '中文',95),(NULL,904, '计算机',70),(NULL,904, '英语',92),(NULL,905, '英语',94),(NULL,906, '计算机',90),(NULL,906, '英语',85);
SELECT *FROM student;
SELECT * FROM student LIMIT 1,3;
SELECT id,NAME,department FROM student;
SELECT * FROM student WHERE department='计算机系' OR department='英语系';
SELECT * FROM student WHERE YEAR(NOW()-birth)>=18 AND YEAR(NOW()-birth)<=22;
SELECT department,COUNT(id) FROM student GROUP BY department;
SELECT c_name,MAX(grade) FROM score GROUP BY id;
SELECT c_name,grade FROM student,score WHERE student.name='李四' AND student.id=score.stu_id;
SELECT student.*,score.c_name,score.grade FROM student LEFT JOIN score ON student.id=score.stu_id;
SELECT student.*,SUM(grade) FROM student LEFT JOIN score ON student.id=score.stu_id GROUP BY student.id;
SELECT c_name,AVG(grade) FROM score GROUP BY c_name;
SELECT student.* FROM student,score WHERE student.id=score.stu_id AND score.grade<95;
SELECT student.* FROM student,score AS s1,score AS s2 WHERE student.id=s1.stu_id AND student.id=s2.stu_id AND s1.c_name='英语' AND s2.c_name='计算机';
SELECT grade FROM score WHERE c_name='计算机' ORDER BY grade DESC;
SELECT id FROM student UNION SELECT stu_id FROM score;
SELECT student.name,student.department,score.c_name,score.grade FROM student,score WHERE student.id=score.stu_id AND student.name LIKE'张%' OR student.name LIKE '王%';
SELECT student.name,student.department,score.c_name,score.grade FROM student,score WHERE student.id=score.stu_id AND student.address LIKE '湖南%';
MySQL查询数据案例相关推荐
- mysql 查询数据 程序_MySQL 查询数据
MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MyS ...
- MySQL 查询数据
MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MyS ...
- mysql查询结果作为附件_python3+mysql查询数据并通过邮件群发excel附件
python3+mysql查询数据并通过邮件群发excel附件 来源:中文源码网 浏览: 次 日期:2018年9月2日 python3+mysql查询数据并通过邮件群发excel附件 本文 ...
- MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...
- mysql查询数据的总记录数
mysql查询数据的总记录数 领导让获取数据库中的所有记录总数,网上查了一会,看到了很多都是不能执行,我这小性子安耐不住了,开始暴怒,最后的最后看下来应该缺少了一个关键字,还自以为是的想不知道是不是m ...
- MySQL查询数据后加上百分号%
MySQL查询数据后加上百分号% CONCAT(字段, '% ') mysql数字格式化千分号的问题,即每三位一个逗号 SELECT FORMAT('字段',2); mysql四舍五入的问题 roun ...
- MySQL查询数据(超详细)
MySQL查询数据(超详细) 一.简单查询语句 select * from 表名 条件查询语句; 二.多表查询 多张表有同名字段出现在select语句中,同名字段必须带上 "表名 . 字段名 ...
- MYSQL 查询数据排序数据和分组数据
在mysql查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子.1,数据的排序 使用 ORDER BYselect * from where id ...
- 使用Connector / Python连接MySQL/查询数据
使用Connector / Python连接MySQL connect()构造函数创建到MySQL服务器的连接并返回一个 MySQLConnection对象 在python中有以下几种方法可以连接到M ...
最新文章
- 能在xcode5中开发基于IOS7sdk的应用程序兼容ios4.3之后的系统吗?
- 深入理解 Java 内存模型 JMM
- StartService返回2的解决方法
- 查看凭证更改记录的三种方式
- 信号量CSemaphore的使用
- Unity游戏开发——Excel数据读取到游戏中
- Usage of #pragma
- strel函数c语言写法,全国计算机等级考试二级C语言题型总结(二)——选择循环结构程序设计部分(5篇范文)...
- 高中信息技术python及答案_(完整)高中信息技术《Python语言》模块试卷
- D365几个功能开发思路
- 关于flask入门教程-ajax+echarts实现矩形树图
- 第六章 第一节 文本控件
- input文本框--去首尾空格
- MUSDB18-HQ音乐分轨训练集和MUSDB调用方法
- 十年前的AlexNet,今天的NeurIPS 2022时间检验奖
- 通俗易懂聊springMVC中的handler是什么
- Arista创始人以VMware NSX的“开放框架”为目标瞄准思科
- ai智能时代 设计师的出路_适用于网页设计师的人工智能工具
- 通过python分析微信好友数据
- Java筑基——反射(1):基本类周边信息获取