2020-04-06数据库具体 *** 作

2020-04-06数据库具体 *** 作,第1张

数据库具体 *** 作

感触很深的是,无论是做什么事情,都要自己仔细动脑筋,要坚持查找资料,获取帮助。不要相信权威,为人处世要严谨以待,不要在一些容易犯错的场合错误连篇,经常反省自己做过了什么不满意的事情吗,如果有以后会碰到,那要怎么做。如此之后就应该能相信自己,还有多增加一些自信力。


无论是学习还是其他的事情,最让人感受深刻的是,你看着别人来做某一件事的时候很轻松,等到你自己来实践,可能就不是这一回事了。

把一些代码能够粘贴到这里吧。是昨天和今天的进度。

这里其实是初始阶段对于细碎知识点的小实践。

/*
create database new;
use new;

create schema "S-T" authorization wang

create table tab1(
    col1 smallint,
    col2 int,
    col3 char(20),
    sol4 numeric(10.3),
    col5 decimal(5,2)
);

*/
/*
use test;

create table Student(
    Sno char(10) primary key,
    Sname char(20),
    Ssesx char(2),
    Sage smallint,
    Sdept char(20)
);

*/

这里才是真正自己建立几个关联表,之后发现使用老师的代码,并不能成功,出现大量语法错误,可能是数据库引擎的问题,或者是版本的问题,于是自己在网上查找文档,终于解决了一些小bug。

/*
use test;

create table Course(
    Cno char(4) primary key,
    Cname char(40),
    Cpno char(4),
    Ccredit smallint,
    foreign key(Cpno) references Course(Cno) on delete cascade
);

*/

/*
use test;

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)
);

*/

/*
use test;
describe table Course;
*/


/*
use test;
drop table movies RESTRICT ;
*/

/*
use test;
drop table Student CASCADE;
*/

-- ALTER TABLE Student modify  Sage  smallint ;

/*
use test;
ALTER table Student drop column Scome ;
*/


/*
use test;
ALTER table Student modify Sname char(59);
*/

/*
use test;
desc Student;
-- show create table Student;
-- select * from Student;
*/

/*
use test;
create unique index Stusno on Student(Sno asc);
*/
use test;
-- create index Stusage on Student(Sage desc);
-- create unique index Courcno on Course(Cno);

-- 此步骤发生错误的原因是数据库已经把主键当作聚簇索引了
create cluster index Stusname on Student(Sname);

到了这里才是真正的练习解决生活中的问题,一些问题还是没有搞懂,但是相比之前的一窍不通还是好一些的。

/*
要求:
1.设计一个电影数据库, 支持无限多个演员,可以允许”
查询2017年英国侦探爱情片中男演员数目超过10个的
影片名称”
2.写出创建相应数据表的sql语句
*/

# 先创建一个演员表

use test;

/*
create table movie_stars(
    id varchar(4) ,
    name varchar(20),
    sex varchar(2),
    age varchar(3),
    primary key (id,name)
);
desc movie_stars;
*/

# 再创建一个影片表,只是用来表示电影信息

/*
create table movie_name(
    id varchar(4),
    name varchar(50),
    year varchar(20),
    primary key(id,name)
);
desc movie_name;
*/

# drop table movie_stars;

# 之后创建一个电影与演员的关系表,此时这个表格需要引入外键

/*
create table movie_star_relation(
    star_name varchar(20),
    star_id varchar(4),
    movie_id varchar(4),
    movie_name varchar(50),
    #primary key(movie_id,movie_name),
    index (movie_id,movie_name),
    foreign key(star_id,star_name) references movie_stars(id,name),
    foreign key(movie_id,movie_name) references movie_name(id,name)
);

desc movie_star_relation;
*/

# 添加演员信息
/*
insert into movie_stars(id,name,sex,age) values(1,'邹胜','M',20);
insert into movie_stars(id,name,sex,age) values(2,'姚明','M',20);
insert into movie_stars(id,name,sex,age) values(3,'范冰冰','M',20);
insert into movie_stars(id,name,sex,age) values(4,'郭德纲','M',20);

#desc movie_stars;

select * from movie_stars;
*/

# 添加电影信息
/*
insert into movie_name(id,name,year) values(1,'小世界',2002);
insert into movie_name(id,name,year) values(2,'大世界',2002);
insert into movie_name(id,name,year) values(3,'大星球',2002);
insert into movie_name(id,name,year) values(4,'西游记',2002);
insert into movie_name(id,name,year) values(5,'红楼梦',2002);
select * from movie_name;
*/

# 添加演员与电影的关系
/*
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(1,'邹胜',1,'小世界');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(3,'范冰冰',2,'大世界');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(3,'范冰冰',3,'大星球');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(2,'姚明',4,'西游记');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(4,'郭德纲',4,'西游记');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(1,'邹胜',5,'红楼梦');
insert into movie_star_relation(star_id,star_name,movie_id,movie_name) values(4,'郭德纲',2,'大世界');
*/

select * from movie_stars where sex='M';

select count(*) from movie_star_relation where movie_id=2;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/995053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存