代码编织梦想

数据库概述

数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘上,就是一个存储数据的仓库。

● 数据库的相关概念 DB:数据库(DataBase) 存储数据的容器,它保存了一系列有组织的数据。

DBMS:数据库管理系统(DataBase Management System) 又称为数据库软件或数据库产品,用于创建或管理DB。

● 常见的数据库产品:

国外

MySQL 快捷、可靠 开源、免费 Oracle:功能强大,收费.

SQL Server(微软): 只能安装在Windows操作系统 DB2 (IBM):适合处理海量数据,收费.

国内

南大通用GBASE: 天津南大通用数据技术股份有限公司

达梦:武汉达梦数据库股份有限公司

人大金仓:北京人大金仓信息技术股份有限公司 神通:神舟通用公司

Mysql数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目 前属于 Oracle旗下产品。MySQL 流行的关系型数据库管理系统。

● MySql是一种关系数据库管理系统。

● MySql软件是一种开放源码软件,你可以修改源码来开发自己的 Mysql 系统。

● MySql数据库服务器具有快速、可靠和易于使用的特点。

● MySql使用标准的sql语言,并且支持多种操作系统,支持多种语言.

● mysql商业版与社区版

● MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用

● MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维 护,可以免费使用

●命令行方式连接mysql 登录:mysql [-hlocalhost -P3306](本机可省略) -uroot -p(可以直 接写密码,不能有空格)-h:主机名-P:端口号-u:用户名-p:密码 退出:exit

MySQL的常用命令 查看当前所有的数据库:show databases; 选择指定的库:use 库名 查看当前的所有表:show tables; 查看其他库的所有表:show tables from 库名; 查看mysql版本 select version();

安装可视化客户端工具 SQLyog / Navicat

sql

● 结构化查询语言(Structured Query Language)简称SQL,是一种特殊 目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以 及查询、更新和管理关系数据库系统. SQL优点: 不是某个特定数据库供应商专有的语是言,几乎所有DBMS都支持SQL 简单易学,灵活使用可以进行非常复杂和高级的数据库操作

DDL数据(结构)定义语言(Data Definition Language)

●数据(结构)定义语言DDL(Data Definition Language),是用于创 建和修改数据库表结构的语言。 ●常用的语句:create ,alter,drop,rename

数据库

创建数据库

CREATE DATEBASE [if not exists] 数据库名[CHARSET utf8]

删除数据库

DROP DATEBASE 数据库名[IF EXISTS 数据库名]

修改字符集

ALTER DATABASE 数据库名 CHARSET gbk

设计表

对于具体的某一个表,在创建之前,需要确定特征:

1.表名(表信息) ---学生信息表

2.表中的字段(列)---姓名 学号 性别

3.字段的数据类型和长度

4.约束

数据类型:

char(n) 长度为n的定长字符串,最大长度255个字符,固定存储为n个字符,长度如果不够n,默认补空格。

varchar(n) 最大长度为n的可变长字符串 ,n是最大长度,如果存储不够n,则存多少字符占有多少空间位置。

date 日期, 包含年月日

datetime 年月日 时分秒

浮点

decimal 数据类型(M,D)

M:精度,数据的总长度;

D:标度,小数点后的长度

删除表

DROP TABLE [if exists] 表名

修改表名

RENAME TABLE 旧表名 TO 新表名

复制表结构

CREATE TABLE 新报名 LIKE 被复制表名

约束

PRIMARY KEY 设置主键约束 添加主键约束后,值不能重复,一个表中只能有一个列是主键 。主键列可以唯一的表示某一行数据,mysql中主键可以设置为自动增长 AUTO_INCREMENT,只能为整数类型。

NOT NULL 不能为空约束

UNIQUE 唯一性约束 表示不能重复

检查约束 设置条件 CHECK(条件)

注释

COMMENT ‘注释内容'

数据操纵语言DML(Data Manipulation Language)

插入数据

方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n);

方式2: INSERT INTO 表名 set 列名1=值1,..列名n=值n;

方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n),(值1,值2…..,值n);

方式4:INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配)

修改数据

UPDATE 表名 SET 列名 = ‘新值’WHERE 条件

修改表 alter table 表名 add 列名 数据类型

删除数据

DELETE FROM 表名 WHERE 条件

TRUNCATE TABLE 表名;清空整张表

DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作, 可以从一个表中查询数据,也可以从多个表中查询数据

查询数据

select 查询列表 from 表名

查询列表可以是:表中的字段、常量、表达式、函数

查询的结果是一个虚拟的表格

特定列查询:select column1,column2 from table

全部列查询: select * from table

算数运算符:+ - * /

排除重复行: select distinct column1,column2 from table

查询函数:select 函数; / 例如version()

逻辑处理

case when 条件 then 结果1 else 结果2 end; 可以有多个when

ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回 原本的值

if函数:if else的 效果 if(条件,结果1,结果2)

数学函数

round(数值):四舍五入

ceil(数值):向上取整,返回>=该参数的最小整数

floor(数值):向下取整,返回<=该参数的最大整数

truncate(数值,保留小数的位数):截断,小数点后截断到几位

mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负

rand():获取随机数,返回0-1之间的小数

日期函数

now():返回当前系统日期+时间 年月日时分秒

curdate():返回当前系统日期,不包含时间 年月日

curtime():返回当前时间,不包含日期 时分秒

可以获取指定的部分,年、月、日、小时、分钟、秒

YEAR(日期列), year(日期) 将日期格式化为年

MONTH(日期列),

DAY(日期列) ,

HOUR(日期列) ,

MINUTE(日期列)

SECOND(日期列)

str_to_date(字符串格式日期,格式):将日期格式的字符转换成指定格式的日期

date_format(日期列,格式):将日期转换成字符串

datediff(big,small):返回两个日期相差的天数 big-small

日期格式

分组函数

功能:用作统计使用,又称为聚合函数或统计函数或组函数 

分类:sum 求和、avg 平均值、max 最大值、min 最小值、count 计数 (非空)

1.sum,avg一般用于处理数值型max,min,count可以处理任何类型 2.以上分组函数都忽略null值 

3.count函数的一般使用count(*)用作统计行数 

4.和分组函数一同查询的字段要求是group by后的字段

## 条件查询 

使用WHERE 子句,将不满足条件的行过滤掉,WHERE 子句紧随 FROM 子句。

语法:

select <结果> from <表名> where <条件>

 比较

​           =,  != 或<>,  >,  <,  >=,  <=

 逻辑运算    

and    与     

or     或    

not    非

模糊查询

 LIKE :是否匹配于一个模式 一般和通配符搭配使用,可以判断字符型数值 或数值型.

通配符: % 任意多个字符  

between and 两者之间,包含临界值;

 in  判断某字段的值是否属于in列表中的某一项  not in()不满足其中的

 IS NULL(为空的)或 IS NOT NULL(不为空的)  查询身高为null的值或不为null的值

1.UNION 的语法如下:

 [SQL 语句 1]

 UNION

 [SQL 语句 2]

合并时列数必须相等  会自动过滤重复的数据

 2.UNION ALL 的语法如下:

 [SQL 语句 1]

 UNION ALL 

[SQL 语句 2]

当使用union  时,mysql 会把结果集中重复的记录删掉,而使用union  all , mysql 会把所有的记录返回,且效率高于union 。

排序         

查询结果排序,使用 ORDER BY 子句排序    order by 排序列  ASC/DESC                

asc代表的是升序,desc代表的是降序,如果不写,默认是升序            

order by子句中可以支持单个字段、多个字段

数量限制           

limit子句:对查询的显示结果限制数目  (sql语句最末尾位置)            

 SELECT * FROM table  LIMIT offset rows;              

SELECT * from table  LIMIT 0,5

limit 开始查询的位置,每次查询的个数

从第零个数据开始查询 查询五个数据

分组查询 语法:

 select 分组函数,列(要求出现在group by的后面) from 表 [where 筛选条件] group by 分组的列表 [having 分组后的筛选] [order by 子句]

注意:查询列表比较特殊,要求是分组函数和group by后出现的字段 分组查询中的筛选条件分为两类:

数据库设计范式(数据库设计规则)

如何将多个信息合理的进行组织

设计三范式

1.第一范式(确保每列保持原子性)

第一范式就是最基本的范式。数据库表中的所有字段值都是不可分解的原子值。

2.第二范式(要有主键,要求其他字段都依赖于主键,能唯一的表示某条记录的列,有些表中可以没有主键)

3.第三范式:确保每列都和主键列直接相关,而不是间接相关,要求一个数据库表中不包含已在其他表中包含的非主关键字信息(一张表中存储一类信息,在一张表中关联其他表中的数据时,只需要关联主键列即可。)

外键

外键:与另一个表的主键关联

外键约束

1.不加外键约束

可以任意的对表数据进行操作,即使两个表中的数据对应不上也没有问题

2.添加外键约束

alter table 表名1 add constraint fk_表名1_表名2 foreign key(表名1的相关列名) references 表名2(相关列名)

添加外键约束后,两张表操作时,不能导致外键和主键对应关系不成立

删除外键

alter table 表名 drop foreign key 约束名

关联查询

多表关联在一起查询

关联时没有任何的限制,会产生笛卡尔乘积现象

内关联

左外关联

右外关联

group_concat() 在多对多的情况下,可以将同一组中的多个名字连接起来

子查询

出现在其他语句中的select语句,称为子查询或内查询;外部的查询语句,称为主查询或外查询

分类:

按子查询出现的位置:

from后面:支持表子查询 把子查询的结果当做另一个表的数据来源

where:支持标量子查询,列子查询

按功能、结果集的行列数不同:

标量子查询(结果集只有一行一列)

列子查询(结果集只有一列多行)

表子查询(结果集一般为多行多列)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2301_78085386/article/details/138826054

mysql数据库的基础操作_吃点橘子的博客-爱代码爱编程

目录 一、数据库的基础操作 1、创建数据库 2、显示数据库 3、使用数据库 4、删除数据库 二、常用数据类型 1、数值类型: 2、字符串类型: 3、日期类型: 三、表的基础操作 1、创建表 2、显示表 3、查看表结构 4、删除表 四、表的增删改查(基础) 1、新增数据 (1) 单行数据全列插入: (2) 单行数据指定列插

mysql数据库基础语句_aka|布鲁克林欧神仙的博客-爱代码爱编程

目录 一,常用的数据类型 二,数据库管理 1,Mysql基础语句操作 1.1,更改密码,登录数据库  1,2查看数据库结构  1.3:查看表结构  2, DDL语句:定义数据中的操作 2.1 创建数据库和表—create  2.2删除数据库和表-drop  3,DML语句:管理表中的数据记录 3.1 插入数据-insert  操作实

mysql数据库基础_mysql -爱代码爱编程

文章目录 MySQL数据库基础数据库的概念主流数据库基本使用连接服务器服务器管理数据库服务器,数据库,表关系使用案例数据逻辑存储 MySQL架构SQL分类存储引擎存储引擎查看存储引擎存储引擎对比

spring-爱代码爱编程

1. 微服务架构 1.1 单体应用架构---内部项目【OA WMS等】 将项目所有模块(功能)打成jar或者war,然后部署一个进程 优点: 1:部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。 2:技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发(ssm+数据库)。 缺点:

mongodb聚合运算符:$zip-爱代码爱编程

MongoDB聚合运算符:$zip 文章目录 MongoDB聚合运算符:$zip语法使用举例矩阵转置过滤并保留索引 $zip用于将输入数组的元素重新组合转换为新的数组,重组转换的的规则

【golang】 mysql 在 go 语言驱动程序中常用参数-爱代码爱编程

文章目录 前言一、参数解释二、代码实现四、总结 前言 在 Go 语言中,我们使用数据库驱动程序来连接和操作数据库。对于 MySQL,我们通常使用 go-sql-driver/mysql 驱动程序

unity 编辑器assetdatabase用法详解-爱代码爱编程

文章目录 简介API 简介 AssetDatabase 类,在Unity 编辑器扩展中,是一个非常常用的类。 是对资源的管理,可以创建,查找,删除,等常用功能,一般在工具类里用的比较多,比如批量修改

python学习-爱代码爱编程

核心代码 # 导入pandas库 import pandas as pd # 导入正则表达式包 import re # 指定Excel文件的路径,这个data.xlsx表为原始表,表内有40个sheet子表 file_p

生产报表工具pi datalink 与 行列视之间的区别-爱代码爱编程

PI DataLInk 是剑维PI SYStem中的一个报表工具,安装在Excel中,作为一个插件提供数据定义和采集服务,顾名思义,PI-DataLink是PI 实时数据库独有的报表工具,这也限定了她的应用范围,随着国产化的开展,也许对于这款报表工具其应用空间会进一步压缩。 行列视,全名“行列视生产数据应用系统”,行列视品牌所面对的业务范围远远超越了PI

mysql存储过程添加二十万条数据日常练习-爱代码爱编程

1.DDL CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, createDate DATE NOT NULL, userName VARCHAR(50) NOT NULL, phone VARCHAR(15), age INT, sex C

mysql事务(原理)-爱代码爱编程

事务原理 原子性,一致性,持久性基于redo log 和 undo log 隔离性:锁+MVCC redo log 重做日志,记录的是事务提交时数据页的物理修改,是用来实现事物的持久性. 该日志文件由两部分组成:重

oracle表空间管理-爱代码爱编程

表空间管理是DBA的工作重点之一,所以本节也会用较大的篇幅来阐述数据库表空间相关的重要知识点和注意事项。 区管理和段管理 在日常维护中和表空间管理相关的主要视图如下所示。 视图 描述 V$TABLESPACE Name a