什么是mysql
mysql是一款关系型数据库,支持千万级数据的存储和查询,而且是开源免费的,是很多创业公司的优选。
关系型数据库一般用来存储结构化数据。结构化数据是高度组织和整齐格式化的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。
为什么使用mysql
mysql是用来管理数据的,有数据产出的应用都可以使用mysql。mysql是开源、免费的,而且单表可高效处理千万级数据,在性能方面也不逊色。
如何使用mysql
mysql中的数据组织方式
mysql分为数据库、数据表、字段、索引、字符集等关键部分
数据库是一些关联表的集合。
数据表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
字段是包含了相同类型的数据, 例如邮政编码的数据。
索引是一种为了提高数据查询速度的工具,在mysql中是通过B树数据结构实现的
字符集是字段中数据存储的格式,如utf8编码或latin编码
测试mysql的数据表结构
CREATE TABLE `xb_sys_user` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录用户名',
`nickname` varchar(30) COLLATE utf8mb4_general_ci NOT NULL COMMENT '昵称',
`password` char(80) COLLATE utf8mb4_general_ci NOT NULL,
`status` tinyint NOT NULL,
`create_time` int NOT NULL,
`update_time` int NOT NULL,
PRIMARY KEY (`id`),
KEY `u` (`status`,`username`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
在PHP项目中使用mysql
在PHP项目中使用mysql前需要确保当前PHP环境已开启了mysql相关的扩展
查看PHP环境是否开启相关扩展
使用命令php -m | grep mysql,输出以下三个扩展说明已开启。
// 连接数据库
$link = mysqli_connect("127.0.0.1", "root","root","db_xb", 3308);
if ($link) {
echo "连接成功...", PHP_EOL;
// 执行查询命令
$res = mysqli_query($link, "select * from xb_sys_user");
// 获取查询到的结果集
$res_fetch = $res->fetch_all();
dump($res_fetch);
}
在Java项目中使用mysql
1.创建maven项目
2.引入依赖
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
3.代码示例
public class JdbcDemo {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
db();
}
public static void db() throws ClassNotFoundException, SQLException {
// 注册JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3308/db_xb",
"root",
"root"
);
// 获取Statement
Statement statement = connection.createStatement();
// 通过Statement执行SQL语句
// executeQuery()用于执行查询语句,返回ResultSet。
// execute()用于执行DDL语句,返回bool。但是也可以执行查询语句,通过getResultSet()也可以获取查询的结果集
ResultSet rs = statement.executeQuery(
"select * from xb_sys_user"
);
System.out.println("执行查询成功...");
while (rs.next()) {
System.out.println(String.format(
"按字段索引位置取\tid: %d username: %s nickname: %s password: %s status: %d",
rs.getLong(1), // 按数据表中的字段索引位置开始取
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getInt(5)
));
System.out.println(String.format(
"按字段名取\tid: %d username: %s nickname: %s password: %s status: %d",
rs.getLong("id"), // 按数据表中的字段名开始取
rs.getString("username"),
rs.getString("nickname"),
rs.getString("password"),
rs.getInt("status")
));
}
}
}