MySQL数据库
【狂神说Java】MySQL最新教程通俗易懂:https://www.bilibili.com/video/BV1NJ411J79W/
1 初识MySQL
1.1 介绍
1.学会写代码,学好数据库。
2.操作系统,数据结构与算法。
3.离散数学,数字电路,体系结构,编译原理。
1.2 什么是数据库
数据库(DB,DataBase),存储数据,管理数据
1.3 数据库分类
关系型SQL:
MySQL、Oracle、SqlServer、DB2、SQLlite
非关系型数据库NoSQL(Not Only SQL):
Redis、MongoDB
DBMS数据库管理系统
1.4 MySQL
MySQL:是一个关系型数据库管理系统,开源的数据库软件
1.5 安装MySQL:
下载绿色版
mysqld -install
mysqld --initialize-insecure --user=mysql
net start mysql
mysql -u root -p
update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost';
flush privileges;
net stop mysql
启动停止MySQL服务:
net start mysql
mysql -u root -p
net stop mysql
创建数据库和表(SQLyog):
创建数据库,基字符集utf8,数据库排序规则utf8_general_ci
创建表,引擎InnoDB,符集utf8,核对utf8_general_ci
9 规范数据库设计
9.1 为什么需要设计
9.2 数据库的三大范式
第一范式:原子性,保证每一列不可再分
第二范式:前提满足第一范式,每张表只描述一件事情
第三范式:前提满足第一范式和第二范式,确保数据表中每一列数据都和主键直接相关,而不能间接相关。
规范性和性能的问题:(关联查询的表不得超过三张表)
考虑商业化需求和目标,数据库的性能更重要
在性能问题的时候,需要适当考虑一下规范性
故意给某些表增加一些冗余的字段,从多表查询变为单表查询
故意增加一些计算列,从大数据量降低为小数据量的查询,索引
10 JDBC(重点)
JDBC(Java Database Connectivity):Java操作数据库的规范,这些规范的实现由具体的厂商实现。
java.sql
javax.sql
mysql-connector-java-5.1.47.jar
10.3 第一个JDBC程序
1.创建测试数据库
2.导入数据库驱动
新建lib文件夹,复制粘贴mysql-connector-java-5.1.47.jar
add as library
3.编写测试代码
package com.liweixiao.lesson01;
import java.sql.*;
/**
* @author:LiWeixiao
* @date:2023/3/29
* @description:第一个jdbc程序
*/
public class JdbcFirst {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.用户信息和url
//useUnicode支持中文编码,characterEncoding设置编码格式为utf8,useSSL使用安全连接
String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username="root";
String password="123456";
//3.连接成功,数据库对象
Connection connection = DriverManager.getConnection(url, username, password);
//4.执行sql对象
Statement statement = connection.createStatement();
//5.执行sql,查看结果
String sql="SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
System.out.println("id:"+resultSet.getObject("id"));
System.out.println("name:"+resultSet.getObject("name"));
System.out.println("password:"+resultSet.getObject("password"));
System.out.println("email:"+resultSet.getObject("email"));
System.out.println("birthday:"+resultSet.getObject("birthday"));
System.out.println("*****************");
}
//6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!