0
点赞
收藏
分享

微信扫一扫

oracle和mysql的区别

雨鸣静声 2023-07-04 阅读 61

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>
举报

相关推荐

0 条评论