MySQL概念

b5032d1e2ec147288edf36b27d586ce0.gif原理定义概念

 

定义

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库

 

数据库是长期储存在计算机内、有组织的、可共享的数据集合

 

分类:

 

(1)非结构化数据:

 

数据相对来讲没有固定的特点,这种数据非常不便于检索

但是生活中很多都是非结构化数据

(2)半结构化数据:

 

数据之间有着相同的存储结构 属性:值

 

每一条数据的属性可以不同

 

张三:

三号学生

李四:

(3)结构化数据

 

创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

 

数据之间有着相同的存储结构 属性 值

 

同一个结构模型中每一条数据的属性都是相同的,但是值有可能不同,这些数据非常便于存储和管理

 

于是针对这些数据,专门设计一套数据存储的软件,现在我们说的数据库主要用来存储这些数据

 

产品

 

 

sqlserver -->微软

Mysql -->Java-->Oracle收购

免费

Oracle-->Oracle

收费

DB2-->IBM 份额很少

问题

 

我们所有的数据库都放在软件中

我们要获取到数据,就需要使用软件给我们提供的访问数据的接口

最痛苦的就是程序员,我们就要为存储数据学习不同的数据库

于是有人开始倡导:使用统一的操作数据库的方式

SQL

 

sql一般指结构化查询语言(Structured Query Language),简称SQL.

 

全世界所有的结构化数据库都适用

 

分类

 

DQL:Data Query Language 数据查询语言

 

定义数据库的一些组件 表 索引 视图 自增序列...

 

DML:Data Manipulate Language 数据操纵语言

 

数据库的增、删、改、查

 

DDL:Database Definition Language 数据定义语言

 

Create Drop Alter

 

DCL:Data Control Language 数据库控制语言

权限

 

事务的提交:commit

 

事务的回滚:rollback

 

SQL语言属于第四代语言,而java c++ 才属于第三代

 

安装

官网

​ https://www.mysql.com/

 

​ https://dev.mysql.com/downloads/mysql/

 

 

 

 

 

MySQL安装

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

安装路径

 

C:\Program Files\MySQL\MySQL Server 8.0

 

root密码 123456

 

端口 3306

 

数据库已经安装完成并可以使用了,但是现在就是操作不方便

 

进入mysql数据库的命令

 

(1)cmd 进入到doc窗口

 

(2)输入 cd C:\Program Files\MySQL\MySQL Server 8.0\bin

 

(3) mysql -u root -p

 

​ 输入密码:123456

 

(4)show databases;

 

(5)use mysql

 

(6)select host,user from user;

 

安装mysql的访问工具

 

navicat 收费的 ,我们需要进行简单的破解

破解之前必须关闭杀毒软件

数据库连接错误

 

1045 用户名和密码不匹配 用户名root 密码 123456

2003 连接不到mysql服务器,很常见的是因为启动失败

概念

关系模型中常用的概念

 

关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名

元组:可以理解为二维表中的一行,在数据库中经常被称为记录

属性:可以理解为二维表中的一列,在数据库中经常被称为字段

域:属性的取值范围,也就是数据库中某一列的取值限制

关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成

关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库 中成为表结构

scott用例表

emp 员工信息表

字段名 中文 类型 空? 默认值 克其他说明

EMPNO🔑 雇员编号 int(11) 否 主键

ENAME 雇员名称 varchar(255) 是  

JOB 岗位工种 varchar(255) 是  

MGR 上级 int(11) 是  

HIREDATE 雇佣日期 date 是  

SAL 工资 decimal 是  

COMM 奖金|津贴 decimal 是  

DEPTNO 部门编号 int(11) 是 外键,dept表的deptno 关联

dept部门信息表

字段名 中文 类型 空? 默认值 其他说明

DEPTNO🔑 部门编号 int(11) 否 主键

DNAME 部门名称 varchar(255) 是  

LOC 地址 varchar(255) 是  

salgrade薪资区间表

字段名 中文 类型 空? 默认值 其他说明

GRADE 等级 int(11)   

LOSAL 最低薪资 int(11)   

HISAL 最高薪资 int(11)   

二、SQL-DQL语句

格式

 

select 列名*N from 表名 where 查询条件1 and/or 查询条件2 group by 列 Having 分组条 件 Order by 排序

 

规则

 

sql在书写的时候除了查询条件之外,大小写都可以

 

select * from user where uname ='zs';

 

SELECT * FROM USER WHERE UNAME = 'zs';

 

保持大小写风格

 

去公司之后需要看其他员工SQL大小写

 

-- 属于SQL语句的注释

 

所有的查询条件为字符串时,需要用''进行修饰,否则就会当做列名去处理

 

select查询列和别名

 

 -- 查询所有员工信息(*通配符,默认查询所有的列)

 select * from emp;

 -- 查询员工的姓名

 select ename from emp;

 -- 查询员工的薪资 select sal from emp;

 -- 查询员工的姓名和薪资

 select ename , sal from emp;

 select ename sal from emp;

 select ename sal comm from emp;

 -- 查询员工的姓名和薪资,推荐使用单引号

 select ename '员工姓名', sal "薪资" from emp;

 -- 查询到的数据可以直接进行运算

 select ename ,sal ,sal * 12 from emp;

 select ename ,sal ,comm ,(sal+comm) * 12 from emp;  

select的条件查询

 

普通条件查询 = > < != <> >= <=

 

 -- 查询员工编号为7369的员工

 select ename,sal from emp where empno = 7369;

 -- 查询员工姓名叫做

 SMITH select ename,deptno,job from emp where ename = 'SMITH';

 select ename,deptno,job from emp where ename = 'smith';

 -- 查询薪资大于2000的员工姓名

 select ename from emp where sal > 2000;

 -- 查询工作为SALESMAN

 select * from emp where job = 'SALESMAN';

 -- 查询部门在20的员工

 select * from emp where deptno = 20;

 -- 查询薪资不等于2000的员工

 select * from emp where sal != 2000;

 select * from emp where sal != 2000; 

in 在某个范围中查找

 

 -- 查询 员工编号 为 7369 7788 7881的员工信息

 select * from emp where empno in (7369,7788,7881);

 -- 查询 员工编号除了 7369 7788 7881之外的所有员工信息

 select * from emp where empno not in(7369,7788,7881);

 -- 查询除了10,20部门之外的所有员工

 select * from emp where deptno not in (10,20);

null值查询

 

 -- 查询不发放津贴的员工信息

 select * from emp where comm is null;

 -- 查询发放津贴的员工信息

 select * from emp where comm is not null; 

范围比较

 

 -- 查询薪资范围在1000-4000之间的员工信息 [1000.4000]

 select * from emp where sal between 1000 and 4000;

模糊查询 % _

 

-- 查询名字中有S的员工

select * from emp where ename like '%S%';

-- 查询名字最后一个字符是S

select * from emp where ename like '%S';

-- 查询名字第一个字符是S

select * from emp where ename like 'S%';

-- 查询名字第二个字符是A

select * from emp where ename like '_A%';

-- 查询名字中有%的员工

select * from emp where ename like '%\%%';

-- 查询名字第8 188个字符是A,这是需要一些特殊的手段-》函数

-- % 代表任意字符的任意次数 _任意字符的一次

多条件联合查询 and or

 

(1)and 必须前后同时满足条件才能返回结果

 

(2)or前后有一个满足条件就能返回结果

 

-- 查询在20部门并且薪资大于2000的员工

select * from emp where deptno =20 and sal >2000;

-- 查询在20部门或者薪资大于2000的员工

select * from emp where deptno = 20 or sal >2000;

--查询不在20部门并且薪资小于2000的员工

select * from emp where deptno <> 20 and sal <2000;

select结果排序 order by

 

使用asc是升序排列(默认),使用desc可以降序排序

 

单列

 

-- 按照薪资进行排序(默认升序)

select * from emp order by sal;

-- 按照薪资进行排序(降序)

select * from emp order by sal desc;

-- 按照薪资进行排序(升序)

select * from emp order by sal asc;

-- 按照津贴进行排序(null排在最前面)

select * from emp order by comm;

多列

 

-- 多个排序的列

select * from emp order by deptno,sal;

-- 多个排序的列(部门升序 薪资降序)

select * from emp order by deptno,sal desc;

-- 多个排序的列(工作,薪资)

select * from emp order by job,sal;

select结果分页

 

-- 每次查询前N行

SELECT

 * 

FROM

 emp 

 LIMIT 4;

 

-- 查询第N页,每页显示M个

select * from emp limit 0,3;

select * from emp

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[强网杯 2022]factor有感

可直接私信&#xff0b;Q 3431550587 此题记录主要是他运用了几个新看见的攻击思路和拜读了一篇论文&#xff0c;所以写写。题目源码&#xff1a; #encoding:utf-8 from Crypto.Util.number import * from gmpy2 import * from random import randint from flag import flagd…

uni-app:showModal中实现弹窗中文本框输入

效果 代码 <template><view><!-- 显示弹窗的按钮 --><button click"showInputDialog">显示弹窗</button></view> </template><script> export default {methods: {showInputDialog() {uni.showModal({title: 请完成…

电影大师杂记

假期集中刷了好多书&#xff0c;游戏和电影&#xff0c;在虚拟世界里猛烈的各种闲逛&#xff0c;cyberpunk 2077到blade runner&#xff0c;到异形&#xff0c;到终结者&#xff0c;到星球大战&环太平洋&#xff0c;到工业光魔&#xff0c;还有各种编程的书。。。 hmmm&…

Spring的AOP开发-基于xml配置的AOP

目录 基于xml配置的AOP xml方式AOP快速入门 xml方式AOP配置详解 xml方式AOP原理剖析&#xff08;后面再深入理解一下&#xff09; AOP底层两种生成Proxy的方法 基于xml配置的AOP xml方式AOP快速入门 在前面我们自己编写的AOP基础代码还存在一些问题&#xff0c;主要是 被…

【数据库——MySQL】(15)存储过程、存储函数和事务处理习题及讲解

目录 1. 题目1.1 存储过程1.2 存储函数1.3 事务处理 2. 解答2.1 存储过程2.2 存储函数2.3 事务处理 1. 题目 1.1 存储过程 创建表 RandNumber &#xff1a;字段&#xff1a;id 自增长&#xff0c; data int&#xff1b; 创建存储过程向表中插入指定个数的随机数&#xff08;1-…

【软件测试】自动化测试selenium(二)

文章目录 三. 掌握Selenium常用的API使用1. webdriver API2. 操作测试对象3. 添加等待4. 打印信息5. 浏览器的操作6. 键盘事件7. 鼠标事件8. 定位一组元素9. 多层框架/窗口定位10. 下拉框处理11. 弹窗处理12. 上传文件13. 关闭浏览器14. 切换窗口15. 截图操作 三. 掌握Selenium…

基于electron25+vite4创建多窗口|vue3+electron25新开模态窗体

在写这篇文章的时候&#xff0c;查看了下electron最新稳定版本由几天前24.4.0升级到了25了&#xff0c;不得不说electron团队迭代速度之快&#xff01; 前几天有分享一篇electron24整合vite4全家桶技术构建桌面端vue3应用示例程序。 https://www.cnblogs.com/xiaoyan2017/p/17…

【雷达原理】雷达测距原理及实现方法

目录 一、雷达测距原理1.1 基本原理1.2 实现方法1.3 与距离有关的概念 二、MATLAB仿真实验2.1 应用案例2.2 MATLAB代码 一、雷达测距原理 1.1 基本原理 我们知道&#xff0c;电磁波的传播速度为光速 c c c&#xff0c;若雷达与目标之间的距离为 R R R&#xff0c;则雷达发出…

QT实现tcp服务器客户端

服务器.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);// 此时&#xff0c;服务器已经成功进入监听状态…

LVGL_基础控件滑动条slider

LVGL_基础控件滑动条slider 1、创建滑动条控件 // 创建一个 slider 组件(对象)&#xff0c;他的父对象是活动屏幕对象 lv_obj_t *slider lv_slider_create(lv_scr_act()); LV_LOG_USER("lv_slider_get_value(slider) %d", lv_slider_get_value(slider));/* 设置位…

全屋灯具选购指南,如何选择合适的灯具。福州中宅装饰,福州装修

灯具装修指南 灯具就像我们家里的星星&#xff0c;在黑暗中带给我们明亮&#xff0c;可是灯具如果选择的不好&#xff0c;这个效果不仅体现不出来&#xff0c;还会让人觉得烦躁。 灯具到底该怎么选呢&#xff1f;装修灯具有哪些注意事项呢&#xff1f;给大家做了一个总结&#…

基于springboot的论坛网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 普通管理员管理 交流论坛 交流论坛评论 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了…

C语言qsort函数

排序qsort int int cmp(const void *a, const void *b) {return *(int *)a - *(int *)b;//先强转成int型&#xff0c;后解引用取值比较大小 }字符串数组 char a[] “hello world” //字符串数组&#xff0c;存放的是字符 int cmp(const void *a, const void *b) {return *(…

罗彻斯特大学探讨ChatGPT等人工智能将如何影响高等教育

人工智能聊天机器人ChatGPT持续引起互联网用户的热议&#xff0c;它能够回答关于各个领域的问题&#xff0c;创作歌曲、食谱&#xff0c;起草电子邮件等等。罗切斯特的教职员工和管理人员就他们如何处理 ChatGPT 以及它如何影响未来的教学和学习提出了他们的想法。 “让这项技…

快排(三种单趟排序法,递归非递归算法)

快排发明者:霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家。 计算机领域的爵士——托尼霍尔(Tony Hoare)(1934年1月11日出生),英文全称Sir Charles Antony Richard Hoare,常被称为Tony Hoare或者C. A. R. Hoare,1959年博士毕业于

idea清空缓存类

解决办法 网上有很多是让你去清空什么maven依赖&#xff0c;但假如这个项目是你不可以大刀阔斧的话 可以清空idea缓存 选择 Invalidate 开头的 然后全选 运行重启idea OK

FISCO BCOS(三十七)———FISCOBCOS应用开发,交易hash、区块高度的获取

这个需求怎么做? 交易hash的获取方式有很多,这里先介绍一种方式。 根据块高查询区块信息 https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/interface.html那我们如何知道现在的区块高度是多少? https://webasedoc.readthedocs.io/zh_CN/latest/docs/W…

VSCode Intellij IDEA CE 数据库连接

VSCode & Intellij IDEA CE 数据库连接 大概记一下现在正在用的几个工具/插件 VSCode VSCode 里面的工具我下载了很多&#xff0c;如果只是链接 MySQL 的话&#xff0c;可能用 Jun Han 这位大佬的 MySQL 就好了&#xff1a; 使用这个插件直接打开 .sql 文件单击运行就能…

nodejs+vue临沂特色产品销售平台elementui

从实际工作出发&#xff0c;对过去的临沂特色产品销售平台存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息 提高了工作的效率。 随着信息化社会的形成和微电子技术日新月异的发展&#xff0c;临沂特色产品销售平台是针对目前临沂特色产品销售…

win10、win11彻底永久关闭自动更新的方法

win10、win11彻底永久关闭自动更新的方法 前言彻底关闭自动更新方法步骤一、禁用Windows Update服务二、在组策略里关闭Win10自动更新相关服务四、在注册表中关闭Win10自动更新 完结 前言 win系统的自动更新可谓是非常顽固&#xff0c;很多用户在网上试了各种关闭win系统自动更…