MySql基础知识及数据查询

目录

第一章 数据库概述

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.hqwc.cn/news/7738.html

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

相关文章

位图的详解

目录 位图 位图的概念 位图的实现 位图常见三道面试题 1.给定100亿个整数&#xff0c;设计算法找到只出现一次的整数&#xff1f; 2. 给两个文件&#xff0c;分别有100亿个整数&#xff0c;我们只有1G内存&#xff0c;如何找到两个文件交集&#xff1f; 3. 位图应用变形…

使用随便测测平台-做接口测试

目录 接口数据的来源 导出har文件 导入har文件 转化为用例 提取数据进行替换 如何选择哪些数据需要替换呢&#xff1f; Url Params、Data ​编辑进行替换操作 断言-冒烟 断言-详细 测试报告 结束 接口数据的来源 1、可通过charles工具&#xff0c;录制好接口操作&…

IDEA恢复误删除的文件

idea将删除的文件放在idea文件缓存中&#xff0c;文件的更改等信息都放在这个缓存中&#xff0c;所以短时间内删除的文件可以尝试恢复。

蚂蚁金服面试题解析:为什么String是HashMap中的绝佳Key类型?

大家好&#xff0c;我是小米&#xff0c;在今天的文章中&#xff0c;我将与大家一起探讨在使用HashMap时&#xff0c;选择使用String作为Key所带来的诸多好处。作为一位热爱技术的小伙伴&#xff0c;相信你一定对HashMap这个数据结构有所了解&#xff0c;那么&#xff0c;我们就…

【flutter滑动拼图验证码】

Java后台使用aj_captcha插件&#xff0c;提供/captcha/get&#xff08;获取captcha底图和拼块图片&#xff09;、/captcha/check&#xff08;验证拼图偏移量&#xff09;这两个接口。并且这个插件在GitHub上有源码。 1.先准备好aj_captcha的工具类&#xff1a; import dart:co…

【Spring/Java项目】如何利用swagger-parser解析yaml中的api请求类型、注释、接口名等等(含示例代码)

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/129167371 目录 前言 官方文档 项目配置 示例代码 测试文件 解析代码 运行结果 前言 用到这个工具是因为项目需要&#xff0…

Java9集合类新增功能

前言 Java8及Java9在集合Collection类中新增了一些很好用的新方法&#xff0c;能方便程序员更便捷的处理集合数据&#xff0c;本文对其中的一些方法进行总结 一. List 1.创建 // 传统方法List<String> list1 new ArrayList<>();list1.add("item1");li…

FPGA实验一:层次法设计组合电路(加法器)

目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 一、实验目的 &#xff08;1&#xff09;掌握基本组合逻辑电路的 FPGA实现&#xff1b; &#xff08;2&#xff09;学习 Verilo…

烂sql导致clickhouse集群memory_tracking直线飙升触发熔断

版 本 v e r s i o n 1 9 . 1 7 . 4 . 1 1 c l i c k h o u s e 集 群 &#xff0c; 主 要 存 日 志 数 据 与 监 控 数 据 。 架 构 为 4 台 主 机 1 2 个 实 例 数 &#xff0c; 数 据 为 单 副 本 。 近 日 &#xff0c; 该 c l i c k h o u s e 集 群 有 一 台 物…

Leetcode 数据库刷题记录

https://leetcode-cn.com/problemset/database/ 题目都是leetcode 上的可以点击题目会有相应的链接 每道题后面都应相应的难度等级&#xff0c;如果没时间做的话 可以在leetcode 按出题频率刷题&#xff0c;答案仅供参考 175. 组合两个表 难度简单 SQL架构 表1: Person ---…

深入理解什么是端口(port)

每当看到有人的简历上写着熟悉 TCP/IP, HTTP 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意… 所以这次就来谈谈 端口(port) , 这个熟悉的陌生人. 在此过程中, 还会谈谈 间接层, naming service 等概念, IoC, 依赖倒置 等原则以及 TCP …

服务器配置静态IP

服务器配置静态IP 一、前期准备二、配置静态IP 将服务器配置为使用静态IP地址。这将使服务器拥有一个永久的IP地址&#xff0c;而不会在每次启动时更改。为此&#xff0c;您需要编辑网络配置文件并将服务器的IP地址添加到其中。详细步骤如下&#xff1a; 一、前期准备 请在配置…