基础信息
主键:数据库表中唯一标识,不可重复,代表表中的唯一一条数据。
外键(关联关系):两个表之间有关联,通过外键关联
数据库中注释用 --
数据类型:
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) 截取姓名的第一个字,把姓取出来
本文介绍了数据库的基础概念,如主键、外键和数据类型,并通过实例展示了如何创建、插入、查询、删除和更新数据。同时,讲解了多表查询和使用函数进行特定查询的方法,例如日期转换和统计函数。最后,通过班级表和学生表的例子,阐述了多表查询的应用。
864

被折叠的 条评论
为什么被折叠?



