您的位置:首页 > 数据库 > MySQL

MySQL深入浅出

2015-10-15 11:15 573 查看
MySQL深入浅出

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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mysql java