学习MySQL之单表操作(二)

##单表操作

##创建表
CREATE TABLE t_employee(
    empno INT(11),
    ename VARCHAR(20),
    job VARCHAR(40),
    MGR INT(11),
    Hiredate DATE DEFAULT ‘0000-00-00‘,
    sal DOUBLE(10,2),
    comm DOUBLE(10,2),
    deptno INT(11),
    UNIQUE INDEX uk_empno(empno)         ##使用唯一索引
);

##增
INSERT INTO t_employee VALUE(7369,‘SMITH‘,‘CLERK‘,7902,‘1981-03-12‘,800.00,NULL,20),
    (7499,‘ALLEN‘,‘SALESMAN‘,7698,‘1982-03-12‘,1600,300,30),
    (7521,‘WARD‘,‘SALESMAN‘,7698,‘1982-03-12‘,1250,500,30),
    (7566,‘JONES‘,‘MANAGER‘,7839,‘1981-03-12‘,2975,NULL,20),
    (7654,‘MARTIN‘,‘SALESMAN‘,7698,‘1981-03-12‘,1250,1400,30),
    (7698,‘BLAKE‘,‘MANAGER‘,7839,‘1981-03-12‘,3000,NULL,10),
    (7902,‘FORD‘,‘ANALYST‘,7566,NULL,3000,NULL,20),
    (7934,‘CLERK‘,‘SALESMAN‘,7782,‘1989-03-12‘,1300,NULL,10);
    (7938,‘SMILL‘,‘ANALYST‘,7722,‘1986-03-12‘,1300,100,40);

##删
DELETE FROM t_diary;
SELECT * FROM t_diary;

##改
UPDATE t_employee SET Hiredate=‘1985-3-12‘ WHERE empno=7902;
UPDATE t_employee SET comm=0.00 WHERE comm IS NULL;

##查
SELECT * FROM t_employee;

##查1:去除重复项
SELECT DISTINCT job FROM t_employee ;

##查2:统计
SELECT COUNT(*) AS COUNT FROM t_employee;

##查3:计算 (年薪)
SELECT empno,ename,(sal*12+comm) AS yearSal FROM t_employee;

##查4:设置格式显示,可拼接字符串,字段
SELECT  ename AS ‘雇员‘, CONCAT(‘年薪为‘,sal*12+comm) AS ‘年薪‘ FROM t_employee;

##查5:运用关键字 Like 模糊查询,通配符,条件符
SELECT * FROM t_employee WHERE ename LIKE ‘_a%‘;
SELECT * FROM t_employee WHERE ename NOT LIKE ‘_A%‘;
SELECT * FROM t_employee WHERE Hiredate BETWEEN ‘1900-1-1‘ AND ‘1981-3-12‘;

##查6:使用关键字 in 范围查询
SELECT * FROM t_employee WHERE empno IN (7499,7521,7902);
SELECT * FROM t_employee WHERE empno NOT IN (7499,7521,7902);

##查7:排序查询
SELECT * FROM t_employee ORDER BY empno ASC;        ##正序
SELECT * FROM t_employee ORDER BY sal DESC;        ##倒序
SELECT * FROM t_employee ORDER BY sal DESC,comm DESC;    ##多字段排序

##查8:限制查询结果的显示条数
/*可用于分页显示
*/
SELECT * FROM t_employee WHERE comm=0 LIMIT 2;         ##显示 < 查询结果
SELECT * FROM t_employee WHERE comm=0 LIMIT 10;        ##显示 > 查询结果

##查9:指定查询结果显示的初始位置及结束位置
SELECT * FROM t_employee ORDER BY sal ASC,comm ASC;
SELECT * FROM t_employee ORDER BY sal ASC,comm ASC LIMIT 1,5;    ##从第2条开始,显示5条

##查10:统计函数查询
##如果 被操作的表是空,count返回0,其他函数返回 NULL

SELECT COUNT(empno) FROM t_employee;     ##COUNT():统计记录条数
SELECT SUM(sal) FROM t_employee;    ##SUM():统计字段总和
SELECT AVG(sal) FROM t_employee;    ##AVG():统计字段平均值
SELECT MAX(sal) FROM t_employee;    ##MAX():统计字段最大值
SELECT MIN(sal) FROM t_employee;    ##MIN():统计字段最小值

##查11:(单列,多列)分组数据查询(与统计函数一起使用才有价值)

SELECT * FROM t_employee GROUP BY deptno;    ##单列分组

SELECT job FROM t_employee GROUP BY job;    ##与去除重复项功能相似

SELECT deptno,GROUP_CONCAT(ename) AS enames,COUNT(ename) AS number
    FROM t_employee GROUP BY deptno;    ##单列分组与统计总和

SELECT deptno,AVG(sal) AS avgsal,GROUP_CONCAT(ename) AS enmaes,COUNT(ename) AS number
    FROM t_employee GROUP BY deptno;    ##单列分组、统计总和与平均数

SELECT deptno,Hiredate,COUNT(ename) AS enames,GROUP_CONCAT(ename) number
    FROM t_employee GROUP BY deptno,Hiredate;    ##多列分组查询与统计

##查12:使用 HAVING 字句限定分组查询

SELECT deptno,AVG(sal) AS avgsal,GROUP_CONCAT(ename) AS enmaes,COUNT(ename) AS number
    FROM t_employee GROUP BY deptno HAVING AVG(sal)>2000;    ##单列分组、统计总和,与平均工资>2000的组

所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用。

时间: 2024-10-26 09:34:23

学习MySQL之单表操作(二)的相关文章

MYSQL数据库学习----MYSQL数据库、表操作和引擎区别

MYSQL数据库的操作 一:查看MYSQL中所有的数据库 SHOW DATABASES; 二:创建数据库 CRETAE DATABASE 数据库名称; 三:删除数据库 DROP DATABASE 数据库名称; 四:查看数据库支持的存储引擎 SHOW ENGINES; 四:连接MYSQL数据库 USE 数据库名称; MYSQL数据库中表的操作 一:查看数据库中的所有表格 SHOW TABLES: 二:查看表格的结构 DESC 表名称;(基本结构): 或 SHOW CREATE TABLE 表名称;

学习MySQL之多表操作(三)

##多表查询 ##使用数据库 mytest USE mytest; ##删除,并重新创建表 t_dept DROP TABLE t_dept; CREATE TABLE t_dept ( deptno INT(11) NOT NULL, dname VARCHAR(20) NOT NULL, loc VARCHAR(40), UNIQUE INDEX uk_deptno(deptno) ) ##创建测试表 t_a CREATE TABLE t_A ( aId INT (11) AUTO_INCR

Hibernate学习笔记--------1.单表操作

一.hibernate基本开发步骤 1.引入包,官网下载的包,目录\lib\required下的jar都加进去,这里使用的是 hibernate-release-5.2.1.Final 2.编写配置文件hibernate.cfg.xml,可用hibernate Tools自动生成 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3

1030 MySQL单表操作和多表操作

单表操作 分组 分组指的是,将所有的记录按照某个相同字段进行归类 group by 用法: select 聚合函数,选取的字段 from employee group by 选取的字段; 加别名: select 聚合函数 as 别名,选取的字段 from employee group by 选取的字段; 以性别分组为例: select count(id),gender from employee group by gender; group by:是分组的关键词 group by 必须和 聚合函

跟王老师学MySQL:单表查询

跟王老师学MySQL:单表查询 主讲教师:王少华   QQ群号:483773664 学习内容 查询所有字段 查询指定字段 查询指定记录 带in关键字的查询 带between and关键字的查询 带like关键字的查询 查询空值 带and的多条件查询 带or的多条件查询 查询不重复记录 对查询结果进行排序 单表查询是指从一张表中查询所需要的数据.查询数据时,可以从一张表中查询数据,也可以从多张表中同时查询数据.两者的查询方式上有一定的区别.因为单表查询只在一张表上进行操作,所以查询比较简单. 一.

Django模型层之单表操作

Django模型层之单表操作 一 .ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图一^①^ 但是直接编写原生sql语句会存在两方面的问题,严

Django开发:(3.1)ORM:单表操作

MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是"对象-关系-映射"的简称. Mysql中的表对应python中的类,表的字段对应类的属性,表的记录对应类的实例化的对象 单表操作 创建表 1. 创建模型 创建名为app01的app,在app01下的models.py中创建模型: from dj

八:SQL之DQL数据查询语言单表操作

前言: DQL数据库查询语言是我们在开发中最常使用的SQL,这一章总结了单表操作部分的常用查询方式 主要操作有:查询所有字段.查询指定字段.查询指定记录.带IN的关键字查询,范围查询,陪查询.查询空值 带AND的多条件查询.带OR的多条件查询,关键字DISTINCT,查询结果排序,分组查询.分页查询等 准备好数据测试表 1 mysql> select * from student; 2 +------+----------+-------+----------+-------------+ 3

17-2 orm单表操作和多表操作

参考:https://www.cnblogs.com/liwenzhou/p/8660826.html 一  ORM单表操作 1 增删改查 1 1. 查询 2 1. 查所有 3 models.Publisher.objects.all() 4 2. 查某个具体的记录 5 models.Publisher.objects.get(id=1) --> 注意查询条件不成立就报错 6 2. 删除一条记录 7 models.Publisher.objects.get(id=1).delete() 8 3.