mysql
1 mysql的介绍
mysql是一个关系型数据库。常见的关系型数据库有: Oracle、SQL Server (微软)、MySQL(开源免费) 。
注意:mysql和sql是有区别的。SQL语句一种标准,各种数据库都会遵循这个标准,但是也会存在一些差异
2 oracle和mysql使用习惯的区别
Oracle的使用习惯:一个数据库多个用户。
用system超级管理员新建test1用户,然后使用test1登录oracle系统进行开发操作
--创建一个用户test1,密码设置为test1
create user test1 identified by test1;
--给test1设置权限
grant connect,resource to test1;
Mysql的使用习惯:一个root用户管理多个数据库,例如新建一个test1数据库。
3 mysql的基本语法
3.1 建表的语法
create table 表名(
字段名 类型 约束
)
3.2 mysql的字段类型
Oracle | Mysql |
---|---|
varchar2(长度) | varchar(长度) |
number | int |
number(总长度,精度) | double |
date | date日期和datetime日期和时间 |
char(长度)固定长度的字符串 | char(长度)固定长度的字符串 |
3.3 自增主键
id int primary key auto_increment
3.4 案例
建表案例:
create table t_student(
id int primary key auto_increment,
name varchar(50),
score double,
birth datetime
)
增删改的案例:
--查询全部
select * from t_student;
--因为表使用了主键自增,添加数据时可以使用default使用自增,sysdate()是一个函数获取当前时间,相当于oracle中的sysdate关键字
insert into t_student values(default,'zhangsan',22,sysdate());
--删除
delete from t_student where id=1;
--修改,日期字段可以直接赋值为字符串。
update t_student set score=99,birth='2010-1-1 10:10:20' where id=1;
3.5 外键
oracle的语法:
--语法:字段名 类型 references 表名(主键)
create table t_student(
id number(10) primary key,
name varchar2(20),
cid number(10) references t_class(cid)
);
mysql的语法:
--班级表
create table t_class(
cid int primary key,
cname varchar(20)
);
--学生表
--外键语法 foreign key(当前表的列名) references 表名(列名)
create table t_student(
id int primary key auto_increment,
name varchar(20),
cid int,
foreign key(cid) references t_class(cid)
);
3.6 字符串的拼接
--Oracle
select * from student where name = ‘zhangsan’||’san’;
--Mysql
select * from student where name = concat(‘zhangsan’,’san’);
4 分页查询
4.1 oracle分页的回顾
--oracle分三层,最里层查询所有数据并排序,中间层查询伪列起别名,最外层区间查询
select *
from (select t.*, rownum r
from (select * from employees order by salary desc) t)
where r between 6 and 10
4.2 mysql分页的语法
--limit 条数 或者 limit 偏移量,条数
--取前两条数据
select * from student limit 2;
--偏移量从0开始数,包含3这条数据。也就是从第四条开始取,取两条
select * from student limit 3,2
5 maven项目连接到mysql上
依赖的坐标:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
数据源的配置:
url=jdbc:mysql://localhost:3306/dang?useUnicode=true&characterEncoding=utf8
driverName=com.mysql.jdbc.Driver
username=root
password=root
6 插入数据后如何获取插入的id值
<insert id="insert">
<selectKey order="AFTER" keyProperty="id" resultType="int">
select last_insert_id()
</selectKey>
insert into d_order values(default,#{goodPrice},sysdate(),1,#{addrId},#{userId})
</insert>