学习数据库

                          数据库

一 概念
1.数据 data
2.数据库database DB
3.数据库管理系统 DBMS
4.数据库系统 DBS
二 数据库的发展:层次结构 网状结构 关系结构
三 数据库三要素 : 数据操作 数据结构 用户定义的完整性
四 数据库系统的模式:B/S C/S
管理数据库
一 数据库
1.创建 create database 名
2.查看 show databases;
3.使用 use 名
4.删除 drop database 名
二 表结构 create alter drop
1.创建表
create table dept1
(dno char(6) primary key,
dname varchar(10) not null,
dman char(6));

create table sc
(sno char(4),
cno char(3),
grade int,
primary key(sno,cno),
constraint fk_sno foreign key(sno) references student(sno),
constraint fk_cno foreign key(cno) references course(cno));
2.修改表 alter table 名 列描述:列名 数据类型 是否为空
(1)添加列
alter table student
add 备注 char(100);
(2)修改列
alter table student
modify 备注 char(200);
(3)删除列
mysql> alter table course
-> drop column ccredit;
Query OK, 7 rows affected (0.27 sec)
Records: 7 Duplicates: 0 Warnings: 0
(4)添加主键
mysql> alter table student
-> add primary key(sno);
Query OK, 7 rows affected (0.27 sec)
Records: 7 Duplicates: 0 Warnings: 0
(5)添加外键
alter table sc
add constraint fk_sno foreign key(sno) references student(sno);
(6)删除主键
alter table sc
drop primary key;
(7)删除外键
alter table sc
drop foreign key fk_sno;
3.删除表
drop table student;
三 表数据 insert update delete select
1.添加
insert into student
values(‘6666’,‘a’,‘男’,19);

insert into student(sno,sname)
values(‘8888’,‘r’);
2.更新
update student
set sage = 20
where sno = ‘8888’;
3.删除
delete from sc
where sno = ‘0005’ or sno = ‘0006’;
4.查询
(1)基本查询
(2)条件查询
(3)排序
select *
from student
where sname like ‘张%’
order by sage desc;
(4)分组
(5)筛选
select sno,count(cno)
from sc
group by sno
having count(cno) >= 3;
(6)连接查询
举例:查询男生所选课程号、课程名以及成绩。
select sc.cno,cname,grade
from student join sc on student.sno = sc.sno
join course on sc.cno = course.cno
where ssex = ‘男’;
(7)子查询
举例:查询没有选课学生的学号和姓名
select sno,sname
from student
where sno not in(select sno from sc);
四 视图
1 视图的作用或优点
2.创建
举例:创建视图v1,其内容包括所有同学的学号、姓名、课程号以及成绩
create view v1
as
select student.sno,sname,sc.cno,grade
from student join sc on student.sno = sc.sno
join course on sc.cno = course.cno;
五 索引
1.索引的作用:加快查询速度
2.创建
举例:在student表的姓名列上创建唯一索引ix_sname
create unique index ix_sname on student(sname);
六 存储过程
1.存储过程的作用
2.创建和调用
举例:创建存储过程p1,其作用是更新指定同学的年龄。
delimiter //

create procedure p1(in sid char(4),in age int)
begin
update student
set sage = age
where sno = sid;
end//

call p1 (‘0001’,25)//
七 触发器
创建
举例:创建触发器tr1,用来当删除学生表记录时,级联删除sc对应记录
create trigger tr1
after delete on student for each row
begin
delete from sc
where sno = old.sno;
end//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值