--数据库基本表的创建,插入,删除,更新操作
--建立一个"学生"表
--学生的学号:Sno,类型是char(9)-->因为学生的学号是9位的定长的字符串;
--学生的姓名:Sname,类型是varchar2(8)-->因此可以是2,3,4汉字,而本数据库中一个汉字对应两个字符;
--学生的年龄:Sage,类型是smallint-->smallint占用的是两个字节,表示数的范围是,-32,768-->32,767;
--学生的性别:Ssex,类型是char(2)-->学生的性别只有两种情况,'男'或者'女',因此使用2位的定长字符串表示;
--学生的所属系别:Sdept,类型是varchar2(4)-->学生所属系别的长度是不确定的,假设最长4个字符;
--学生表的主键为学生的学号;
create table Student
(
Sno char(9) primary key,
Sname varchar2(8),
Ssex char(2) not null,
Sage smallint not null,
Sdept varchar2(4) not null
);
--创建学生"课程"表
--课程的课程号:Cno,类型是char-->假设课程号是4位的定长字符;
--课程的课程名:Cname,类型是varchar2-->首先课程的名字是一个字符串,假设课程名字最多有10个汉字,最多含有20个字符组成;
--课程的先行课程号:Cpno,类型是char-->这个属性的数据类型应该和课程号的数据类型是一致的;
--课程的学分:Ccredit,类型为smallint-->课程的学分是一个小正整数;
--学生"课程"表中的主键是Cno;
--学生"课程"表中的外键为Cpno;课程表中的Cpno引用自课程表中的Cno;
create table Course
(
Cno char(4) primary key,
Cname varchar2(20) not null,
Cpno char(4),
Ccredit smallint not null,
foreign key(Cpno) references Course(Cno)
);
--创建学生"选修"表
--学生的学号Sno,类型为char(9)-->学号的长度是9个数字的定长字符;
--学生的课程号Cno,类型为char(4)-->课程号的长度是4个数字的定长字符;
--学生的成绩Grade,类型为smallint-->这个整数在0->100之间的数字;
--选修表的主键:Cno和Sno的组合;
--选修表的外键:选修表中的Sno引用自学生表Student中的学号Sno;选修表中的Cno引用自学生表Courses中的课程号Cno;
create table SC
(
Sno char(9),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),
foreign key(Sno) references Student(Sno),
foreign key(Cno) references Course(Cno)
);
--查询到当前数据库的字符集,
--如果value=ZHS16GBK,那么一个汉字占用2个字节,即一个汉字占用2个字符的大小;
--如果value=AL32UTF8,那么一个汉字占用3个字节,即一个汉字占用3个字符的大小;
select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';
alter user scott account unlock;
alter user sys account unlock;
alteruseruser_name account unlock identifiedby new_password;
--查询的结果显示的value = ZHS16GBK,那就说明在本数据库中一个汉字是占用两个字节的.
--向学生表中插入数据
insert into Student values('201215121','李勇','男',20,'CS');
insert into Student values('201215122','刘晨','女',19,'CS');
insert into Student values('
带有in谓词的子查询
最新推荐文章于 2022-07-21 20:38:42 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)