连接

实现增删改查功能后oracle数据库需要输入commit提交;mysql会自动提交
连接时连接名可以不填,主机名或ip地址为localhost,端口号3306,用户名root,自己设置密码,点击确定连接。
oracle端口号:1502
端口号:用来唯一地标识一个运行着的程序
选中连接名下的任意项,点击查询—>新建查询
在查询编辑器里写mysql的代码
1.创建数据库

create database bba default character as utf8;

2.选择数据库

use bba;

3.创建表
数据类型:数字一般用number
小数建议用numaric
字符类型用char、varchar
长文本用test
日期类型datetime

create table student
(
stuid int(5) primare key auto_increment ,--让学号称为序列,能够自动编号
stuname varchar(20),
gender enum('男','女'),
borndate datetime,
phone varchar(30)
);

插入数据

insert into student values(null,'张三','男','1997-7-5','17483927584');

约束

create table subject
(
subid int(5) zerofill,--当不够五位数时,用零在前面填充
subname varchar(30)
);

建立主键约束:

alter table subject
add constraint pk_stuid primary key(stuid);

建立唯一约束:

alter table subject
add constraint uq_subname unique(subname);

加默认值:

alter table student
modify column stuname varchar(30) default '许昌学院';

加检查约束(在sql数据库中一般无效,但在oracle数据库中是有效的):

alter table student
add constraint ck_borndate check(borndate>'1980-1-1');

enum和set的用法区别:
enum只能选择一个,而set可以选择多个
limit只能在mysql数据库中使用,不能在oracle中使用

enum('男','女');

create table question
(
id int,
title varchar(50),
A varcahr(50),
B varcahr(50),
C varcahr(50),
D varcahr(50),
answer set('A','B','C','D')
);
--插入数据
insert into question values(1000,'1+1=?','2','3','4','10','A,D');
--限制结果的行数,只显示前两行
select * from question limit 2;
--从索引0开始,取两行
select * from question limit 0,2;

在mysql里面执行下面语句不会报错,而在其他数据库中会报错:

select answer,title from question group by answer;

日期函数:

--返回系统日期
    select now();
    --把一个日期加上一百天
    select date_add(now(),interval 100 day);
    --计算两个日期相差的天数
    select datediff(now(),'2019-8-15');
    --计算两个日期相差的周数
    select timestampdiff(week,now(),'2019-7-18');

事务

在多个sql语句需要同时运行时需要用到事务
例如在oracle数据库中

--创建检查约束
alter table account add constraint ck_balance check(balance>=0);

--创建保存点a
savepoint a;

--如果执行成功就提交数据,如果执行失败回滚到保存点
begin
update account set balance =balance-6000 where accid=10010;
update account set balance =balance+6000 where accid=10086;
   dbms_output.put_line('转账成功...数据提交');
   commit;
exception
    WHEN OTHERS THEN
       dbms_output.put_line('转账失败...数据回滚');
       rollback to a;
end;

数据库的导入和导出

1.oracle数据库

导出:
cmd后输入exp,输入你要导出的哪个用户下的表,输入用户名和密码
导出文件可以输入d:\scott.dmp
如果要导出用户输入u,导出表输入t
接下来一直输yes
导入:
cmd后输入imp

2.sql数据库

导出:
在数据库(如bbs)上点右键—>转储sql文件—>结构和数据—>选择存放路径

三大范式

1.一个表里面不要存多个对象,比如学生信息和成绩信息,不要放在一个表里
2.如果发现表中的某一列重复数据特别多,有大量重复的列,要把它单独提出来
3.可以一对一,一对多,尽量不要多对多