连接
实现增删改查功能后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.可以一对一,一对多,尽量不要多对多