mysql基础操作(二)
1.插入记录
insert into tablename(field1,field2,....fieldn) values(value1,value2,......value);
例:
mysql> insert into emp(ename,hiredate,sal,deptno) values('zzx1','2000-01-01','2000',1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into emp values('lisa','2003-02-01','3000',2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into emp(ename,sal) values('dony',1000);
Query OK, 1 row affected (0.01 sec)
插入多条记录:
insert into tablename (field1,field2,...,fieldn)
values
(record1_value1,record1_value2,...,record1_valuesn),
(record2_value1,record2_value2,...record2_valuesn),
....
(recordn_value1,recordn_value2,....recordn_valuesn);
例:
mysql> insert into dept values(5,'dept5'),(6,'dept6');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
2.更新记录
update tablename set field1=value1,field2=value2,....fieldn=valuen[where condition]
例:
mysql> update emp set sal=4000 where ename='lisa';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
更新多个表中数据:
update t1,t2,...tn set t1.field1=expr1,tn.fieldn=expn [where condition]
例:
mysql> update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 5 Changed: 3 Warnings: 0
注意:
多表更新的语法更多地用在了根据一个表的字段来动态地更新另外一个表的字段。
3删除记录
delete from tablename [where condition]
例:
mysql> delete from emp where ename='yan';
Query OK, 1 row affected (0.00 sec)
删除多表记录:
delete t1,t2,...tn from t1,t2,..,tn[where condition]
例:
mysql> delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=2;
Query OK, 2 rows affected (0.00 sec)
注意:
不管是单表还是多表,不加where条件将会把表的所有记录删除,所以操作时一定要小心。
4.查询记录
select * from tablename [ where condition]
例:
mysql> select * from emp;
1.查询不重复记录:
可以用关键字:distinct
例:
mysql> select distinct deptno from emp;
+--------+
| deptno |
+--------+
| 1 |
| 4 |
+--------+
2 rows in set (0.00 sec)
2.条件查询:
where关键字
例:
mysql> select * from emp where deptno=1;
+--------+------------+--------+--------+
| ename | hiredate | sal | deptno |
+--------+------------+--------+--------+
| zzx | 2000-01-01 | 100.00 | 1 |
| bjguan | 2004-04-02 | 100.00 | 1 |
+--------+------------+--------+--------+
2 rows in set (0.00 sec)
where后面的条件是一个字段的=比较。除了=外,还可以使用>、<、>=、<=、!=等比较运算符;多个条件之间可以使用or、and等。
例:
mysql> select * from emp where deptno=1 and sal<200;
+-------+------------+--------+--------+
| ename | hiredate | sal | deptno |
+-------+------------+--------+--------+
| zzx | 2000-01-01 | 100.00 | 1 |
+-------+------------+--------+--------+
1 row in set (0.00 sec)
3.排序和限制:
关键字:order by
select * from tablename [where condotion] [order by field1 [desc|asc],filed2[desc|asc],...,fieldn[desc|asc]]
其中,desc和asc是排序顺序关键字,desc表示按照字段进行降序排列,asc则表示升序排列,如果不写此关键字默认是升序排列。
例:
mysql> select * from emp order by sal;
+--------+------------+---------+--------+
| ename | hiredate | sal | deptno |
+--------+------------+---------+--------+
| zzx | 2000-01-01 | 100.00 | 1 |
| bjguan | 2004-04-02 | 700.00 | 1 |
| dony | 2005-02-05 | 2000.00 | 4 |
+--------+------------+---------+--------+
3 rows in set (0.00 sec)
mysql> select * from emp order by deptno ,sal desc;
+--------+------------+---------+--------+
| ename | hiredate | sal | deptno |
+--------+------------+---------+--------+
| bjguan | 2004-04-02 | 700.00 | 1 |
| zzx | 2000-01-01 | 100.00 | 1 |
| dony | 2005-02-05 | 2000.00 | 4 |
+--------+------------+---------+--------+
3 rows in set (0.00 sec)
limit关键字:
只显示一部分,而不是全部。
例:
mysql> select * from emp order by sal limit 2;
+--------+------------+--------+--------+
| ename | hiredate | sal | deptno |
+--------+------------+--------+--------+
| zzx | 2000-01-01 | 100.00 | 1 |
| bjguan | 2004-04-02 | 700.00 | 1 |
+--------+------------+--------+--------+
2 rows in set (0.00 sec)
注意:
limit经常和order by 一起配合使用来进行记录的分页显示。
4.聚合
语法:
select [field1,field2,...fieldn]fun_name from tablename [where where_contition] [group by field1,field2,...fieldn [with rollup]] [having where_contition]
参数说明:
- fun_name:表示要做的聚合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
- group by:关键字表示要进行分类聚合的字段。
- with rollup:是可选语法,表明是否对分类聚合后的结果进行再汇总。
- having:关键字表示对分类后的结果再进行条件的过滤。
注意:
having和where的区别在于,having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小 ,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。
例:
mysql> select count(*) from emp;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
mysql> select deptno,count(1) from emp group by deptno;
+--------+----------+
| deptno | count(1) |
+--------+----------+
| 1 | 2 |
| 4 | 1 |
+--------+----------+
2 rows in set (0.00 sec)
mysql> select deptno,count(1) from emp group by deptno with rollup;
+--------+----------+
| deptno | count(1) |
+--------+----------+
| 1 | 2 |
| 4 | 1 |
| NULL | 3 |
+--------+----------+
3 rows in set (0.00 sec)
mysql> select deptno,count(1) from emp group by deptno having count(1) > 1;
+--------+----------+
| deptno | count(1) |
+--------+----------+
| 1 | 2 |
+--------+----------+
1 row in set (0.00 sec)
5.表连接
6.子查询
用于子查询的关键字注意包括in、not in、=、!=、exists、not exists等。
例:
mysql> select * from emp where deptno in (select deptno from dept);
+--------+------------+---------+--------+
| ename | hiredate | sal | deptno |
+--------+------------+---------+--------+
| zzx | 2000-01-01 | 100.00 | 1 |
| bjguan | 2004-04-02 | 700.00 | 1 |
| hao | 2006-06-06 | 1000.00 | 5 |
+--------+------------+---------+--------+
3 rows in set (0.00 sec)
7.记录联合
将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,需要关键字union和union all
语法:
select * from t1
union | union all
...
select * from t2
union | union all
select * from tn;
union和union all 主要区别是union all 是把结果集直接合并在一起,而union是将union all 后的结果进行一次distinct,去除重复记录后的结果。
例:
mysql> select deptno from emp
-> union all
-> select deptno from dept;
+--------+
| deptno |
+--------+
| 1 |
| 4 |
| 1 |
| 5 |
| 1 |
| 5 |
+--------+
6 rows in set (0.00 sec)
mysql> select deptno from emp
-> union
-> select deptno from dept;
+--------+
| deptno |
+--------+
| 1 |
| 4 |
| 5 |
+--------+
3 rows in set (0.00 sec)
转载于:https://www.cnblogs.com/xiaopeng01/p/11053162.html
mysql基础操作(二)相关推荐
- mysql循环查询一个表中的数据并进行修改_JavaScript学习笔记(二十四)-- MYSQL基础操作...
MYSQL mysql 是一个数据库的名字 和 php 合作的比较好的数据库 之前我们说过一个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端 接下来就聊聊使用 php 操作数据库 M ...
- mysql 基础篇(二) 账号、权限管理
mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...
- MySQL基础总结(二)
MySQL基础总结(二) 文章目录 MySQL基础总结(二) 四.索引 7.MyISAM主键索引与辅助索引的结构 8.InnoDB主键索引与辅助索引的结构 **`主键索引`** **`辅助(非主键)索 ...
- mysql数据库优化课程---13、mysql基础操作
mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...
- 4.MySQL基础操作
4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握) 方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用) 方式三:通过编程语言(pyth ...
- MySQL基础(二)
MySQL基础(二) MySQL基础(一) 文章目录 MySQL基础(二) MySQL基础(一) 存储过程与函数 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代 ...
- Mysql 基础操作知识专题
目录 一.Mysql基础操作 1.1 mysql 表复制 1.2 mysql索引 1.3 mysql视图 1.4 mysql内置函数 1.5 mysql预处理语句 1.6 mysql事务处理 1.7 ...
- mysql基础操作和查询语句
MySQL基础 mysql基础操作操作 MySQL基础 相关术语 数据库操作 MySQL管理 启动及关闭 MySQL 用户设置 /etc/my.cnf 文件配置 管理MySQL的命令 连接MySQL ...
- 【简洁明了MySQL】MySQL基础操作之连接,创建和删除数据库
MYSQL基础操作之连接,创建和删除数据库 一.MySQL连接 1.方法一:客户端直接连接法(不推荐) 2. 方法二:使用命令行登录 3.两种不同的登陆状态 4.创建用户 二.创建数据库 1.crea ...
- PHP - PDO 之 mysql 基础操作
PHP - PDO 之 mysql 基础操作 <?php/* pdo 学习 */$dsn = 'mysql:host=localhost;dbname=cswl';//构建连接dsn$db = ...
最新文章
- Nginx-windows下nginx安装、配置与使用
- 支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP
- 局部放大_Origin教程|巧用ZOOM功能做数据对比和快速绘制局部放大图
- layui实现select下拉选择框组件(含代码、案例、截图)
- linux 2种循环,只以换行符分割,不以空格分割。
- R语言——决策树模型
- Rosetta Stone罗塞塔石碑学习语言Win+Mac最新v5.0.37完美破解版+全语言包
- MultiDock——专门为 macOS 设计的增强型 Dock
- 计算机与量子力学交叉,量子计算主要是基于量子力学的相干特征.PPT
- 【Laravel笔记】13. 模型的关联写入
- qml中Popup元素的 aboutToShow和 opened()的区别
- linux 手机 rom image,安卓手机刷机界面image 文件夹什么意思 里面的文件都是什么作用...
- 『Python学习笔记』Git的使用教程
- 车险杀手锏——高速大数据在车险定价中的应用
- SpringBoot整合Log4j2以及配置详解
- 微信机器人终端1.0未来的设想就是做成telegram一样强大的机器人群体集控终端
- 一般早餐店卖不了的包子、馒头是怎么处理的?
- 使用老毛桃制作U盘启动盘
- “不务正业”斗地主?AI青年查道琛想做“被人看到”的研究
- 手机您的浏览器不允许第三方_手机壁纸:我的世界不允许你的消失,不管结局是否完美...
热门文章
- java xml 画表格_用js+xml自动生成表格的东西
- C语言标准库<limits.h>
- android os苹果手机助手,深度系统V20(1003)内测招募:新增手机助手,支持安卓/iOS端...
- pillow api
- Numpy 数组操作
- oracle linux hugepage,LInux下为什么配置HugePages及配置步骤
- c语言指针章总结,c语言指针的学习心得
- 转:vSphere 7简介:混合云的功能和技术
- VMware NSX 6组件通信图
- 用vbs运行CMD不显示窗口的方法汇总