利用SQL语言建立数据库


一.学生选课数据库

  学生选课数据库就是5个表集合成的

学生:学号,姓名,性别,年龄,系别,班级
Student(S# char(8),Sname char(10),Ssex char(2),Sage integer,D# char(2),Sclass char(6))

院系:系别,系名,系主任
Dept(D# char(2),Dname char(10),Dean char(10))

课程:课程,课号,教师编号,学时,学分
Course(C# char(3),Cname char(12),Chours integer,Credit float(1),T# char(3))

教师:教师编号,教师姓名,所属院系,工资
Teacher(T# char(3),Tname char(10),D# char(2),Salary float(2))

选课:学号,课号,成绩
SC(S# char(8),C# char(3),Score float(1))

二.建立数据库的步骤

1.使用DDL语言定义数据库和表(Table)

  (1)创建数据库——Create DateBase

  (2)定义关系模式——Create Table

     (3)定义完整性约束

     (4)定义外模式和 E-C映像

     (5)定义物理存储参数

  (6)上述各种定义的撤销与修正

DDL通常由DBA来使用,也有经DBA授权后由应用程序员来使用

2.Create DateBase

  (1)对于数据库的理解

    数据库是若干具有相互关联关系的 Table/Relation 的集合

    数据库可以看做是一个集中存放若干 Table 的大型文件

  (2)Create DateBase的简单语法格式

    create database 数据库名;

    Example:create database SCT;

  (3)Create Table的简单语法格式

    Create table 表名(列名 数据类型 [Primary key | Unique] [Not null]  [,列名 数据类型 [Not null] , ...);

    注:【】中的内容可以省略;“ | ”表示二选一;定义一个Table至少要有一列 

    1)Primary key:主键约束,每个表只能创建一个主键约束

    2)Unique:唯一性约束,可以有多个唯一性约束(候选键)

    3)Not null:非空约束,若选择了它,则该列不允许出现空值

    4)数据类型

      char(n):固定长度字符串

      varchar(n):可变长度字符串

      int:有些地方也写作integer

      numeric(p,q):固定精度数字,小数点左边 p 位,右边 q 位

      real:浮点数,小数点后保留 n 位,也可写作 float

      date:日期

      time:时间

   (4)创建数据库举例

      定义学生表Student:Create Table Student ( S# char(8) not null,Sname char(10),Ssex char(2),Sage integer,D# char(2),Sclass char(6));

      定义课程表Course:Create Table Course( C# char(3) ,Cname char(12),Chours integer,Credit float(1),T# char(3));

3.使用DML语言向表中追加元组

  (1)DML:Date Manipulation Language

  (2)向 table 中追加新的元组:Insert

     (3)修改 Table 中某些元组中的某些属性值:Update

     (4)删除 Table 中的某些元组:Delete

     (5)对 Table 中的数据进行各种条件的检索:Select

4.向表中追加元组

  (1)insert into 的简单语法形式

      insert into 表名 [ ( 列名 ) [,列名 ] ...]

          values ( 值 [,值 ],... );

  (2)对 insert into 语句的理解

    1)values  后面值的排列,须与 into 子句后面的列名排列一致

    2)若表名后的所有列名省略,则 values 后的值的排列,须与该表存储中的列名排列一致

  (3)举例

    1)追加学生表中的元组(两种格式)

    Insert into Student

    Values ( '98030101', '张三', '男', 20, '03', '980301' );

    Insert into Student ( S#, Sname, Ssex, Sage, D#, Sclass )

    Values ( '98030102', '李四', '女', 20, '03', '980301' );

    2)追加课程表中的元组

    所有列名省略时,值须与定义或存储的列名顺序一致

    Insert into Course

    Values ( '001', '数据库', 40, 6, '001' );

    列名未省略时,值须与 Insert into 语句中的列名顺序一致

    Insert into Course ( Cname, C#, Credit, Chours, T# )

    Values ( '数据库', '001', 6, 40, '001' )

相关