《MySQL数据库》day1

文章目录

    • 1.名词解释
    • 2.如何启动mysql数据库
    • 3.mysql常用命令
    • 4.数据库当中最基本的单元是表:table
    • 5.关于SQL语句的分类
    • 6.简单查询
    • 7.条件查询
    • 8.排序
    • 9.数据处理函数
      • 单行处理函数常见的有哪些?
    • 10.分组函数(多行处理函数)

1.名词解释

  1. 数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。
  2. 数据库管理系统:DataBaseManagementSystem,简称DBMS。数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。常见的数据库管理系统:MySQL、Oracle、MS SqlServer、DB2、sybase等…
  3. SQL:结构化查询语言程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用,同时在Oracle中也可以使用,在DB2中也可以使用。
  4. 三者之间的关系?
    DBMS–执行–> SQL --操作–> DB
    先安装数据库管理系统MySQL,然后学习SQL语句怎么写,编写SQL语句之后,DBMS
    对SQL语句进行执行,最终来完成数据库的数据管理。

2.如何启动mysql数据库

win+r键输入cmd代开windows命令窗口,然后输入:mysql -uroot -p,然后输入密码即可登录上mysql数据库。

3.mysql常用命令

  1. 退出mysql :exit

  2. 查看mysql中有哪些数据库?-》show databases; 注意:以分号结尾,分号是英文的分号。

  3. 怎么选择使用某个数据库呢?-》mysql> use test;
    Database changed
    表示正在使用一个名字叫做test的数据库。

  4. 怎么创建数据库呢?-》mysql> create database bjpowernode;
    Query OK, 1 row affected (0.00 sec)

  5. 查看某个数据库下有哪些表?-》mysql> show tables;

  6. 查看mysql数据库的版本号:-》mysql> select version();

  7. 查看当前使用的是哪个数据库?-》mysql> select database();

  8. 如何倒入数据表呢?-》使用source+路径即可,路径不可以包含中文

  9. 怎么查看表中的数据呢?-》select * from 表名; //统一执行这个SQL语句。

  10. 不看表中的数据,只看表的结构,有一个命令:-》desc 表名; (describe的缩写)

注意1mysql是不见“;”不执行,“;”表示结束!
注意2以上的命令不区分大小写,都行。

4.数据库当中最基本的单元是表:table

什么是表table?为什么用表来存储数据呢?-》数据库当中是以表格的形式表示数据的。因为表比较直观。

任何一张表都有行和列:
行(row):被称为数据/记录。
列(column):被称为字段。

了解一下:每一个字段都有:字段名、数据类型、约束等属性。字段名可以理解,是一个普通的名字,见名知意就行。数据类型:字符串,数字,日期等,后面会说到。约束:约束也有很多,其中一个叫做唯一性约束,这种约束添加之后,该字段中的数据不能重复。

5.关于SQL语句的分类

SQL语句有很多,最好进行分门别类,这样更容易记忆。

  1. DQL:
    数据查询语言(凡是带有select关键字的都是查询语句)
    select…
  2. DML:
    数据操作语言(凡是对表当中的数据进行增删改的都是DML)
    insert delete update
    insert 增
    delete 删
    update 改
    这个主要是操作表中的数据data。
  3. DDL:
    数据定义语言
    凡是带有create、drop、alter的都是DDL。
    DDL主要操作的是表的结构。不是表中的数据。
    create:新建,等同于增
    drop:删除
    alter:修改
    这个增删改和DML不同,这个主要是对表结构进行操作。
  4. DCL:
    是数据控制语言。
    例如:授权grant、撤销权限revoke…
  5. TCL:
    是事务控制语言
    包括:
    事务提交:commit;
    事务回滚:rollback;

6.简单查询

  1. 查询一个字段?
    select 字段名 from 表名;
    其中要注意:
    select和from都是关键字。
    字段名和表名都是标识符。
    强调:
    对于SQL语句来说,是通用的,
    所有的SQL语句以“;”结尾。
    另外SQL语句不区分大小写,都行。
  2. 查询两个字段,或者多个字段怎么办?-》使用逗号隔开“,”
  3. 查询所有字段怎么办?
    第一种方式:可以把每个字段都写上
    select a,b,c,d,e,f… from tablename;
    第二种方式:可以使用*
    select * from tablename;
  4. 给查询的列起别名?-》 select deptno,dname as deptname from dept;
    使用as关键字起别名。
    注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname
    记住:select语句是永远都不会进行修改操作的。(因为只负责查询)
    as关键字可以省略吗?可以的(使用空格即可)
    select deptno,dname deptname from dept;
    假设起别名的时候,别名里面有空格,怎么办?(有空格、中文都可以用这个方法)
    select deptno,dname ‘dept name’ from dept; //加单引号
    注意:在所有的数据库当中,字符串统一使用单引号括起来,单引号是标准
  5. 字段可以使用数学表达式!-》select ename,sal*12 from emp;

7.条件查询

  1. 什么是条件查询?-》不是将表中所有数据都查出来。是查询出来符合条件的。
    语法格式:
    select
    字段1,字段2,字段3…
    from
    表名
    where
    条件;
  2. 都有哪些条件?
    ①= 等于
    查询薪资等于800的员工姓名和编号?
    select empno,ename from emp where sal = 800;
    查询SMITH的编号和薪资?
    select empno,sal from emp where ename = ‘SMITH’; //字符串使用单引号
    ②<>或!= 不等于
    查询薪资不等于800的员工姓名和编号?
    select empno,ename from emp where sal != 800;
    select empno,ename from emp where sal <> 800; // 小于号和大于号组成的不等号
    ③< 小于
    查询薪资小于2000的员工姓名和编号?
    select empno,ename,sal from emp where sal < 2000;
    ④<= 小于等于
    查询薪资小于等于3000的员工姓名和编号?
    select empno,ename,sal from emp where sal <= 3000;
    ⑤> 大于
    查询薪资大于3000的员工姓名和编号?
    select empno,ename,sal from emp where sal > 3000;
    ⑥>= 大于等于
    查询薪资大于等于3000的员工姓名和编号?
    select empno,ename,sal from emp where sal >= 3000;
    ⑦between … and …. 两个值之间, 等同于 >= and <=
    查询薪资在2450和3000之间的员工信息?包括2450和3000
    第一种方式:>= and <= (and是并且的意思。)
    select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;
    第二种方式:between … and …
    select
    empno,ename,sal
    from
    emp
    where
    sal between 2450 and 3000;
    注意:
    使用between and的时候,必须遵循左小右大。
    between and是闭区间,包括两端的值。
    ⑧is null 为 null(is not null 不为空)
    查询哪些员工的津贴/补助为null?
    select empno,ename,sal,comm from emp where comm is null;
    注意:在数据库当中null不能使用等号进行衡量。需要使用is null
    因为数据库中的null代表什么也没有,它不是一个值,所以不能使用
    等号衡量。

    ⑨and 并且
    查询工作岗位是MANAGER并且工资大于2500的员工信息?
    select
    empno,ename,job,sal
    from
    emp
    where
    job = ‘MANAGER’ and sal > 2500;
    ⑩or 或者
    查询工作岗位是MANAGER和SALESMAN的员工?
    第一种:
    select empno,ename,job from emp where job = ‘MANAGER’;
    select empno,ename,job from emp where job = ‘SALESMAN’;
    第二种
    select
    empno,ename,job
    from
    emp
    where
    job = ‘MANAGER’ or job = ‘SALESMAN’;
    注意:and优先级比or高。 and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号”
    以后在开发中,如果不确定优先级,就加小括号就行了。
    11.in(…) 包含,相当于多个 or (not in(…) 不在这个范围中)
    12.not 可以取非,主要用在 is 或 in 中
    is null
    is not null
    in
    not in
    13. like 称为模糊查询,支持%或下划线匹配,%匹配任意多个字符,下划线:任意一个字符。(%是一个特殊的符号,_ 也是一个特殊符号)
    例如:找出名字中含有O的?-》select ename from emp where ename like ‘%O%’;
    找出名字以T结尾的?-》select ename from emp where ename like ‘%T’;
    找出名字以K开始的?->select ename from emp where ename like ‘K%’;
    找出第二个字每是A的?->select ename from emp where ename like ‘_A%’;

8.排序

1.查询所有员工薪资,排序?
select
ename,sal
from
emp
order by
sal; // 默认是升序!!!

2.怎么降序?
指定降序:
select
ename,sal
from
emp
order by
sal desc;

3.指定升序?(默认就是升序)
select
ename,sal
from
emp
order by
sal asc;

4.可以两个字段排序吗?或者说按照多个字段排序?
查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,
再按照名字升序排列。
select
ename,sal
from
emp
order by
sal asc, ename asc; // sal在前,起主导,只有sal相等的时候,才会考虑启用ename排序。

5.根据字段的位置也可以排序
select ename,sal from emp order by 2; // 2表示第二列。第二列是sal
按照查询结果的第2列sal排序。

6.关键字顺序不能变:
select

from

where

order by

以上语句的执行顺序必须掌握:(***很重要)
第一步:from
第二步:where
第三步:select
第四步:order by(排序总是在最后执行!)

9.数据处理函数

数据处理函数又被称为单行处理函数。单行处理函数的特点:一个输入对应一个输出。和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!)

单行处理函数常见的有哪些?

  1. lower 转换小写-》select lower(ename) as ename from emp;
  2. upper 转换大写-》select upper(name) as name from t_student;
  3. substr 取子串(substr( 被截取的字符串, 起始下标,截取的长度))-》select substr(ename, 1, 1) as ename from emp;
    注意:起始下标从1开始,没有0
    例如:找出员工名字第一个字母是A的员工信息?
    第一种方式:模糊查询
    select ename from emp where ename like ‘A%’;
    第二种方式:substr函数
    select
    ename
    from
    emp
    where
    substr(ename,1,1) = ‘A’;
  4. concat函数进行字符串的拼接-》select concat(empno,ename) from emp;
  5. length 取长度-》select length(ename) enamelength from emp;
  6. trim 去空格-》select * from emp where ename = trim(’ KING’);会自动把字符串里的空格给去掉
  7. case…when…then…when…then…else…end
    当员工的工作岗位是MANAGER的时候,工资上调10%,当工作岗位是SALESMAN的时候,工资上调50%,其它正常。(注意:不修改数据库,只是将查询结果显示为工资上调)
    select
    ename,
    job,
    sal as oldsal,
    (case job when ‘MANAGER’ then sal * 1.1 when ‘SALESMAN’ then sal * 1.5 else sal end) as newsal
    from
    emp;
  8. round 四舍五入
    select round(1236.567, 2 ) as result from emp; //保留两位小数并进行四舍五入。
    select round(1236.567, 0) as result from emp; //保留整数位。
    select round(1236.567, -1) as result from emp; // 保留到个位。(即个位应该都为0)
    select round(1236.567, -2) as result from emp;// 保留到十位。(即个位/十位都应该为0)
  9. rand() 生成随机数(生成0-1之间的小数) -》select round(rand()*100,0) from emp; // 100以内的随机数
    10.ifnull 可以将 null 转换成一个具体值-》ifnull是空处理函数。专门处理空的。
    在所有数据库当中,只要有NULL参与的数学运算,最终结果就是NULL。
    select ename, sal + comm as salcomm from emp; 当有null时,结果均为null
    select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp; 补助为NULL的时候,将补助当做0

小练习:首字母大写? -》select concat(upper(substr(name,1,1)),substr(name,2,length(name) - 1)) as result from t_student;

10.分组函数(多行处理函数)

多行处理函数的特点:输入多行,最终输出一行
5个:
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值

注意:
分组函数在使用的时候必须先进行分组,然后才能用。(很重要)
如果你没有对数据进行分组,整张表默认为一组。

  1. 找出最高工资?-》select max(sal) from emp;
  2. 找出最低工资?-》select min(sal) from emp;
  3. 计算工资和:=》select sum(sal) from emp;
  4. 计算平均工资:-》select avg(sal) from emp;
  5. 计算员工数量?-》select count(ename) from emp;

分组函数在使用的时候需要注意哪些?

  1. 分组函数自动忽略NULL,你不需要提前对NULL进行处理。
  2. 分组函数中count()和count(具体字段)有什么区别?
    count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
    count(
    ):统计表当中的总行数。(只要有一行数据count则++)。因为每一行记录不可能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。
  3. 分组函数不能够直接使用在where子句中。(很重要) 学完分组查询(group by)之后就明白了了。
  4. 所有的分组函数可以组合起来一起用。
    例如:select sum(sal),min(sal),max(sal),avg(sal),count(*) from emp;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/718573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE2与VUE3之间的主要区别

当谈到 Vue.js 的版本时&#xff0c;Vue 2 和 Vue 3 是最常被提及的两个版本。下面是 Vue 2 和 Vue 3 之间的一些主要区别&#xff1a; 1. 性能提升&#xff1a; Vue 3 在底层核心重写了响应式系统&#xff0c;采用了 Proxy 对象&#xff0c;大幅提高了性能。Vue 3 还引入了静…

彻底解决华为手机安装谷歌框架后出现未认证的弹窗问题

引言 本人使用华为手机通过B站等平台学习如何安装谷歌框架与商店后&#xff0c;发现安装谷歌框架后出现未认证的弹窗问题少有解决办法&#xff0c;而且容易复发&#xff0c;在借鉴相关视频后找到解决办法&#xff0c;但视频中的华谷框架需要付费才能使用&#xff0c;本文将提出…

spring注解驱动系列--自动装配

Spring利用依赖注入&#xff08;DI&#xff09;&#xff0c;完成对IOC容器中中各个组件的依赖关系赋值&#xff1b;依赖注入是spring ioc的具体体现&#xff0c;主要是通过各种注解进行属性的自动注入。 一、Autowired&#xff1a;自动注入 一、注解介绍 1、默认优先按照类型去…

高中数学:函数奇偶性

一、定义 偶函数&#xff1a;定义域关于原点对称&#xff0c;图像关于Y轴对称 f(x)f(-x) 奇函数&#xff1a;定义域关于原点对称&#xff0c;图像关于原点中心对称 f(x)f(-x)0 等价于 f(-x)-f(x) 二、函数奇偶性的四种情况 注意&#xff1a; 即奇又偶的函数&#xff0c;只有…

Linux入门到入土

Linxu Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX&#xff08;可移植操作系统接口&#xff09…

【复现】宏景HCM 任意文件读取漏洞_63

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 宏景HCM 将人才标签技术应用于员工招聘、人才选拔等环节&#xff0c;通过多维度的标签体系&#xff0c;形成不同专业序列的人才画…

CV | 医学影像上的图像分割模型调研【更新于20240304】

mamba相关的图像分割&#xff1a;VM-Unet,Manba-Unet,BRAU-Net,MDD-Unet,EGE-Unet,U-Mamba 2024.01.01_BRAU-Net Paper:BRAU-Net: U-Shaped Hybrid CNN-Transformer Network for Medical Image Segmentation https://arxiv.org/pdf/2401.00722.pdf 2024.01.09_U-Mamba Paper:U…

猴子吃桃问题(python版)

文章预览&#xff1a; 题目python解法一&#xff1a;运行结果 python解法二&#xff1a;运行结果 python解法三&#xff1a;运行结果 题目 猴子吃桃问题&#xff1a;猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。 第二天早…

python 脚本设置输出颜色

在Python脚本中设置输出颜色&#xff0c;通常可以使用colorama库&#xff0c;它可以在Windows、Linux和macOS等平台上工作。colorama库扩展了Python的标准库&#xff0c;使得在控制台输出彩色文本更加简单。 首先&#xff0c;你需要安装colorama库。如果你还没有安装&#xff…

数据仓库 vs. 数据湖:解析两者的区别与优劣

在当今数字化时代&#xff0c;数据成为了企业最宝贵的资产之一。为了更好地管理和利用数据&#xff0c;企业需要建立合适的数据存储和管理系统。在这个过程中&#xff0c;数据仓库和数据湖成为了两种常见的选择。虽然它们都旨在帮助企业管理数据&#xff0c;但在实际应用中&…

flurl升级之后没有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…

Qt 简约美观的加载动画 第九季

这次和大家分享6个非常清爽的加载动画. &#x1f60a; 效果如下 &#x1f60a; 一共三个文件 , 可以直接编译运行的呢 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *argv[]) …

原理篇-- 定时任务xxl-job-服务端(admin)项目启动过程--JobTriggerPoolHelper 初始化 (3)

文章目录 前言一、JobTriggerPoolHelper 作用&#xff1a;二、JobTriggerPoolHelper 源码介绍&#xff1a;2.1. start() 方法&#xff1a;2.2 任务触发&#xff1a;2.3 XxlJobTrigger.trigger 任务执行&#xff1a;2.4 processTrigger 任务的执行&#xff1a;2.5 runExecutor 任…

【JAVA重要知识 | 第三篇】深入理解并暴打AQS原理、ReentrantLock锁

文章目录 3.深入理解AQS、ReentrantLock3.1AQS3.1.1AQS简介3.1.2核心结构&#xff08;1&#xff09;设计模型&#xff08;2&#xff09;组成部分&#xff08;3&#xff09;State关键字 3.1.3实现的两类队列&#xff08;1&#xff09;同步队列①CLH②Node③主要行为 img条件队列…

中霖教育:注册安全工程师考是科目有哪些?

注册安全工程师的类型是职业资格证书&#xff0c;需要满足报名条件才能参加考试&#xff0c;考试通过就能发放证书。报名时间一般在八月份&#xff0c;考试时间在十月底左右。 考试科目&#xff1a; 《安全生产法律法规》 《安全生产管理》 《安全生产技术基础》 《安全生…

golang实现openssl自签名双向认证

第一步&#xff1a;生成CA、服务端、客户端证书 1. 生成CA根证书 生成CA证书私钥 openssl genrsa -out ca.key 4096创建ca.conf 文件 [ req ] default_bits 4096 distinguished_name req_distinguished_name[ req_distinguished_name ] countryName …

Node.js基础---Express路由

1. 路由的概念 1. 什么是路由 广义上来讲&#xff0c;路由就是映射关系 2. Express 中的路由 在 Express 中&#xff0c;路由指的是客户端的请求与服务器处理函数之间的映射关系 Express 中的路由分三部分&#xff1a;请求的类型、请求的URL地址&#xff0c;处理函数。如下&am…

怎么使用curl2py自动构造爬虫代码并进行网络爬虫

目录 一、了解curl2py 二、安装curl2py 三、使用curl2py生成爬虫代码 四、实际案例&#xff1a;爬取网页数据 五、总结与建议 在当今数据驱动的时代&#xff0c;网络爬虫成为了获取数据的重要工具。对于初学者来说&#xff0c;手动编写爬虫代码可能是一项挑战。幸运的是&a…

PyTorch-神经网络

神经网络&#xff0c;这也是深度学习的基石&#xff0c;所谓的深度学习&#xff0c;也可以理解为很深层的神经网络。说起这里&#xff0c;有一个小段子&#xff0c;神经网络曾经被打入了冷宫&#xff0c;因为SVM派的崛起&#xff0c;SVM不了解的同学可以去google一下&#xff0…

JavaScript 基础学习笔记(五):函数、作用域、匿名函数

目录 一、函数 1.1 声明和调用 1.2 形参和实参 1.3 返回值 二、作用域 2.1 全局作用域 2.2 局部作用域 三、匿名函数 3.1 函数表达式 3.2 立即执行函数 一、函数 理解函数的封装特性&#xff0c;掌握函数的语法规则 1.1 声明和调用 函数可以把具有相同或相似逻辑的代…