MySql基础知识及数据查询

news/2024/11/24 20:36:29/

目录

第一章 数据库概述

1.为什么要学习数据库?

2.数据库的相关概念

3.ORM(Object Relational Mapping)思想  

4.表与表的记录之间存在哪些关联关系  

第二章 基本的SELECT语句

1.SQL的分类  

2.  SQL基本规则  

3.导入现有的数据表、表的数据

4.最基本的SELECT语句  

第三章 运算符

1.算术运算符

2.比较运算符

3.逻辑运算符

4.位运算符

第四章 排序与分页

1.基本排序

2.使用order by对数据排序

3.分页

4.where、order by、limit声明顺序

5.mysql新特性:offset

6.注意


第一章 数据库概述

1.为什么要学习数据库?


1.为了将内存中的数据持久化
        持久化:把数据保存到可掉电式存储设备中以供之后使用。数据持久化意味着将内存中的数据保存到硬盘中加以固化
2.为何使用数据库来存储
        原因:数据库中可存储数据类型多样化;容易操作其中存储的数据;可以存储的数据量更大  


2.数据库的相关概念


1.DB-DataBase

        数据库;本质是一个文件系统
2.DBMS-Database Management System

        数据库管理系统;一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制
3.SQL:Structured Query Language

        结构化查询语言;专门用来与数据库通信的语言
4.关系型数据库和非关系型数据库
关系型:存储的复杂数据结构存在一定的关系模型
非关系型:
        键值型数据库:Redis
        文档型数据库:MongoDB
        搜索引擎数据库:Elasticsearch
        列式数据库:HBase
        图型数据库:InfoGrid  


3.ORM(Object Relational Mapping)思想  


E-R模型:entity- relationship
E-R模型三个主要概念:实体集、属性、联系集
        1.数据库中的一个表- Java中的一个类
        2.表中的一条数据-类中的一个对象
        3.表中的一列-类中的一个对象  


4.表与表的记录之间存在哪些关联关系  

        一对一关系、一对多关系、多对多关系,自关联

第二章 基本的SELECT语句

1.SQL的分类  


1.DDL:数据定义语言
CREATE、ALTER、DROP、RENAME、TRUNCATE
2.DML:数据操作语言
INSERT、DELETE、UPDATE、SELECT
3.DCL:数据控制语言
COMMIT、ROLLBACK、SAVEPOINT、GRANT、REVOKE

2.  SQL基本规则  

1.sql可以写在一行或者多行
2.每条命令以 ;或 \g 或 \G 结束(这两个表示转置)
3.关键字无法缩写或分行
4.标点符号:
        字符串、时间类型都需要使用单引号
        列的别名使用双引号
5.建议关键字变量为大写,表名数据库名小写
6.SQL注释
        #单行注释、单行注释:

        - -(后面必须有空格)

        /**/多行注释  

3.导入现有的数据表、表的数据

1.source  文件的全路径名
举例:命令行中输入:source d:\atguigudb.sql;
2.基于具体的图形化界面工具导入

4.最基本的SELECT语句  


1.select 字段1,字段2… from …表名
2.*:表中所有的字段
3.列的别名:AS-全称:alias(别名)
三种方法

select emp_id empId,
last_name AS lname,
department_id "部门ID"
from emps;

4.去除重复行:DISTINCT
select distinct 字段…from 表名…

SELECT DISTINCT department_id
From employees;

5.空值参与运算:null不等同于0,‘’;空值参与运算:结果也一定为空
6.着重号:1左边的符号;当表名与关键字重复时加入着重号
7.查询常数:字段里写常数即可

SELECT 'XXX' , salary 
FROM employees;


8.显示表结构:describe 表名;显示表中字段的详细信息

DESCRIBE table;


9.过滤数据:字符串用单引号执行
SELECT字段…FROM表名…WHERE过滤条件

SELECT last_name,manager_id
FROM employees
WHERE employee_id = 176;

第三章 运算符

1.算术运算符

1.加 +
sql中+没有连接作用,只表示加法运算;字符串会转换为数值,不能转换为数值就为0

DUAL:一个伪表

#结果:1001
SELECT 100 + 1
from DUAL;SELECT 100 + '1'
from DUAL;#字符串转换为数值
SELECT 100 + 'a'
from DUAL;#null参与运算结果为null
SELECT 100 + NULL
from DUAL;

2.减 -
3.乘 *
4.除 / ;div
        一般除不尽,结果都是浮点型;

        分母为0结果为null
5.余 %;mod
        结果的符号和被模数有关

2.比较运算符

1.比较为真返回1;比较为假返回0;其他返回false
2.比较运算符:

        等于:= ;<=>:安全等于

        不等于: <> != :这两个都是null
        大于/小于:< <= >= >
        若都是都是字符串,按照ansi比较规则进行比较
3.只要有null参与比较,结果就为null
4.ISNULL为函数;IS NULL为比较运算符

SELECT salary
FROM emps
WHERE pct IS NULL;SELECT salary
FROM emps
WHERE ISNULL(pct) 

6.between条件一 and条件二
条件一要小于条件二

闭区间

SELECT emp_id
FROM emps
WHERE salary BETWEEN 6000 AND 8000

7.LIKE:模糊查询
% :代表不确定个数的字符
_ :代表一个不确定的字符

SELECT last_name
From emps
WHERE last_name LIKE '%a%'SELECT last_name
From emps
WHERE last_name LIKE '_a%'


8.REGEXP 、 RLIKE:正则表达式

SELECT 'start' REGEXP 'ar'
FROM DUAL;

3.逻辑运算符

 注意:and的优先级是高于or的

4.位运算符

一定范围内,每左移一位,乘以2;每右移一位,除以2

 

第四章 排序与分页

1.基本排序

        如果没有使用排序操作,默认情况下查询的数据是按照添加数据的顺序显示

2.使用order by对数据排序

1.升序:ASC(ascend)

SELECT emp_id 
FROM emps
ORDER BY salary ASC;

2.降序:DESC(descend)

SELECT emp_id 
FROM emps
ORDER BY salary DESC;

3.order by后没有指明排序方式,则升序

4.列的别名只能在order by中使用

SELECT emp_id empId
FROM emps
ORDER BY empId;

5.二级排序

SELECT emp_id 
FROM emps
ORDER BY salary DESC,dept_id ASC;

6.where需要声明在from后面,order by前

3.分页

1.在mysql中使用limit实现数据的分页显示limit 数据偏移量 条目数

2.每页显示pagesize条记录,此时显示第pagenumber页:公式:limit (pagenumber-1)*pagesize,pagesize

#每页显示20条记录,此时显示第2页
SELECT emp_id,last_name
From emps
LIMIT 20,20;

4.where、order by、limit声明顺序

SELECT emp_id
FROM emps
WHERE salary > 100
ORDER BY salary DESC
LiMIT 10,10;

5.mysql新特性:offset

#表中100条数据,显示第32与第33条数据
SELECT emp_id
FROM emps
LIMIT 31,2;#使用OFFSET来实现
SELECT emp_id
FROM emps
LIMIT 2 OFFSET 31;

6.注意

        LIMIT只能在MYSQL、SQLite、PGSQL中使用;

        在SQL SErver、DB2、Oracle中无法使用


http://www.ppmy.cn/news/721157.html

相关文章

mapbox 样式

mapbox 样式 styles1. 矢量瓦片加载(VectorSource)2. 栅格瓦片加载(RasterSource)3. 改变地图语种(Language)4. 隐藏显示图层(Visibility)5. 地图上加载图片(ImageSource)6. 时间推移效果 styles 1. 矢量瓦片加载(VectorSource) VectorSourceActivity style.addSource(new Ve…

初入灵狐

不想呆在学校实操&#xff0c;交了申请表&#xff0c;跑到先前面试好的广州市灵狐软件公司见习&#xff0c;想提前接触企业&#xff0c;好为将来就业做准备。 直至今天&#xff0c;到去灵狐上班应该有5天了&#xff0c;与其说上班&#xff0c;不如说去受培训&#xff0c;每天早…

降本增效这九个月,爱奇艺从“穿越火线”,到“冷静增长”

在互联网行业一致宣称降本、提质、增效的小周期里&#xff0c;爱奇艺已经把这个趋势彻底吃透&#xff0c;展现出成熟的一面。 11月22日美股盘前&#xff0c;爱奇艺发布了2022年第三季度业绩&#xff0c;连续三个季度运营盈利&#xff0c;而且当季净增会员数超千万&#xff0c;…

《穿越火线》几次体验良好的游戏优化方案

文章目录 介绍救世主模式终结者模式30人生化模式挑战模式英雄级武器源武器英雄级武器皮肤英雄级武器游戏玩偶英雄级武器万化包、光效英雄级武器强化英雄级武器音效卡免费获取挑战强化武器戒指击杀效果个人竞技击杀效果人机训练模式交易所火线币快速加入跳跳乐爆头战HS间谍模式地…

前端vue入门(纯代码)20

总以为自己还很年轻&#xff0c;却忽略了岁月的脚步&#xff0c;当身边的一道道风景变成了回忆&#xff0c;才忽然发现&#xff0c;风景依然在&#xff0c;而人已非少年。&#xff01;&#xff01;&#xff01; 【22.求和案例--纯Vue版本】 太简单了&#xff0c;直接上代码案…

对比学习论文-系列4

文章目录 MedCLIP: Contrastive Learning from Unpaired Medical Images and Text目标问题来源模型架构 Supervised Prototypical Contrastive Learning for Emotion Recognition in ConversationPrototypical Contrastive LearningCurriculum Strategy&#xff1a; KECP: Know…

删除目录的页码

删除目录的页码 第一步 在目录的最后插入“分隔符”-“下一页” 第二步 删除正文页码与上一节的链接 第三步 直接用删除键删除目录的页码

Word文档如何去掉最后一页的页码且不会影响其它页的页码

步骤&#xff1a; 1.在最后一页页脚处双击编辑页脚 2.选中最后一页的页码 3.点击设计&#xff0c;单击取消链接到前一页页眉 4.Backspace/Delete去掉最后一页的页码即可