zoukankan      html  css  js  c++  java
  • MySql

    介绍:

     MySQL是和Oracle类似一款数据库产品,语法和Oracle大体相同。MySQL是一款开源的中小型数据库,而Oracle是大型的商业数据库。MySQL最初是MySQL AB公司开源的产品,08年被Sun公司收购。09年Sun被Oracle收购了。都是关系型数据库

    MySQL和Oracle一样都遵循SQL语言标准的数据库,MySQL语法和Oracle大体相同,但同时MySQL扩展了自己独有的语法。

      建表语法

     create table 表名(
        列名(字段名)  数据类型 约束,
        列名(字段名)  数据类型 约束
     );

    数据类型

    整数 number(n) tinyint、smallint、 int 、bigint
    数据类型 oracle mysql
    小数 number(m,n) float,double
    定长字符串 char(n) char(n)
    变长字符串 varchar2(n) varchar(n)
    日期 date(年月日-时分秒) date(年月日)、time(时分秒)、datetime(年月日-时分秒)

    建表示例

    create table t_student(
         student_id int,
         student_name varchar(20),
         age tinyint,
         score double,
         birthday datetime
    );

    建表语法细节补充

    //只有在不存在某张表的执行,才执行建表语句,如果已经存在,不做任何操作
    create table [if not exists] 表名(
        列名 数据类型 约束,
        列名 数据类型 约束,
        ...
    )
    
    //设置表的数据库引擎和编解码集
    //MySQL是开源的,可以使用不同的数据库引擎
    //常见引擎 MyISAM(重查询、弱事务) 5.5之前默认
              InnoDB (事务支持好,查询性能也不弱)5.5之后默认
    create table [if not exists]表名(
        列名 数据类型 约束,
        列名 数据类型 约束,
        ...
    )[engine = myisam|Innodb] [default charset=utf8mb4]

    约束

    primary key 主键约束
    unique   唯一约束
    not null 非空约束
    注意: mysql中没有 check 检查约束
    foreign key(外键列名) references 表名(列名)

    示例

    create table t_class(
        class_id int primary key,
        class_name varchar(20) not null unique
    );
    
    create table t_student(
        student_id int primary key,
        student_name varchar(20) not null,
        age tinyint,
        score double,
        birthday datetime,
        class_id int,
        foreign key(class_id) references t_class(class_id)
    )

    增删改查

    //Oracle中添加主键,通过序列生成的
    create sequence seq_student;
    insert into t_student(seq_student.nextval,...);
    
    //MySQL原生不支持序列,MySQL中使用auto_increment约束主键自动自增
    create table t_class(
    class_id int primary key auto_increment,
    class_name varchar(20) not null unique
    );
    
    insert into t_class values(1,'1910');
    insert into t_class(class_name) values('1911');
    insert into t_class values(null,'1912');
    
    select * from t_class
    
    create table t_student(
    student_id int primary key auto_increment,
    student_name varchar(20) not null,
    age tinyint,
    score double,
    birthday datetime,
    class_id int,
    foreign key(class_id) references t_class(class_id)
    )
    
    insert into t_student(student_name,age,score,birthday,class_id) values('xiaohei',18,100.0,now(),1);
    
    注意:使用主键自动增长,插入语句必须显式写出要插入数据的列 或者主键列赋值为null

    删(delete)

    和Oracle中一模一样

    改(update)

    和Oracle中一模一样

    查 (select)

    //查询当前系统时间
    Oracle: select sysdate from dual;
    
    MySQL: select now();
           select sysdate();
           
    //字符串拼接
    Oracle: 拼接字符串使用 || 
    MySQL:   拼接字符串使用concat(...);
            select concat(code,'-',name) from country;
    模糊查询
    select * from user where name like concat(“%”, #{name},”%”)

    注意:MySQL默认自动提交事务。

    MySQL分页 limit

    select * from 表 where 条件 ... limit offset,rows;
        offset表示获取到的首行的下标 
        rows表示最多获取到的条数
        
    示例:
    --获取前10行
    select * from country limit 0,10;
    --获取11行~20行
    select * from country limit 10,10;
    
    
    pageNum,pageSize
    offset = (pageNum-1)*pageSize
    rows = pageSize

    MyBatis操作MySQL

    1.搭建开发环境

    1. 新建web项目

    2. 引入jar包,pom.xml中声明依赖

       <!--
      <dependency>
              <groupId>com.oracle</groupId>
              <artifactId>ojdbc</artifactId>
              <version>6.0</version>
       </dependency>-->
      <!--上面的配置替换为下面的配置-->
      <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.48</version>
      </dependency>

      3.添加工具类+配置文件

      工具类型:MyBatisUtils.java

      配置文件:

       

      xxxMapper.xml

      mybatis-config.xml

      log4j.properties

      jdbc.properties 有变化

    3. jdbc.properties
      oracle:
      driverClassName=oracle.jdbc.OracleDriver
      url=jdbc:oracle:thin:@localhost:1521:xe
      user=hr
      password=hr
      
      mysql:
      driverClassName=com.mysql.jdbc.Driver
      url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
      user=root
      password=root
        1. 配置文件初始化

      1. 建表

      2. 实体类

      3. dao

        接口:没有变化

        实现:xxxMapper.xml中写MySQL的语句

      4. service

      5. test

      6. action+jsp

      7. 集成测试

    以粮为纲全面发展
  • 相关阅读:
    耐人寻味的 8 幅Java技术图
    什么是线程安全?怎么样才能做到线程安全?
    线程池
    ExecutorService的正确关闭方法
    js中let和var定义变量的区别
    sql的left join 、right join 、inner join之间的区别
    Collections.sort排序
    Mysql声明变量及使用
    java集合容器汇总
    TortoiseSVN提交commit提示Unable to create pristine install stream.系统找不到指定的路径 之解决方法
  • 原文地址:https://www.cnblogs.com/alexliuf/p/13806441.html
Copyright © 2011-2022 走看看