-- 单行注释
/* 多行注释 */
DDL 数据定义语言(data definition language) 对表进行操作创表语句
create table t_sstudent(
sstudent_id number(3),
sstudent_name varchar2(20),
sstudent_sex char(3),
ssudent_age number(3),
sstudent_address varchar2(50)
)
2.添加一个字段
alter table t_sstudent add sstudent_marry char(3);
3.修改字段的数据类型
alter table t_sstudent modify sstudent_marry varchar2(6);
4.修改字段的名字
alter table t_sstudent rename column sstudent_marry to sstudent_married;
5.删除字段
alter table t_sstudent drop column sstudent_married;
6.修改表的名字
rename t_sstudent to tb_sstudent;
7.删除表
drop table t_student;
DML 数据操作语言(data manipulation language) CRUD(增删改查)
insert into tb_sstudent values(4,'张大大','男',27,'湖北');
insert into tb_sstudent (sstudent_id,sstudent_name,sstudent_sex,ssudent_age,sstudent_address) values (4,'翠花','女',33,'中国');
update tb_sstudent set sstudent_name='王宝强',sstudent_sex='男' where sstudent_id=3;删除数据,不删除结构
delete tb_sstudent where sstudent_id=4;
delete tb_sstudent;
truncate table tb_sstudent;
drop delete truncate
drop table 表名 删除结构和数据 与事物无关
delete 表名 删除数据,可以是部分也可以是全部 表的结构不会删除 ,表的数据会删除 与事物无关 (可以回滚 rollback)(可以通过技术找回)
truncate table 表名 删除数据 删除整张表中所有数据不删除结构 与事物无关
truncate效率比delete高
2.磁盘高位
drop table tb_sstudent; --删除原来带有标记的表,这个表比较缓慢
3.快速备份
create table tb_sstudent_bak as select * from tb_sstudent;
4.重新命名
rename tb_sstudent_bak to tb_sstudent;
5.给字段取别名,只是当时查询的时候显示别名,它本身还是之前的名字
select sstudent_id as 学生编号,sstudent_name as 学生姓名,
sstudent_sex as 性别,ssudent_age as 年龄,sstudent_address as 地址 from tb_sstudent;
--数据库三范式 创建一张规范的表
--第一范式 数据库中表的字段具有原子性,不可再分
--第二范式 主键 每张表中必须要有一个主键,来唯一的标志这条记录
--第三范式 外键 两张表进行关联,第一张表的外键必须关联第二张表的主键
--约束:
1.主键约束:唯一 不能null
create table t_pet(
id number(3) primary key,
name varchar2(30),
age number(2)
)
insert into t_pet (id,name,age) values (1,'小可爱',2);
第二种创建主键方式
create table t_pet2(
id number(3),
name varchar2(30),
age number(2),
constraint pk_t_pet2 primary key(id)
)
insert into t_pet2 (id,name,age) values (1,'小可爱',2);
--第三种创建主键方式,表外创建
create table t_pet3(
id number(3),
name varchar2(30),
age number(2)
)
alter table t_pet3 add constraint pk_t_pet3 primary key(id); --pk_t_pet3 主键的名字
insert into t_pet3 (id,name,age) values (4,'老虎吧',-12);
2.唯一键约束 唯一 可以为null
alter table t_pet3 add constraint uk_t_pet3 unique (name);
3.检查约束
alter table t_pet3 add constraint ck_t_pet3 check(age between 0 and 50);
alter table t_pet3 drop constraint ck_t_pet3;
4.默认
alter table t_pet3 modify age default 20;
select * from t_pet3;
insert into t_pet3 (id,name) values (5,'哈士奇');
5.外键约束 可以重复 可以为null 外键必须存在于另一张表的主键中
drop table t_student;
drop table t_class;
create table t_student(
id number(3) primary key, --主键
name varchar2(30),
age number(3),
classId number(3) -- classId作为外键,关联班级
)
alter table t_student add constraint fk_t_student foreign key(classId) references t_class(id);
create table t_class(
id number(3) primary key, --主键
name varchar2(30)
)
6.快速插入数据
select * from t_student for update;
select * from t_class for update;
delete t_class where id=1;
TCL 事物控制语言 transaction control language
commit;
rollback;