当前位置: 首页 > news >正文

MySQL零基础学习Day2——数据库基础操作

前言

在大学已经上过数据库课程的同学可以直接跳过这个,去看后续我会发的函数部分,因为Java中一般不需要你把数据库学的很牛,学会基本的crud,也就是我们平常在说的增删改查,再加上一些窗口函数即可。

一.MySQL数据库

1.关系型数据库(RDBMS)

含义:建立在关系模型基础上,由多张互相来连接的二维表组成的数据库 ,即通过表结构来进行数据存储。

特点:

使用表存储数据,格式统一,便于维护

使用SQL语言操作,标准统一,使用方便

注:不通过表结构来存储数据的,则称为非关系型数据库

2.数据模型

二.SQL

1.SQL通用语法

SQL语句可以单行or多行书写,以分号结尾

SQL语句可以使用空格/缩进来增强语句的可读性

MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

注释:

单行注释:--注释内容 or #注释内容(MySQL持有)

多行注释:/*注释内容*/

2.SQL的分类

 

1)DDL(数据定义语言)

数据类型汇总

注意:在删除表的同时,表中的全部数据也会被全部删除

2)DML(数据操作语言)

注意:

插入数据时,指定的字段顺序需要与值的顺序是一一对应的

字符串和日期型数据应该包含在引号中

插入的数据大小,应该在字段的规定范围内

注:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的数据

注意:

DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的数据

DELETE语句不能删除某一个字段的值(可以使用UPDATE)

3)DQL(数据查询语言)

-- 查询年龄等于18或20或40的员工信息
select * from emp where age = 18 or age = 20 or age = 40;
select * from emp where age in(18,20,40);
--上述这两种效果是一样的,in的效果就是后续值能够满足其一即可

注:null值不参与所有聚合函数运算

where和having的区别

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
  • 判断条件不同:where不能对聚合函数进行判断;而having可以

注意:

  • 执行顺序:where>聚合函数>having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

排序方式

  • ASC:升序(默认值)
  • DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

-- 根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行升序排序
select * from emp order by age asc,entrydate desc;
--意思就是先按照年龄进行排序,如果年龄相同,则按照入职时间排序

注意:

  • 起始索引从0开始,起始索引 = (查询页码-1)*每页显示记录数
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMTIT
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10

4)DCL(数据控制语言)

-- 创建用户itcast,只能够在为当前主机localhost访问,密码123456;
creat user 'itcast'@'localhost' identified by '123456';--创建用户heima,可以在任意主机访问该数据库,密码123456;
creat user 'heima'@'%' identified by '123456';--修改用户heima 的访问密码1234;
alter user 'heima'@'%' identified with mysql_native_password by '1234';--删除itcast@localhost用户
drop user 'itcast'@'localhost';

注意:

主机名可以使用“%”进行通配,代表任意主机都可以访问该mysql服务器

这类SQL语句开发人员操作较少,主要是DBA(数据库管理员)和运维在更多使用

所以如果是单纯进行开发,则这类语句不用重点学习

注:如果是给所有的数据库和所有的表来赋予权限,就可以在数据库名.表名写" *.* ",此外多个权限之间,使用逗号分隔

http://www.dtcms.com/a/395758.html

相关文章:

  • 数学笔试选择题:题组1
  • Linux常用命令51——tail查看文件尾部内容
  • Django多数据库配置:mysql、mongo、redis、达梦
  • 图像拼接(反向拼接巨难,求指教!)
  • [免费]基于Python的深度学习音乐推荐系统(后端Django)【论文+源码+SQL脚本】
  • 南华 NHL-1 型加载减速工况法轻型柴油车烟度检测系统:技术解析与实战指南
  • 学习Java遇到的一些问题
  • 基于SpringBoot招聘信息管理系统
  • 多线程—线程通信之notifyAll()/wait()方法Demo
  • kotlin 常用函数
  • 2025年CSP-J1入门级初赛题解
  • vue3的基本指令以及对js的导入和导出
  • Linux 基础:关机与重启
  • React Native:分享Windows平台搭建react native并构建apk的操作流程和配置信息
  • EC24026露营灯警示灯芯片方案 报警声语音IC 单片机方案开发
  • 反量化的详细过程
  • C语言:实现3x3矩阵对角线求和
  • [Maven 基础课程]Maven 工程继承和聚合
  • 数据库--存储过程
  • mysql默认事务隔离级别下并发读不到最新数据解决方案
  • M3U8通用下载器
  • Vue动态组件详细用法指南
  • C#练习题——委托练习
  • 【TS4】简单的typescript练手项目
  • 前端学习手册-JavaScript函数与回调(十一)
  • Unity小游戏接入抖音敏感词检测
  • 【2025最新】01 Spring Boot 第一个小程序 for VS Code - 通过 Spring Initializr 网站创建
  • 算法面试(3)------YOLO 的核心思想是什么?YOLOv1 到 v8 的演进路线?
  • docker 部署gitlib
  • SpringBoot3.5.5版本大坑