您的位置:首页 > 编程语言 > Java开发

Java知识点整理:第十五章:Mysql数据库(几个必须要知道的事情)

2016-11-17 14:15 323 查看
1.Mysql数据库的起源:
简单的讲:开发者是瑞典Mysql AB公司,2008年的时候被sun公司收购,2009年的时候sun公司被oracle公司收购。
2.验证计算机是否安装mysql:

快捷键:win+R 呼出 cmd, cmd-->mysql;如果出现一下信息,则证明数据库安装成功:



 
3.mysql几个相关的名词:
库   
存储数据的仓库  test  mysql information_schema
表   
二维关系表有行有列的关系表
记录 
表中的一条数据  
一条记录
字段 
表中的一列
 
          在mysql数据中,有N多个库
在每个库中,有N多张表
在每张表中,有N多条记录
在每条记录中,有N多个字段
           每个字段,可以有N多种类型.
 
  4.Mysql中常用的字段类型:
数值类型:   int* bigint  float double* ..
字符串类型:  char(固定长度)   
varchar*(变长)
日期类型:    date*   time(时分秒)
timeStpme(时间戳 
年月日时分秒)
大量的文本:  text
大量的二进制数据类型:  blob  clob
 
5.Mysql中常用的命令:
show databases; 查看所有的库
use 
库名      
使用指定的库
drop database
库名      
删除指定的库
create database
库名(编码会根据安装数据的编码来走)

create database xxx default character set gbk/utf8;

例如: 
创建员工表:

create table emp(
    empnoint(4), --
员工编号
    enamevarchar(50), --
员工名
    job   varchar(50), --
职位
    age   int(3), --
年龄
    salarydouble(8,2), --
薪水
   hiredate  date   --
入职日期

);
 

插入数据:

    insert into empvalues(1001,'zhangsanfeng','Boss',66,20000,'2008-08-08');

    insert into emp(empno,ename,job,age,salary,hiredate)

   values(1002,'zhangwuji','Developer',22,15000,'2009-09-09');
修改数据:
    updateemp set age=23, salary=16000 where empno=1002;(条件一般用主键来指定)
查看数据:
    select *from emp ;(*号是通配符,通配了所有的字段)

    selectempno,ename,job,age,salary,hiredate from emp ;
删除数据:
     deletefrom emp; (删除表中的全部数据)

     delete from emp whereempno = 1002;
    truncate  emp ; (删除表中的全部数据)
 

删除表
  drop table
表名.
 
6.主键

表中每条数据的唯一标识,主键唯一且不能为空 null

create table emp1(
    empnoint(4) primary key, --
员工编号
    enamevarchar(50), --
员工名
    job   varchar(50) default 'shixisheng', --
职位
    age   int(3), --
年龄
    salarydouble(8,2), --
薪水
   hiredate  date   --
入职日期

);

insert into emp1values(1001,'zhangsanfeng','Boss',66,20000,'2008-08-08');

insert into emp1 (empno,ename,job,age,salary,hiredate)

values(1002,'zhangwuji','Developer',22,15000,'2009-09-09');
 

create table emp2(
    empnoint(4) primary key auto_increment, --
员工编号
    enamevarchar(50), --
员工名
    job   varchar(50), --
职位
    age   int(3), --
年龄
    salarydouble(8,2), --
薪水
   hiredate  date   --
入职日期

);

insert into emp2values(1001,'zhangsanfeng','Boss',66,20000,'2008-08-08');

insert into emp2 (empno,ename,job,age,salary,hiredate)

values(1002,'zhangwuji','Developer',22,15000,'2009-09-09');

insert into emp2 (ename,job,age,salary,hiredate)

values('zhangwuji','Developer',22,15000,'2009-09-09');

insert into emp1 (empno,ename,job,age,salary,hiredate)

values(null,'zhangwuji','Developer',22,15000,'2009-09-09');
 
7.mysql表结构的修改:
1.给emp表添加性别列

  alter table emp add genderchar(1);

  alter table emp add genderchar(1) default 'm';

 
 
给emp表在ename字段后面添加新字段 
奖金  bonus

  alter table emp add bonusfloat after ename;
 
2.删除emp表中的性别列

  alter table emp dropcolumn  gender ;
3.修改emp表中的性别列gender-->sex

  alter table emp changegender  sex char(1) ;

  alter table emp changeold_column new_column old_type;
 
        4.修改emp表中性别列gender的字段类型-->varchar

  alter table emp change sexsex varchar(2);
 
如果修改以后的类型兼容以前的字段类型,可以在有数据
 
的情况下做修改
 
如果不兼容,在有数据的情况下修改失败.
 

  alter table emp change sexsex int(4);
 
5.修改表名  emp-->e_mp

  alter table emp rename  e_mp;

  alter table e_mp rename emp;
 
8.MyEclipse配置mysql连接
1.切换到MyEclise DataBase Explore视图下
2.在DB Broswer
中新建连接
3.配置连接

  Driver Template :Mysqlconnector/J
  Driver Name: jdbc(随便起,但也不能太随便)

  Connection URL:jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8

  Username:root

  password:1234

  Driver JARs:mysql-connector-java-5.1.7-bin.jar

 
9.Mysql中的约束
1.主键约束  primary key
  
主键就是表中的一列或 者多个列的一组
  
其值能唯一的标志表中的一条记录.
2.唯一性约束 unique
  
唯一性约束跟主键一样,是表的一列或一组列
  
他们的值在任何时候都是唯一的.
  
主键不允许为空, unique可出现空值。
3?.
检查约束  check  

  
用来约束列中可出现的值。
  
检查插入的值是否符合列检查约束的规定.
4.
非空约束  not null
  
指定列不能为空。
 
        5.
外键约束(foreign)
   
指定此列引用另一个表中的主键列
 
6.Constraint 关键字
 
用来给约束起名字(表级约束)
 

  
10.创建约束:
1.可以在创建表的时候规定约束
2.在表创建成功以后,通过alter动态添加约束。
 

create table emp_cons(
     empnoint(4)  primary key,   --
主键约束
     enamevarchar(50) unique,  --
唯一性约束

     gender char(1)check(gender in('m','n')),

     job  varchar(50) not null

     deptno int(4)  foreign key references dept(deptno)

);
 

create table dept_cons(

    deptno int(4) primary key,

    dname varchar(50) not nullunique,

    loc varchar(50) not null

);
 
 
11.Mysql的事务

一个事务是一个连续的一组数据库操作,如果一个事务中的任何一步操作出现问题,则整个事务失败.
 
MySql的事务支持不是绑定在MySql服务器本身而是与存储引擎相关.
1.MyISAM 
不支持事务 
用于只读程序挺高性能.
2.InnoDB 
支持事务ACID ****
3.Berkeley DB 支持事务 

 
 

可以通过如下方法改变表的存储引擎

1.create table ...... type=InnoDB;

2.alter table xxx type = InnoDB;
 

alter table emp_no_cons type = MyISAM;

create table emp_type(

id int

)type=InnoDB;
 
3.事务必须满足的四个条件:
A(Autmic):原子性
事务在执行时,要做到"要么不做,要么全做"就是说不允许事务部分执行.即使因为故障而使事务不能成功完成,在rollback的时候也要消除对数据库的影响、
C(Consistency):一致性
事务的操作应该使数据库从一个一致状态转变到另一个一致状态.
I(Isolation):隔离性
 如果多个事务同时发生,各个事务之间没有 任何干扰.各个事务独立执行
D(Durability):持久性
 一个成功执行的事务对数据的作用是持久的. 即使数据库出现故障,也应该能够恢复.
 
 12.Mysql数据库处理事务的两种方法:
1.数据库的事务是默认提交的
  begin 
开启事务
  rollback 
回滚事务
  commit 
提交事务
        2.使用set来改变mysql数据的默认提交模式
  setautocommit = 0 
禁止自动提交
  setautocommit = 1 
开启自动提交
 
 
如果禁止自动提交,以后所有的sql都做为事务处理.  直到使用commit确认或者rollback回滚才结束.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: