数据库学习之路 三 SQL语言基础与操作运用

落爺英雄遲暮 提交于 2020-03-07 07:07:36

SQL语言基础

1986年10月由美国ANSI 公布最早的SQL标准。
1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89 。
1992年11月,ISO又公布了新的SQL标准,称为SQL-92(以上均为关系形式)。
1999年颁布SQL-99,是SQL92的扩展。、

SQL语言的特点

1. 一体化。
2. 高度非过程化。
3. 简洁。
4. 使用方式多样。

四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。
在这里插入图片描述

SQL的数据类型

  • 数值型 字符串型 日期时间型 货币型

  • **准确型

  • 整数

  •  	Bigint: 8字节,         Int:4字节 Smallint:2字节,   Tinyint:1字节  Bit:1位,存储1或0 
    
  • 小数

  •  Numeric(p,q)或Decimal(p,q),  其中:p为数字位长度,q:小数位长度。
    
  • 近似型

    Float:8字节 Real:4字节
    

基本表的定义、删除及修改

1.定义基本表

     使用SQL语言中的CREATE  TABLE语句实现,其一般格式为:
CREATE  TABLE  <表名>(
    <列名>  <数据类型>  [列级完整性约束定义]
{,  <列名>  <数据类型> 
    [列级完整性约束定义] … }
[, 表级完整性约束定义 ] ) 
NOT NULL:限制列取值非空。
DEFAULT:给定列的默认值。
UNIQUE:限制列取值不重。
CHECK:限制列的取值范围。
PRIMARY KEY:指定本列为主码。
FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:
[FOREIGN KEY(<外码列名>)] REFERENCES <外表名>(<外表列名>) 
NOT NULL和DEFAULT只能是列级完整性约束;
其他约束均可在表级完整性约束处定义。
注意以下几点:
第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;
第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY(列1{[,列2 ] …});
第三,如果在表级完整性约束处定义外码,则“FOREIGN KEY (<外码列名>)”部分不能省。

创建学生表

CREATE TABLE Student (
  Sno     char ( 7 )  PRIMARY KEY,
  Sname char ( 10 ) NOT NULL,
  Ssex    char (2)  
             CHECK (Ssex = '男' OR Ssex = '女'), 
  Sage    tinyint  
         CHECK (Sage >= 15 AND Sage <=45),
  Sdept   char (20 ) DEFAULT '计算机系'
)

创建课程表

CREATE TABLE Course (
  Cno    char(10)  NOT NULL,
  Cname  char(20)  NOT NULL,
  Ccredit  tinyint CHECK (Ccredit > 0),
  Semester tinyint CHECK (Semester > 0),
  Period  int CHECK (Period > 0),
  PRIMARY KEY(Cno) 
) 

创建SC表

CREATE TABLE SC (
  Sno    char(7)  NOT NULL,
  Cno   char(10)  NOT NULL,
  Grade  tinyint,
  CHECK (Grade >= 0 and Grade <= 100),
  PRIMARY KEY ( Sno, Cno ),
  FOREIGN KEY ( Sno )  
      REFERENCES  Student ( Sno ),
  FOREIGN KEY ( Cno )  
      REFERENCES  Course ( Cno ) )
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!