共计 3050 个字符,预计需要花费 8 分钟才能阅读完成。
一.About MySQL
1.MySQL 优点
- 体积小、速度快、开放源码、免费
- 一般中小型网站的开发都选择 MySQL,最流行的关系型数据库
- LAMP / LNMP
- Linux作为操作系统
- Apache或 Nginx 作为 Web 服务器
- MySQL作为数据库
- PHP作为服务器端脚本
- 都是免费或开放源码软件,不用花一分钱就可以建立起一个稳定、免费的网站系统
2. 登陆 MySQL
- 登陆:
mysql –h 主机名 -u 用户名 –p
- 注销:
quit;
- 修改密码:
mysqladmin –uroot –p 旧密码 password 新密码
3. 可视化工具
phpMyAdmin、MySQL-Front、MySQL Workbench、Navicat 等
4.sql 语句
- 不区分大小写
- 以分号结尾
- 注释:
# 注释内容直到行尾
-- 注释内容直到行尾
/* 注释内容 */
5. 执行环境
- Linux:mysql shell
- Windows:Command Line Client
- 可视化工具的 SQL 编辑器
6.where 条件
- 比较运算符:=、>、<、>=、<=、!=、<>
- 扩展运算符:is null、is not null、like、in、between
- 逻辑运算符:and、or
- 函数:count、sum、avg、max、min
- 排序:order by
- 分组:group by
7. 操作数据
增
insert into 表名 values (值 1, 值 2, ...);
insert into 表名 (列名 1, 列名 2, ...) values (值 1, 值 2, ...);
删
- 删除所有数据:
delete from 表名;
- 删除指定数据:
delete from 表名 where 条件;
改
- 更新所有数据:
update 表名 set 列名 = 新值;
- 更新指定数据:
update 表名 set 列名 = 新值 where 条件;
- 更新多列:
update 表名 set 列名 1 = 值 1, 列名 2 = 值 2 [where 条件];
- 更新为默认值:
update 表名 set 列名 =default [where 条件];
查
- 查询所有数据:
select 列名 from 表名;
- 查询指定数据:
select 列名 from 表名 [where 条件];
- 查询多个列:
select 列名 1, 列名 2 from 表名 [where 条件];
- 查询所有列:
select * from 表名 [where 条件];
- 指定别名:
select 列名 as 别名 from 表明 [where 条件];
- 查询唯一值:
select distinct 列名 from 表名;
二. 示例代码
1.maven 依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-Java</artifactId>
<version>5.0.2</version>
</dependency>
2 实例代码
package com.my.connect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
/**
* 一个非常标准的连接 Mysql 数据库的示例代码
*/
public class ConnectDB {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用 Statement
ResultSet result = null;// 创建一个结果集对象
ResultSetMetaData metaData = null;// 创建一个表头信息对象
try {
// 加载 Mysql 驱动程序,Oracle 的:Class.forName(“oracle.jdbc.driver.OracleDriver”);
// 不知道可以打出 Driver 看导入包的提示
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/studata”;//localhost 为本级地址,studata 为数据库名
String userName = “root”;
String password = “root”;
con = DriverManager.getConnection(url, userName, password);// 获取连接
System.out.println(“ 数据库连接成功!”);
String sql = “select * from studata s where s.stuNo = ?”;// 预编译语句,? 代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setInt(1, 10000);;// 设置参数,前面的 1 表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
metaData = result.getMetaData();// 获取表头信息
while (result.next()) {
// 当结果集不为空时
System.out.println(metaData.getColumnName(1) + ” ” + metaData.getColumnName(2));
System.out.println(result.getString(“stuNo”) + ” ” + result.getString(“stuName”));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
try {
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println(“ 数据库连接已关闭!”);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
3. 运行结果
数据库连接成功!
stuNo stuName
10000 linuxidc
数据库连接已关闭!