基础信息
主键:数据库表中唯一标识,不可重复,代表表中的唯一一条数据。
外键(关联关系):两个表之间有关联,通过外键关联
数据库中注释用 --
数据类型:
varchar2(20) 可存储字符串,(20)代表长度为20 (10个汉字或20个英文字母)
number(4) 可存储数字,(4)代表长度为4的整数 (0---9999)
number(7,2) 可存储数字,(7,2)代表长度为7位,精度为2的小数 (0.00---9999999.99)
char(2) 可存储字符,(2)代表长度为2 (存ab)
date 可存储日期格式 (2020-12-16)
学生表:student
字段 | 字段名 | 数据类型 |
XH | 学号 | number(4) |
XM | 姓名 | varchar2(20) |
SEX | 性别 | char(2) |
BIRTHDAY | 出生日期 | date |
SAL | 奖学金 | number(7,2) |
CLASSID | 班级号 | number(2) |
建表语句
create table 表明(字段1 数据类型a,字段2 数据类型b,字段3 数据类型c,.....)
学生表创建:
create table student(
XH number(4),
XM varchar2(20),
SEX char(2),
BIRTHDAY date,
SAL number(7,2),
CLASSID number(2)
)
插入一条数据(表中列要和后面插的数对应)
insert into 表明 (字段1,字段2,字段3,....)values (值1,值2,值3,........)
学生表插入数据
insert into student
(XH,XM,SEX,BIRTHDAY,SAL,CLASSID)
VALUES
(‘A001’,’hqt’,’男’,’2020-12-27’,’1000’,’1’);
insert into student
(XH,XM,SEX,BIRTHDAY,SAL,CLASSID)
VALUES
(‘A002’,’lm’,’女’,’2020-02-21’,’2000’,’2’)
查询
全表查询
select * from student ;
XH | XM | SEX | BIRTHDAY | SAL | CLASSID |
A001 | hqt | 男 | 2020-12-16 | 1000 | 1 |
A002 | lm | 女 | 2020-02-21 | 2000 | 2 |
条件查询
select * from student where XH = ‘A001’;
如果表中有学号为A001的数据,就能查到此信息结果如下
XH | XM | SEX | BIRTHDAY | SAL | CLASSID |
A001 | hqt | 男 | 2020-12-16 | 1000 | 1 |
如果没有A001的数据,就什么也查不到
删除表(删除表结构,数据库中就不会再存在这张表)
drop table 表明;
删除学生表:
drop table student;
删除表中数据
delete from 表名 where 列名 = ‘列的值’;
删除学生表中学号为A001的数据
delete from student where XH = ‘A001’ ;
如果表中有学号为A001的数据,这条数据会被删除,如果没有就什么也不会删掉
修改表中数据
update 表明 set 列名1=’列值a’ where 列明2 = ‘列值b’
一般修改语句都要加where条件,不加where条件会修改整个表所有数据
修改学号为A001的学生的奖学金
update student set SAL = ‘2000’ where XH = ‘A001’
班级表:studentClass
字段 | 字段名 | 数据类型 |
CLASSID | 班级号 | number(2) |
CNAME | 班级名字 | varchar2(40) |
班级表建表插数(语句参见上面)后结果
CLASSID | CNAME |
1 | 一年级一班 |
2 | 一年级二班 |
多表查询
多表查询通过关联关系查找数据
select 列名a,列明b,..... from
表名1 join 表名2 on 表明1.列名c = 表明2.列名cc
where 表明1.列名d = ‘列值’;
上面的班级表和学生表通过CLASSID关联
查询一年级二班的学生名字
select a.XM,b.CNAME from student a
join studentClass b on a.CLASSID = b.CLASSID
where b.CNAME = ‘一年级二班’;
查询结果
XM | CNAME |
李敏 | 一年级二班 |
查询时函数
如果日期带时分秒,查询只查年月日需要转换
日期转换:to_date(BIRTHDAY,’yyyy-mm-dd’)
取最大值 max(SAL) 取奖学金最大值
取最小值 min(SAL) 取奖学金最小值
截取字段长度 substr(XM,0,1) 截取姓名的第一个字,把姓取出来