数据库原理与应用
数据库增删改查 //创建数据库 CREATE DATABASE CourseDB //修改数据库 ALTER DATABASE CourseDB RENAME TO CourseDBNew //删除数据库 DROP DATABASE CourseDBNew 数据库表增删改查 增 //创建学生表 CREATE TABLE Student ( StudentID char(13) PRIMARY KEY, StudentName varchar(10) NOT NULL, StudentGender char(2) NULL, BirthDay date NULL, Major varchar(30) NULL, StudentPhone char(11) NULL ); ----------------------------------------------------- PRIMARY KEY:主键 NOT NULL :非空值 NULL :空值 UNIQUE :值唯一 CHECK : 有效值检查 DEFAULT :缺省值 //创建课程表 CREATE TABLE Course ( CourseID char(4) PRIMARY KEY, CourseName varchar(20) NOT NULL UNIQUE, CourseType varchar(10) NULL CHECK(CourseType IN (“基础课”,“专业课”,“选修课” )), CourseCredit smallint NULL, CoursePeriod smallint NULL, TestMethod char(4) NULL DEFAULT "闭卷考试" ); //创建课程计划表 CREATE TABLE Plan ( CourseID char(4) NOT NULL, TeacherID char(4) NOT NULL, CourseRoom varchar(30), CourseTime varchar(30), Note varchar(50), CONSTRAINT CoursePlan_PK PRIMARY Key(CourseID,TeacherID) ); //表约束定义主键 CREATE TABLE <表名> ( <列名1> <数据类型> [列完整性约束], <列名2> <数据类型> [列完整性约束], <列名3> <数据类型> [列完整性约束], … CONSTRAINT <约束名> PRIMARY Key(主键列) ); //表约束定义代理键 CREATE TABLE <表名> ( <代理键列名> <Serial数据类型> NOT NULL, <列名2> <数据类型> [列完整性约束], <列名3> <数据类型> [列完整性约束], … CONSTRAINT <约束名> PRIMARY Key(代理键列名) ); //表约束定义外键 CREATE TABLE <表名> ( <列名1> <数据类型> [列完整性约束], <列名2> <数据类型> [列完整性约束], <列名3> <数据类型> [列完整性约束], … CONSTRAINT <约束名> FOREIGN Key(外键列) ); //创建注册表 CREATE TABLE Register ( CourseRegID serial NOT NULL, CoursePlanID Int NOT NULL , StudentID char(13), Note varchar(30), CONSTRAINT Regiser_PK PRIMARY KEY(CourseRegID), CONSTRAINT Plan_FK FOREIGN KEY(CoursePlanID) REFERENCES Plan(CoursePlanID) ON DELETE CASCADE, CONSTRAint Student_FK FOREIGN KEY(StudentID) REFERENCES Student(StudentID) ON DELETE CASCADE, ); 改: //修改数据库表 ALTER TABLE <表名> <修改方式>; 1)ADD修改方式,用于增加新列或列完整性约束 ALTER TABLE <表名> ADD <新列名称><数据类型>|[完整性约束] 2)DROP修改方式,用于删除指定列或列的完整性约束条件 ALTER TABLE<表名> DROP COLUMN <列名>; ALTER TABLE<表名> DROP CONSTRAINT<完整性约束名>; 3)RENAME修改方式,用于修改表名称、列名称 ALTER TABLE <表名> RENAME TO <新表名>; ALTER TABLE <表名> RENAME <原列名> TO <新列名>; 4)ALTER修改方式,用于修改列的数据类型 ALTER TABLE <表名> ALTER COLUMN <列名> TYPE<新的数据类型>; ALTER TABLE Student ADD email varchar(10); 删: DROP TABLE <表名>; 注意: 该语句将删除该表的所有数据及其结构 DROP TABLE Register 数据库索引创建、修改、删除 创建 CREATE INDEX <索引名> ON <表名><(列名)>; //实例 CREATE INDEX Birthday_idx ON STUDENT (Birthday); 修改 ALTER INDEX <索引名> <修改项>; //例如 ALTER INDEX <索引名> RENAME TO <新索引名>; //修改实例 //例 在学生信息表Student中,将原索引Birthday_Idx更名为Bday_Idx,其索引修改SQL语句如下: ALTER INDEX Birthday_Idx RENAME TO Bday_Idx; 删除 DROP INDEX <索引名> ; //索引删除实例 DROP INDEX bday_idx; 数据操纵SQL语句 插入语句 INSERT INTO <表名|视图名>[<列名表>] VALUES (列值表); //实例 INSERT INTO Student VALUES('2022090916018','pluto','男','2005-01-26','软件工程','[email protected]'); //多条数据插入 INSERT INTO Student VALUES('2017220101106','张亮','男','1999-11-21','软件工程','[email protected]'); INSERT INTO Student VALUES('2017220101107','谢云','男','1999-08-12','软件工程','[email protected]'); INSERT INTO Student VALUES('2017220101108','刘亚','女','1999-06-20','软件工程',NULL); 更新语句 UPDATE <表名|视图名> SET <列名1>=<表达式1> [,<列名2>=<表达式2>...] [WHERE <条件表达式>]; //实例 UPDATE Student SET Email = '[email protected]' WHERE StudentName = 'pluto'; 删除语句 DELETE FROM <表名|视图名> [WHERE <条件表达式>]; //实例 DELETE FROM Student WHERE StudentName = '张三'; 数据查询SQL语句 SELECT [ALL|DISTINCT] <目标列>[,<目标列>…] [ INTO <新表> ] FROM <表名|视图名>[,<表名|视图名>…] [ WHERE <条件表达式> ] [ GROUP BY <列名> [HAVING <条件表达式> ]] [ ORDER BY <列名> [ ASC | DESC ] ]; 看PPT吧。过于多了 ...