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回滚才结束.
简单的讲:开发者是瑞典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回滚才结束.
相关文章推荐
- Java中关于bit操作你必须要知道的事情
- Java几个技术点,简单的说说学好Java必须弄懂哪些知识点
- 敢说你java基础很好吗?你能答对几个?(Java基础知识点整理)
- 2.Java高并发必须要知道的几个概念(二)
- 1.Java高并发必须要知道的几个概念(一)
- Java知识点整理:第十六章:JDBC、分页/批处理/事务/连接池
- Java选择题知识点整理系列(二)
- JAVA-初步认识-第二章-算术运算符1知识点整理
- 面试题库整理:java基础面试知识点
- JAVA中最为关键的几个知识点
- Unity3D Shader之路 写Shader前必须要知道的事情2 表面着色器的理解
- 几个主流的Java连接池整理 (转)
- 初学Spring必须弄懂的几个知识点
- 工厂方法模式里面必须要知道的事情
- 【知识点整理(Java)】Java Thread简单使用注意点汇总(二)
- Java已学部分知识点整理
- 职责链模式里面必须要知道的事情
- java面试知识点整理之web系列
- Java知识点整理:第一章:基础知识梳理
- Java基础------知识点整理(二)