JavaWeb之数据库的操作(MySQL)

本文详细介绍了如何在JavaWeb中操作MySQL数据库,包括数据库存储、关系型数据库概念、四大默认库、DDL语句(如创建、查看、修改、删除表)、DML语句(增删改查)、数据类型、查询语句、数据库约束(非空、唯一、主键、自增)、外键约束、级联操作、备份与还原、多表查询以及事务处理。内容涵盖数据库的基本操作和高级特性,是JavaWeb开发者学习MySQL的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据存储

集合
数组

容器----->使用完毕就不存在了集合对象/数组—被回收!
IO流
字节流/字符流 将数据存储到配置文件/xxx.txt文件中 ,效率低(耗时)

在计算机上–按照数据库软件

关系型数据库

		SQLServer,Oracle,db2,Mysql(开源,小型化)

非关型数据库

		典型代表:mangodb/redis(key-value形式)---(缓存一些数据)

验证是否安装完毕(登录成功,说明mysql的环境变量也配置了)
C:\Users>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.5.40 MySQL Community Server (GPL)

Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

DDL语句:数据库的定义:对数据库以及表的操作

四个:mysql默认带的四个库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   相关配置信息库
| mysql              |   存储相关表:user 用户表(管理员)
| performance_schema |   mysql性能相关的
| test               |   测试的库
+--------------------+
4 rows in set (0.00 sec)

– 创建数据库

create  database 数据库名;
mysql> create database mydb_01;
Query OK, 1 row affected (0.01 sec)

– 方式2: create database if not exists 数据库名; 如果不存在这个库,创建一个新的

mysql> create database if not exists my_db02; 
Query OK, 1 row affected (0.02 sec)

– 查看数据库的信息 (数据库名,以及数据库的默认的编码格式)

mysql> show create database mydb_01;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| mydb_01  | CREATE DATABASE `mydb_01` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.01 sec)

– 修改数据库的这个编码格式gbk

alter databse 数据库名 DEFAULT(省略不写) CHARACTER set  gbk ;
mysql> alter database mydb_01 default character set gbk;
Query OK, 1 row affected (0.01 sec)

mysql> show create database mydb_01;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| mydb_01  | CREATE DATABASE `mydb_01` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

– 删除数据库

drop database 数据库名;
mysql> drop database my_db02;
Query OK, 0 rows affected (0.02 sec)

– 方式2

drop database if exists 数据库名; 如果存在,删除该库
mysql> drop database if exists mydb_02;
Query OK, 0 rows affected (0.00 sec)

– 修改库的字符集:创建数据库的时候直接修改了库的字符集

 create database if not exists 数据库名 default(不写) character set 字符集 ;
mysql> create database if not exists mydb_04 default character set gbk ;
Query OK, 1 row affected (0.01 sec)

DDL语句操作表

创建表

create table 表名(
字段名称1 字段类型1,
字段名称2 字段类型2,
字段名称3 字段类型3,

字段名称n 字段端类型n
);

常见字段类型:

varchar(m):m多少个字符-------------mysql字符串类型
int: 默认int(11):11位(记录实际字符) int(num):参数指定长度 mysql:整数类型
int(4) 1 ------>0001
double(5,2) mysql的小数类型 :表示小数5位,小数点后保留2位
时间:
date mysql的日期时间(仅仅是日期,不包含具体时间): 年月日 2020/11/5
datetime mysql的日期时间:是日期+具体时间 2020/11/5 时分秒…
timestamp(时间戳) 具体哪个时间操作的表 2020//11/15 16:16这个时间修改了表的字段

在创建表之前,先使用这个库
use 数据库名

mysql> use mydb_01;
Database changed

查询该库中的表

mysql> show tables;
Empty set (0.00 sec)

在mydb_01创建一个学生表
学生表 数据类型
姓名 varchar(3)
年龄 int
性别 varchar(2)
分数 double
出生日期 date

mysql> create table student(
    -> name varchar(3),
    -> age int,
    -> gender varchar(2),
    -> socre double(3,1),
    -> birthday date
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+-------------------+
| Tables_in_mydb_04 |
+-------------------+
| student           |
+-------------------+
1 row in set (0.00 sec)

— 查询表的结构
desc 表名;

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

– 修改表
– 给表中新增一列 (加入一个新的字段)

mysql> alter table student add address varchar(10);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| address  | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.04 sec)

– 修改表的数据类型

mysql> alter table student modify gender varchar(3);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(3)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
|
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值