JavaWeb学习笔记——第六天

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)。
posted @   zgg1h  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示