1 简介
- MySQL的核心是MySQL Server
- 其中比较好的管理工具包括了付费的SQLyog GUI和MySQL官方提供的免费MySQL Workbench
- MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能。MySQL WorkBeanch的区别。
2 MySQL安装
以 MySQL 5.1 免安装版为例, 下载 mysql-noinstall-5.1.69-win32.zip
配置步骤:
-
1 . 将下载的 mysql-noinstall-5.1.69-win32.zip 解压至需要安装的位置, 如: D:\Program Files;
-
2 . 打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 这里为 D:\Program Files\mysql-5.1.69-win32
-
3 . 在 环境变量 的 Path 变量中添加 ;%MYSQL_HOME%\bin;
-
4 . 安装 MySQL 服务, 打开Windows命令提示符, 执行命令:
mysqld --install MySQL Service successfully installed.表示成功;
-
5 .MySQL服务的启动、停止与卸载
在 Windows 命令提示符下运行:
启动: net start MySQL
停止: net stop MySQL
卸载: sc delete MySQL
3 登陆、连接、创建数据库过程
注意的事儿在前面说一下
- 基本大部分的MySQL的命令都要以英文分号“;”结尾,新手经常会忘记加上分号,MySQL会误任务命令还没有结束,会一直有光标闪烁,这时候可以键入分号;直接结束命令;
- mysql的命令、database名和table名是不区分大小写的;
- 比较好的习惯是MySQL的命令均用大写,database名和table名以及字段名均用小写;
- database名称以db_开头比较规范;
- table名以tb_开头比较规范 ;
步奏:
1.登陆,注意一定要以mysql -uroot来登陆,如果是以mysql -u root -p然后回车实质是以一个匿名用户来登陆的,匿名用户创建数据库好像会有权限问题
mysql -uroot
直接回车就行,默认root用户是没有密码的。
SHOW databases;//记得有分号
初始化时已经有2个databases,一个是test 2.创建数据库,创建了一个数据库db_EMP;
CREATE DATABASE db_EMP;//这种命名方式比较正统,db_打头
Query OK, 1 row affected (0.00 sec)//成功了
3.使用数据库 db_EMP
USE db_EMP//使用test数据库
Database changed
4.创建表 Employees
CREATE TABLE Employees (
id INT(8) NOT NULL,
age INT(8) NOT NULL,
first VARCHAR(12) NOT NULL,
last VARCHAR(12)NOT NULL
);
============
注释:表名设为 tb_Employees更加规范
CREATE TABLE Employees ( //关键词大写,好习惯,好区分
id INT(8) NOT NULL, //INT表示int类型,8位 不能为null
age INT(8) NOT NULL,
first VARCHAR(12) NOT NULL, //VARCHAR简单理解为字符串类型
last VARCHAR(12)NOT NULL
); //注意有分号
);
查看刚才创建的表:show tables
mysql> show tables;
+------------------+
| Tables_in_db_emp |
+------------------+
| employees |
+------------------+
1 row in set (0.00 sec)
5.插入数据
INSERT INTO Employees VALUES(1,18,'chen','linlin');
6.查询数据 SELECT * FROM Employees;
mysql> SELECT * FROM Employees
+----+-----+-------+--------+
| id | age | first | last |
+----+-----+-------+--------+
| 1 | 18 | chen | linlin |
+----+-----+-------+--------+
1 row in set (0.00 sec)
4 JDBC实践——命令行形式
-
1.复制粘贴下面代码到FirstExample.java文件中
//STEP 1. Import required packages import java.sql.*; public class FirstExample { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/db_EMP"; // Database credentials static final String USER = "root"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //STEP 2: Register JDBC driver Class.forName("com.mysql.jdbc.Driver"); //STEP 3: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //STEP 4: Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); //STEP 5: Extract data from result set while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } //STEP 6: Clean-up environment rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); }finally{ //finally block used to close resources try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// nothing we can do try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }//end finally try }//end try System.out.println("Goodbye!"); }//end main }//end FirstExample
-
2.下载JDBC连接用到mysql-connector-java-5.0.8-bin.jar 下载 jar包,并放在与FirstExample.java目录统一目录下面
-
3.编译
javac -cp mysql-connector-java-5.0.8-bin.jar FirstExample.java
-
4.运行
java -cp mysql-connector-java-5.0.8-bin.jar; FirstExample
-
结果输出
FirstExample Connecting to database... Creating statement... ID: 1, Age: 18, First: chen, Last: linlin Goodbye!
-
命令注释
javac -cp mysql-connector-java-5.0.8-bin.jar FirstExample.java //其中-cp指令后面接的是jar包,其实就是告诉编译器我链接的jar包库的位置 java -cp mysql-connector-java-5.0.8-bin.jar; FirstExample //运行的时候也要指定jar包的位置,注意和javac不一样的地方是jar后面有一个分号;
- 如果是用ecplise就不需要用-cp来指定jar包位置,有其自己的机制,实质也是-cp,后面再讨论。
5 JDBC例子 —— Eclipse版
第4部分中介绍了命令行的形式,其中java和javac引入jar包的形式相对比较繁琐,每次编译和连接都需要指定-cp,Eclipse IDE只需要一次引入,修改源码后不需要再次引入(一次引入,不再烦恼),直接编译运行即可,下面介绍一下
- 1.新建Java工程
File->new->Java Project,Project name输入JDBCDemo,然后直接Finish。在Eclipse最左边的Package Explorer就能看到JDBCDemo的工程,展开后,能看到src目录。 -
2.添加Java源码
src目录右键new->package,给package取一下名字com.cll。package是Java的一个基本概念,是为了模块化的管理Java源码。具体可百度。然后在刚才创建的com.cll上右键new->class。取名JDBCDemo。然后finish。
将下面的源码复制粘贴到JDBCDemo.java中package com.cll; import java.sql.*; public class JDBCDemo { //STEP 1. Import required packages // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/db_EMP"; // Database credentials static final String USER = "root"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //STEP 2: Register JDBC driver Class.forName("com.mysql.jdbc.Driver"); //STEP 3: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //STEP 4: Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); //STEP 5: Extract data from result set while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } //STEP 6: Clean-up environment rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); }finally{ //finally block used to close resources try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// nothing we can do try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }//end finally try }//end try System.out.println("Goodbye!"); }//end main }//end JDBCDemo
-
3.引入mysql-connector jar包
(1)JDBCDemo工程右键New->folder,取名lib,finish。
(2)将mysql-connector-java-5.0.8-bin.jar 下载直接拖入到lib(或者也可以Ctrl-C,Ctrl-V)
(3)JDBCDemo工程右键Build-Path->Configure Build Path;
(4)在弹出来的对话框中,点击[Add jars],选择JDBCDemo工程下lib文件夹中的mysql-connector-java-5.0.8-bin.jar,然后[OK];
(5)这个时候工程目录变成了
(6)点击出结果
6 可参考文章
21分钟学会MySQL
mysql-connector-java-5.0.8-bin.jar 下载
7 其他 ,暂时可不看
创建用户
CREATE USER username IDENTIFIED BY 'password';