數據庫學習之路 三 SQL語言基礎與操作運用

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 ) )
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章