MySQL深入浅出

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';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值