前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL表查询操作实例

MySQL表查询操作实例

作者头像
星哥玩云
发布2022-08-17 15:23:30
4.5K0
发布2022-08-17 15:23:30
举报
文章被收录于专栏:开源部署

在安装完数据库后,不管是Windows 还是Linux平台,  MySQL的sql命令都大同小异,相关命令都是相同的,每个命令结束后 都以  ;  结尾,注意在Windows平台中表名是不区分大小写的,在Linux中是区分的。 例如tl1 与TL1在Linux中是区分的。 为了一致所有的数据库名,表名,列名都采用小写。为了方便简单使用了sqllog客户端工具学习。

  在安装完数据库后会出现的几个系统数据库:

  Mysql 库: 该数据库存储了系统的用户权限信息

  In_formation_schema库: 该数据库存储了一些数据库对象信息。比如用户表信息,列信息,权限信息,字符集信息,分区信息等。

  Test库: 系统自动创建的测试数据库,任何用户都可以使用。

  1. 切换数据库

USE test;

  2. 查看该数据库下的表

SHOW TABLES;

  3.删除数据库

DROP DATABASE test1;

  4.创建表

  基本语法是CREATE TABLE  tableanme (column_name column_type CONSTRAINTS)

CREATE TABLE emp (ename VARCHAR(10), hiredate DATE, sal DECIMAL(10,2), deptno INT(2));

  5.删除表

DROP TABLE emp;

  6.修改表

--  修改表类型, 将emp表ename字段从varchar(10)改为varchar(20) ALTER TABLE emp MODIFY ename VARCHAR(20); -- 再查看表架构 DESC emp;

--  增加表字段 ALTER TABLE emp ADD COLUMN age  INT(20); -- 再查看表架构 DESC emp;

--  删除表字段 ALTER TABLE emp DROP COLUMN age; DESC emp;

--  字段改名 ALTER TABLE emp CHANGE deptno deptno1 INT(2); DESC emp;

--  修改字段的排列顺序,添加字段birth 放在ename下面 ALTER TABLE emp ADD birth DATE AFTER ename; DESC emp;

--  修改sal字段排序,放在最前面 ALTER TABLE emp MODIFY sal DECIMAL(10,2) FIRST; DESC  emp;

  7.修改表名

ALTER TABLE emp RENAME emp1;

  8. 插入数据

 INSERT INTO emp (ename,sal)VALUES('dony',1000); -- 插入多条  INSERT INTO emp (ename,sal) VALUES('dony01',1000),('dony02',1000);

  9.更新 

UPDATE emp SET sal=4000 WHERE ename='dony';  -- 更新两个表 UPDATE emp,emp1 SET emp.sal=3000, emp1.sal=3000 WHERE emp.ename=emp1.ename 

  10.删除数据

DELETE FROM emp WHERE emp.ename='dony02';

  11. 查询

-- 查询不重复记录 DISTINCT SELECT DISTINCT * FROM emp; -- 查询条件(比较运算符可以是=,>,<, >=,<=,!=) SELECT * FROM emp WHERE sal >=3000; -- 排序 ordery desc|asc SELECT * FROM emp  ORDER BY sal DESC; -- 查询前1条 SELECT * FROM emp ORDER BY sal LIMIT 1; -- 查询前3条,从第2条开始 SELECT * FROM emp ORDER BY sal LIMIT 1,3;

   12. 聚合

  常用的聚合函数sum(),count(*),max(),min()  group by分类聚合, having 聚合后的结果进行过滤, with rollup 分类聚合后的结果进行汇总

-- 查询GROUP BY SELECT ename,COUNT(1) FROM emp GROUP BY  sal ; -- with rollup SELECT ename,COUNT(1) FROM emp GROUP BY  sal WITH ROLLUP; -- 查询 HAVING SELECT ename,COUNT(1) FROM emp GROUP BY ename HAVING COUNT(1)>1;

  13.表连接

   内连接:两张表中相互匹配的记录,外连接选出不匹配的记录(外连接有分为左连接和右连接)

-- 内联接 SELECT * FROM dept,emp WHERE dept.`deptno`=emp.`deptno`; -- 左联接 SELECT * FROM dept LEFT JOIN emp  ON  dept.`deptno`=emp.`deptno`; -- 右联接 SELECT * FROM dept RIGHT JOIN emp  ON  dept.`deptno`=emp.`deptno`;

  14.子查询

  子查询的关键字主要包括in、not in、=、!=、exists、not exists

--  in 子查询   SELECT * FROM emp WHERE deptno IN(SELECT deptno FROM dept);  -- 如果子查询记录数唯一,可以用=    SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept LIMIT 1);

  15. 记录联合

 union 和union all,  union 是将union all的结果集合并后在distinct

SELECT deptno FROM emp UNION ALL SELECT deptno FROM dept;

SELECT deptno FROM emp UNION SELECT deptno FROM dept;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档