首页 > 数据库 >开源数据库Mysql_DBA运维实战 (DML/DQL语句)

开源数据库Mysql_DBA运维实战 (DML/DQL语句)

时间:2023-08-11 21:32:23浏览次数:77  
标签:info salary name 运维 DBA DML 查询 dep num



DML/DQL

DML

INSERT    实现数据的  插入

        实例:

DELETE   实现数据的  删除

        实例:

UPDATE   实现数据的  更新

         实例1:

         实例2:

         实例3:

DQL


 DML/DQL

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_02编辑

 DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

 DQL语句   数据库查询语言:查询数据SELECT


DML

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_03

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_04编辑

INSERT    实现数据的  插入

语法:完整插入     INSERT   INTO   ___表名___   VALUES(值1,值2,值3...值n);

           部分插入     INSERT   INTO   ___表名___  (列名,列名)   VALUES(值1,值2);

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_05

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_06编辑

实例:


1.首先创建一个表

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_07

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_08

编辑


2.插入数据

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_09

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_10

编辑


DELETE   实现数据的  删除

语法:DELETE   FROM    ___表名____  WHERE   CONDITION;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_11

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_12编辑

实例:

.删除数据


开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_13

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_14

编辑


UPDATE   实现数据的  更新

语法:UPDATE   表名   SET   列名=值   WHERE   CONDITION;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_15

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_16编辑

 实例1:

1.准备一张表



mysql> create table t6(id int, name varchar(20));开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_17



2.插入数据



mysql> insert into t6 values (1,'aa');mysql> insert into t6 values (2,'bb');开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_18



3.更新数据 ----->把bb  改成  cc



mysql> update t6 set name='cc' where id=2;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_19



4.查询结构



mysql> select * from t6;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_20


实例2:

更新数据库的登录密码



mysql> update mysql.user set authentication_string=password("QianFeng@123456") where user="root";开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_21


实例3:

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_22

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_23

编辑



DQL

在MySQL管理软件中,可以通过SQL语句中的DQL语言来实现数据的

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_24

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_25编辑

 从数据表中提取满足特定条件的记录

  • 单表查询
  • 多表联合查询

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_26

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_27

编辑


DQL基础语法:

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_28

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_29

编辑


实例:

1.首先创建一个表

mysql> create database company;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_30

mysql> CREATE TABLE company.employee5(
     id int primary key AUTO_INCREMENT not null,
    name varchar(30) not null,
    sex enum('male','female') default 'male' not null,
     hire_date date not null,
     post varchar(50) not null,
     job_description varchar(100),
     salary double(15,2) not null,
     office int,
     dep_id int
     );

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_31

   插入数据

mysql> insert into company.employee5(name,sex,hire_date,post,job_description,salary,office,dep_id) values 
     ('jack','male','20180202','instructor','teach',5000,501,100),
     ('tom','male','20180203','instructor','teach',5500,501,100),
     ('robin','male','20180202','instructor','teach',8000,501,100),
     ('alice','female','20180202','instructor','teach',7200,501,100),
     ('aofa','male','20180202','hr','hrcc',600,502,101),
     ('harry','male','20180202','hr',NULL,6000,502,101),
     ('emma','female','20180206','sale','salecc',20000,503,102),
     ('christine','female','20180205','sale','salecc',2200,503,102),
     ('zhuzhu','male','20180205','sale',NULL,2200,503,102),
     ('gougou','male','20180205','sale','',2200,503,102);

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_32

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_33

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_34编辑

2.简单查询

#查看所有列
SELECT    *    FROM   表名;


#查部分列
SELECT   列1,列2,列3    FROM     表名;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_35

#通过四则运算查询(查看年薪)

 SELECT name, salary, salary*14 FROM employee5;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_36

3.条件查询

单条件查询  WHERE


开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_37

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_38

编辑


a.查询hr部门的员工姓名



SELECT name,post FROM employee5 WHERE post='hr';开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_39



开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_40

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_41

编辑


多条件查询AND/OR


开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_42

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_43

编辑


a.查询hr部门的员工姓名,并且工资大于1000



SELECT name,salary FROM employee5 WHERE post='hr' AND salary>1000;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_44



b.查询所有部门的员工姓名,并且工资是6000或者8000的员工



SELECT name, salary FROM employee5 WHERE salary=6000 OR salary=8000开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_45



关键字BETWEEN AND 在什么之间

a.需求:查一查薪资在5000到15000



SELECT name,salary FROM employee5 WHERE salary BETWEEN 5000 AND 15000;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_46



b.需求:不在5000~15000呢?请使用NOT



SELECT name,salary FROM employee5 WHERE salary NOT BETWEEN 5000 AND 15000;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_47



关键字IN集合查询

a.工资可能是4000,也可能是5000,还有可能是9000,怎么查



OR可以组合多条件,效率如何?SELECT name, salary FROM employee5 WHERE salary=4000 OR salary=5000 OR salary=6000 OR salary=9000 ;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_48



关键字IS NULL

a.没有岗位描述的



空SELECT name,job_description FROM employee5 WHERE job_description IS NULL;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_49




非空SELECT name,job_description FROM employee5 WHERE job_description IS NOT NULL;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_50



关键字LIKE模糊查询

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_51

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_52

编辑


a.好像有个员工姓阿



SELECT * FROM employee5 WHERE name LIKE 'al%';SELECT * FROM employee5 WHERE name LIKE 'al___';开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_53


4.排序查询

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_54

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_55编辑

实例:


a.例如以工资升序排列



SELECT * FROM 表名 ORDER BY 工资的列名 ASC;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_56



b.例如以工资降序排列



SELECT * FROM 表名 ORDER BY 工资的列名 DESC;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_57



c.工资最高的前五名



SELECT * FROM employee5 ORDER BY salary DESC LIMIT 5;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_58


5.多表查询

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_59

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_60编辑

创建员工信息表:

#创建表结构
create table info(
name char(50),
age int,
dep_num int,
level_num int);

#查询表结构
desc info;

#插入数据
insert into info values 
('zhangsan',23,101,1),
('lisi',25,102,2),
('wangwu',30,102,3),
('zhaosi',30,103,4),
('sunba',35,NULL,NULL);

#查询表
select * from info;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_mysql_61

创建部门信息表:

#创建表结构
create table department(
dep_num int,
dep_name varchar(50),
dep_des varchar(100));

#插入数据
insert into department values
(101,'hr','recruit,training'),
(102,'tec','system,network,service'),
(103,'exp','C++,python,php'),
(104,'admin','administrator');

#查看表结构
desc department;

#查看表
select * from department;

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_62

示图:

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_63

开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_64编辑

多表的连接查询:

a.交叉连接

特点:全部组合(A表5行,B表7行,最后5*7=35行)

生成笛卡尔积,它不使用任何匹配条件

select info.name,info.age,info.dep_num,department.dep_name from info,department;

b.内连接

特点:两列相同时,才会显示

语法:SELECT 字段列表  FROM 表1 , 表2  WHERE    表1.字段 = 表2.字段;

select info.name,info.age,info.dep_num,department.dep_name from info,department where info.dep_num = department.dep_num;

c.外连接

特点:两列相同时显示,并,已左/右表为主。

语法:A表                left join                B表                on            条件是

外连接(左连接 left join  on)

找出所有员工及所属的部门,包括没有部门的员工

查看所有员工的部门信息。



select info.name,info.age,info.dep_num,department.dep_name from info left join department on info.dep_num = department.dep_num;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_65



外连接(右连接right join  on)

显示所有的部门的员工信息。



select info.name,info.age,info.dep_num,department.dep_name from info right join department on info.dep_num = department.dep_num;开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_66


子查询:

子查询是指:父查询 需要 依赖  子查询的结果。
子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
还可以包含比较运算符:= 、 !=、> 、<等

EXISTS关字键字表示存在。在使用EXISTS关键字时,内层查询语句不返回查询的记录,而是返回一个真假值。
Ture或False,当返回Ture时,外层查询语句将进行查询;当返回值为False时,外层查询语句不进行查询

1. 带IN关键字的子查询(范围)

查询员工年龄大于等于25岁的部门



select dep_num,dep_name from department where dep_num in (select distinct dep_num from info where age >=25);开源数据库Mysql_DBA运维实战 (DML/DQL语句)_数据_67



2. 带EXISTS关键字的子查询(返回值)

如果部门101存在(返回为真),查询所有员工信息。



true select * from info where exists (select * from department where dep_num=102);false select * from info where exists (select * from department where dep_num=105);开源数据库Mysql_DBA运维实战 (DML/DQL语句)_表名_68




标签:info,salary,name,运维,DBA,DML,查询,dep,num
From: https://blog.51cto.com/SongR/7053112

相关文章

  • 【运维】如何在centos上升级OpenSSL
    很多小伙伴肯定遇到过被通知自己的服务器存在一些ssh漏洞问题,其实只要升级OpenSSL版本就能解决这些问题。下面给出一些操作步骤:确认已准备好编译环境:sudoyumgroupinstall"DevelopmentTools"下载OpenSSL的源代码包:wgethttps://www.openssl.org/source/openssl-1.1.1l.tar.gz......
  • 开源数据库Mysql_DBA运维实战 (DDL语句)
    DDL编辑DDL语句数据库定义语言:数据库、表、视图、索引、存储过程.例如:CREATE DROPALTERDDL库定义库{                创建业务数据库:CREAATEDATABASE  ___数据库名___ ;                数据库名要求{                ......
  • 做一个不背锅的运维 经验总结
    系统出了故障,第一个挨板子的就是运维人员。不管任何原因,先找运维,给他一口好锅。运维好苦啊!稳定运行时,似乎是多余的存在;有问题时,要替人背锅。与其被动,不如主动一点,不做背锅侠!怎么做呢?先看几个例子,亲身经历。砸锅例一一支付系统,前端负载均衡,中间tomcat应用,后端memcached加oracle11G......
  • NKD:容器云集群与 OS 一体化运维利器
    NKD是NestOS-kubernetes-Deployer的缩写,是为了基于NestOS部署的Kubernetes集群运维工作准备的解决方案。其目标是在集群外提供对集群基础设施(包括操作系统和Kubernetes基础组件)的部署、更新和配置管理等服务。1.引言Kubernetes作为云原生领域容器云场景的事实标准,以其......
  • 运维管理工具的对比Puppet、Chef、Ansible和SaltStack、Fabric
    我们发现分布式是一个发展的趋势,无论是大型网站的负载均衡架构还是大数据框架部署,以及云存储计算系统搭建都离不开多台服务器的连续部署和环境搭建。当我们的基础架构是分散式或者基于云的,并且我们经常需要处理在大部分相同的服务器上频繁部署大致相同的服务时,我们就应该考虑自动化......
  • 对现代电网变电运维管理模式的浅析--安科瑞张田田
    安科瑞张田田摘要:当前,随着经济建设的不断发展,我国电力企业的快速发展受到了推动。在电力企业发展过程中,变电运行维护管理是一项重要内容。管理模式的好坏直接关系到整个电网的稳定发展。因此,在现代变电运行管理过程中,需要提高管理水平,提升平平供电企业的持续稳定发展,为人民群众提供......
  • 网工内推 | 高校招网工、运维,可落户厦门,IE认证优先
    01厦门工学院招聘岗位:网络工程师职责描述:1.负责学校网络架构的规划、设计、调整和性能优化,确保网络的性能、稳定和安全性。2.负责网络类、安全类,智慧教室等系统集成项目整体技术方案设计及配合项目实施。3.对建设项目进行跟踪,参与招、投标的技术评估。4.建设项目的组织、协调等......
  • 运维常用指令
     大体发版推送的步骤:拉取仓库代码构建包看是否运行集成及单元测试仓库代码提交设置流水线-阻止异常或是对现有业务产生影响的代码入正式代码仓库,测试左移,让低级别错误回归到dev,减轻QA测试压力node等前端静态页面其他jar.构建打jar包,或是用docker-compose维护发版......
  • 你是不是 可替代的Linux运维工程师?
    做技术行业久了,总会有一种危机感。技术更新太快,自己的学习时间又太少;刚刚抽时间学会Python,发现技术圈的潮流换成了GO语言;GO语言的书刚买回家吃了几天灰,常用的Linux操作系统又更新了一版。技术人总有学不完的新知识,探索不完的新领域。虽然有无穷的知识,但却没有无穷的精力,甚......
  • 不增加成本能更好应对生产系统稳定性意外故障的“开发测试运维三岗转为系统红蓝军”实
    系统红蓝军,不仅可以引导开发人员做好功能自测,更可以在不增加成本的情况下,引导企业有效应对生产系统稳定性***意外***故障。1基于观察企业经常出现意料之外的软件系统生产环境稳定性故障。2问出问题是什么原因导致企业经常出现意料之外的软件系统生产环境稳定性故障?3形成可......