首页 > 编程语言 >JavaWeb学习笔记——第六天

JavaWeb学习笔记——第六天

时间:2024-03-27 13:35:52浏览次数:33  
标签:JavaWeb mysql 数据库 MySQL 笔记 第六天 表名 数据 字段名

MySQL(一)

数据库概述

  • 数据库即DataBase(DB),是存储和管理数据的仓库。
  • 数据库管理系统即DataBase Management System (DBMS),是操纵和管理数据库的大型软件。
  • SQL即Structured Query Language,是操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

常见的数据库产品

数据库 说明
Oracle 收费的大型数据库,Oracle公司的产品。
MySQL 开源免费的中小型数据库。Sun公司收购了MySQL,Oracle又收购了Sun公司
SQL Server MicroSoft公司收费的中型的数据库。C#、.net等语言常使用
PostgreSQL 开源免费中小型的数据库。
DB2 IBM公司的大型收费数据库产品
SQLite 嵌入式的微型数据库。如:作为Android内置数据库
MariaDB 开源免费的中小型的数据库

MySQL概述

安装、配置、卸载

安装

  1. 官网下载压缩包:https://dev.mysql.com/downloads/mysql/
  2. 解压。

配置

  1. 添加环境变量:右键此电脑→属性→高级系统设置→环境变量→在系统变量中新建MYSQL_HOME,变量值设置为MySQL的根目录→在系统变量中找到并双击Path→新建→输入%MYSQL_HOME%\bin→确定。
  2. 验证环境变量添加是否成功:在命令行中输入mysql,如果输出Can't connect to MySQL server on 'localhost:3306'则证明添加成功。
  3. 初始化MySQL:以管理员身份运行命令行窗口,并输入如下的指令:
mysqld --initialize-insecure
  1. 注册MySQL服务:以管理员身份运行命令行窗口,并输入如下的指令:
mysqld -install
  1. 启动MySQL服务:在命令行中输入net start mysql即可。
net start mysql //启动mysql服务
    
net stop mysql //停止mysql服务
  1. 修改默认账户密码:在命令行中输入以下的指令:
mysqladmin -u 想设置的用户名 password 想设置的密码

登录MySQL

在命令行中输入以下指令:

mysql -u用户名 -p密码 [-h要连接的mysql服务器的ip地址(默认本地IP:127.0.0.1) -P端口号(默认3306)]

退出mysql的指令:

exit
quit

卸载MySQL

  1. 点击开始菜单,输入cmd,选择 "命令提示符",选择右侧的 "以管理员身份运行"。
  2. 输入net stop mysql,回车。
  3. 再输入mysqld -remove mysql,回车。
  4. 最后删除MySQL目录及相关的环境变量。

数据模型

关系型数据库(RDBMS)

建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

特点
  • 使用表存储数据,格式统一,便于管理和维护。
  • 使用SQL语言操作,标准统一,使用方便,可用于复杂查询。

MySQL的数据模型

  • MySQL程序运行在MySQL数据服务器上,它内置了一个DBMS(数据库管理系统)。
  • 客户端通过网络连接上MySQL服务器,并使用SQL语句来操控数据库。
  • 可以在MySQL服务器上创建多个独立的数据库,这些数据库在MySQL服务器上以文件夹的形式存在。
  • 可以在数据库中创建多张二维表,这些二维表在MySQL服务器上以文件的形式存在。

SQL简介

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

SQL的通用语法

  • SQL语句可以单行或多行书写,以分号结尾。
  • SQL语句可以使用空格/缩进来增强语句的可读性。
  • MySQL数据库的SQL语句不区分大小写。
  • 注释:
    • 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
    • 多行注释: /* 注释内容 */

SQL的分类

SQL语句通常被分为四大类:

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段)
DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限

数据库定义-DDL

数据库

查询

  • 查询所有数据库:
show databases;
  • 查询当前数据库:
select database();

创建

  • 创建数据库:
create database [ if  not  exists ] 数据库名;

使用

  • 使用数据库:
use 数据库名;

删除

  • 删除数据库:
drop database [ if exists ] 数据库名;

注意事项

  • 上述语法中的database,也可以替换成schema。

DataGrip

  • 介绍:DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL的理想解决方案。
  • 官网: https://www.jetbrains.com/zh-cn/datagrip/
  • DataGrip已经集成到了Intellij IDEA中。

表(创建、查询、修改、删除)

创建

create table  表名(
	字段1 字段类型 [ 约束 ] [ comment 字段1注释 ] ,
	......
	字段n 字段类型 [ 约束 ] [ comment 字段n注释 ] 
) [ comment 表注释 ] ;
约束
  • 约束是作用于表中字段上的规则,用于限制存储在表中的数据。
  • 作用:保证数据库中数据的正确性、有效性和完整性。
约束 描述 关键字
非空约束 限制该字段值不能为null not null
唯一约束 保证字段的所有数据都是唯一、不重复的 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key(可以添加auto_increment:自增)
默认约束 保存数据时,如果未指定该字段值,则采用默认值 default
外键约束 让两张表的数据建立连接,保证数据的一致性和完整性 foreign key

数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型
类型 大小(byte) 有符号(SIGNED)范围 无符号(UNSIGNED)范围 描述
tinyint 1 (-128,127) (0,255) 小整数值
smallint 2 (-32768,32767) (0,65535) 大整数值
mediumint 3 (-8388608,8388607) (0,16777215) 大整数值
int 4 (-2147483648,2147483647) (0,4294967295) 大整数值
bigint 8 (-263,263-1) (0,2^64-1) 极大整数值
float 4 (-3.402823466 E+38,3.402823466351 E+38) 0 和 (1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
double 8 (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) 双精度浮点数值
decimal 小数值(精度更高)
  • 默认有符号,如果需要使用无符号需要在类型后指定,如:tinyint unsigned
  • 在使用小数时,需要指定数字的长度:float(a, b),a表示整个数字长度,b表示小数位个数。
字符串类型
类型 大小 描述
char 0-255 bytes 定长字符串
varchar 0-65535 bytes 变长字符串
tinyblob 0-255 bytes 不超过255个字符的二进制数据
tinytext 0-255 bytes 短文本字符串
blob 0-65 535 bytes 二进制形式的长文本数据
text 0-65 535 bytes 长文本数据
mediumblob 0-16 777 215 bytes 二进制形式的中等长度文本数据
mediumtext 0-16 777 215 bytes 中等长度文本数据
longblob 0-4 294 967 295 bytes 二进制形式的极大文本数据
longtext 0-4 294 967 295 bytes 极大文本数据
  • char和varchar的比较:char性能较高但比较浪费空间;varchar性能较差但更节省空间。
日期时间类型
类型 大小(byte) 范围 格式 描述
date 3 1000-01-01 至 9999-12-31 YYYY-MM-DD 日期值
time 3 -838:59:59 至 838:59:59 HH:MM:SS 时间值或持续时间
year 1 1901 至 2155 YYYY 年份值
datetime 8 1000-01-01 00:00:00 至 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
timestamp 4 1970-01-01 00:00:01 至 2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

查询

  • 查询当前数据库所有表:
show tables;
  • 查询表结构:
desc 表名;
  • 查询建表语句:
show create table 表名;

修改

  • 添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
  • 修改字段类型:
alter table 表名 modify 字段名 新数据类型(长度);
  • 修改字段名和字段类型:
alter table 表名 change 旧字段名 新字段名 类型 (长度) [comment 注释] [约束];
  • 删除字段:
alter table 表名 drop column 字段名;
  • 修改表名:
rename table 表名 to 新表名;

删除

  • 删除表:
drop table [ if exists ] 表名;
注意事项
  • 在删除表时,表中的全部数据也会被删除。

数据库操作-DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

添加数据(INSERT)

  • 指定字段添加数据:
insert into 表名 (字段名1, 字段名2) values (值1, 值2);
  • 全部字段添加数据:
insert into 表名 values (值1, 值2, ...);
  • 批量添加数据(指定字段):
insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);
  • 批量添加数据(全部字段):
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);

注意事项

  • 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
  • 字符串和日期型数据应该包含在引号中。
  • 插入的数据大小,应该在字段的规定范围内。
  • 调用now()函数可以获取当前系统时间。
  • 添加数据时需要添加创建时间和修改时间。

修改数据(UPDATE)

  • 修改数据:
update 表名 set 字段名1 = 值1, 字段名2 = 值2, .... [ where 条件 ];

注意事项

  • 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
  • 修改数据时需要修改修改时间。

删除数据(DELETE)

  • 删除数据:
delete from 表名 [ where 条件 ];

注意事项

  • DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • DELETE 语句不能删除某一个字段的值(如果要操作,可以使用UPDATE,将该字段的值置为NULL)。

标签:JavaWeb,mysql,数据库,MySQL,笔记,第六天,表名,数据,字段名
From: https://www.cnblogs.com/zgg1h/p/18098929

相关文章

  • 嵌入式笔记1.2 ARM Cortex-M3M4汇编指令集
    目录Cortex-M处理器的指令集Cortex-M处理器支持的指令集Cortex-M处理器指令集的选择寄存器组详解1.通用寄存器R0~R122.栈指针3.连接寄存器4.程序计数寄存器5.程序状态字寄存器(xPSR)6.特殊功能寄存器7.浮点控制寄存器指令集详解(Cortex-M3和Cortex-M4都支持的)1.处理......
  • 嵌入式笔记1.1 ARM Cortex-M3M4简介
    目录微型计算机的硬件共性结构及基本性能指标关于存储器的介绍微型计算机的基本性能指标1.字长2.主频3.存储容量4.外设扩展能力5.软件配置情况ArmCortex系列微处理器系列概述ArmCortex-A系列处理器ArmCortex-R系列处理器ArmCortex-M系列处理器Cortex-M3和Cortex-M......
  • pandas笔记(五)-- 部门工资最高的员工(数据表的合并与分组)
    题目描述输入employee表和department表,查询部门工资最高的员工,按任意顺序返回结果表测试用例employee表:idnamesalarydepartmentId1Joe7000012Jim9000013Henry8000024Sam6000025Max900001department表:idname1IT......
  • webpack 入门笔记1
    webpack是一个综合性平台1为npm环境-packjson->依赖->依赖的编译器环境bale-->esj->程序.构建一个综合平台。2开发目录到生产目录;3打包优化将上百个依赖整合为若干chunk.提升下载速度.综合总线打通步骤1(node环境已下载)建立npm环境-与本地的链接npminit指令......
  • Python接口自动化测试的学习笔记9——logging日志
    1、引言在进行Python接口自动化测试时,日志记录是一项至关重要的任务,它可以帮助开发者追踪测试过程中的详细信息,包括请求与响应数据、错误消息、调试信息等,从而有效地定位问题并提高测试效率。下面,我们将探讨如何在Python接口自动化测试项目中构建和配置一个强大的日志记录系统......
  • 鱼书笔记
    第一章Python入门第二章感知机感知器是什么感知机接收多个输入信号,输出一个信号。感知机的信号只有“流/不流”(1/0)两种取值,0对应“不传递信号”,1对应“传递信号”简单逻辑电路与门与门仅在两个输入均为1时输出1,其他时候则输出0。与非门和或门与非门就是颠倒了与门的......
  • 笔记-《A Survey of Large Language Models》- 4 预训练
    4预训练预训练为LLM的能力奠定了基础。通过在大规模语料库上进行预训练,LLM可以获得基本的语言理解和生成能力[55,56]。在这个过程中,预训练语料库的规模和质量对于LLM获得强大的能力至关重要。此外,为了有效地预训练LLM,也需要设计好模型架构、加速......
  • HTML学习笔记5——功能性链接(打电话发邮箱)
    可以跳转至发邮箱打电话等的链接,在vscode中写完代码后右击选择OpenwithliveServer用服务器打开。这篇文章主要介绍发邮箱和用手机打电话。<--都写在body中--><--邮箱格式--><ahref="mailto:[email protected]">邮箱</a><--打电话格式--><ahref="tel:176xxxxxxxx......
  • 笔记软件Typora的安装与相关事项
    笔记软件Typora的安装与相关事项【一】Typora软件介绍Typora是一款简洁而强大的Markdown编辑器。它提供实时预览功能,让用户可以即时查看文档的渲染效果。Typora采用所见即所得的编辑模式,没有繁杂的标记符号,用户可以专注于写作而不必分心处理格式。此外,Typora还支持数学公式、表......
  • docker-运行JavaWeb服务(jar包)
    环境说明linux系统版本:lsb_release-adocker版本:docker-v 不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。 查看docker中mysql的版本,可以去官网,需要kx上网才能打开。https://hub.docker.com/ 最好是确认自己的服务器已经设置阿里云的镜......