数据库复习

这篇博客深入探讨了数据库中的关键概念,包括内连接、左连接、右连接的区别,char与varchar的特性比较,以及SQL语句的基本操作如创建、修改和删除表。此外,文章详细介绍了事务的四大特性:原子性、一致性、隔离性和持久性,并举例阐述了不考虑事务隔离性可能导致的问题,如脏读、不可重复读和幻读。最后,文章涵盖了一些基础实验,涉及学生-课程数据库的查询和操作练习。
摘要由CSDN通过智能技术生成

数据库复习

说说内连接、左连接、右连接的区别?

char与varchar的区别

CHAR(size) 固定长度字符串型 size 申请固定长度
VARCHAR(size) 可变长度字符串型 size可申请最大长度

VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。

SQL语句

主要有9个动词,可以嵌入到JAVA等高级语言中使用。
学生-课程数据库

  • 学生表S:Student(Sno,Sname,Ssex,Sage,Sdept)
  • 课程表C:Course(Cno,Cname,Cpno,Ccredit)
  • 学生选课表:SC(Sno,Cno,Grade)

创建表

 建立“学生”表Student,学号是主码,姓名取值唯一。
     
    CREATE TABLE Student          
	      (Sno   CHAR(9) PRIMARY KEY/* 列级完整性约束条件*/                  
            Sname  CHAR(20) UNIQUE/* Sname取唯一值*/
            Ssex    CHAR(2),
            Sage   SMALLINT,
            Sdept  CHAR(20)
           ); 
           
建立一个“课程”表Course
      CREATE TABLE  Course
               ( Cno       CHAR(4) PRIMARY KEY,
                 Cname  CHAR(40),            
                 Cpno     CHAR(4) ,               	                      
                 Ccredit  SMALLINTFOREIGN KEY (Cpno) REFERENCES  Course(Cno) 
            ); 
// FOREIGN KEY:Cpno是外码,被参照表是Course,被参照列是Cno

建立一个“学生选课”表SC
	CREATE TABLE  SC
       	(Sno  CHAR(9), 
       	Cno  CHAR(4),  
       	Grade    SMALLINTPRIMARY KEY (Sno,Cno)/* 主码由两个属性构成,必须作为表级完整性进行定义*/
       	FOREIGN KEY (Sno) REFERENCES Student(Sno)/* 表级完整性约束条件,Sno是外码,被参照表是Student */
       	FOREIGN KEY (Cno) REFERENCES Course(Cno)
                   /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
		); 

修改基本表

ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ]

[例8]向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD S_entrance DATE;
不论基本表中原来是否已有数据,新增加的列一律为空值。
[例9]将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student ALTER COLUMN Sage INT;
[例10]增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);

UNIQUE( )和PRIMARY KEY( )都为列(列集合)提供了唯一性保证,但是一个表中只有一个PRIMARY KEY()约束,可以有多个UNIQUE()约束。
FOREIGN KEY ( ·) REFERENCE [ 指向另一个表的UNIQUE KEY ]

删除基本表

DROP [表名] [RESTRICE|CASCADE]

使用RESTRICE会检查是否有视图、索引、触发器
CASCADE会直接删除

建立索引

CREATE [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值