一. 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
数据库连接已关闭!
来源: http://www.linuxidc.com/Linux/2018-04/151684.htm