日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

关系数据库——sql基础1定义

發布時間:2023/12/13 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关系数据库——sql基础1定义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關系數據庫標準語言SQL

基本概念

  • SQL語言是一個功能極強的關系數據庫語言。同時也是一種介于關系代數與關系演算之間的結構化查詢語言(Structured Query Language),其功能包括數據定義、數據查詢、數據操縱和數據控制

  • SQL的特點:

    1)綜合統一:集數據定義、數據查詢、數據操縱和數據控制等多種功能于一體。

    2)高度非過程化 :面對象的設計

    3)面向集合的操作方式 :操作對象是集合,并且操作結果也是集合

    4)兩種使用方式,統一的語法結構 :既是一種獨立的語言,又是一種嵌入式的語言,(嵌入式是指嵌入別的高級語言)。

    5)簡潔易學

  • 數據庫的創建與基本概念

    一、創建數據庫:

    代碼:

    create database Student; --創建數據庫 use Student; --使用數據庫 drop database Student; --刪除數據庫

    注意:

    1)兩種注釋方式:(1)兩個減號--,注釋單行 (2)/* */注釋多行

    2)不能再當前數據庫刪除當前數據庫

    數據類型:

    注意:

    1)一個屬性采用何種數據類型由兩部分決定:(1)該屬性的取值范圍;(2)該屬性做何種運算。

    模式的創建與刪除

    模式,一個獨立于數據庫用戶的非重復命名空間,在這個空間中可以定義該模式包含的數據庫對象,例如基本表、視圖、索引等。

    代碼:

    /** 創建模式zhang,下鍵表student*/ create schema zhangcreate table student(Sno char(9) primary key,Sname varchar(20) unique,Ssex char(4) not null,Sage smallint,Sdept varchar(5) );/** 刪除模式中的表*/ drop table zhang.student;/** 刪除模式*/ drop schema zhang; --注意前提該模式下無對象

    注意:

    1)刪除模式的時候首先應當將模式下的所有對象刪除,才能刪除該模式

    2)在刪除某個非dbo模式下的表時,需要加模式名

    3)該模式不是三級模式兩級映像中的模式,而是相當于一個命名空間(主要可以解決重名的問題)

    4)CASCADE(級聯):刪除模式的同時把該模式中所有的數據庫對象全部刪除(SQL Server不支持)

    5)RESTRICT(限制):只有當該模式中沒有任何下屬的對象時才能執行

    表的定義、刪除與修改

    一、創建表(三張):(1)學生表(Student)(2)課程表(Course)(3)學生課程表(SC)

    1)學生表(Student)

    ?代碼:

    /** 未添加數據*/ create table student (Sno char(9) primary key, --primary key 指示主碼Sname varchar(20) unique, --unique 指示值唯一,Ssex char(4) not null, --not null 該值非空Sage smallint,Sdept varchar(5) );

    2)課程表(Course)

    代碼:

    /** 創建課程表*/ create table Course (Cno char(2) primary key,Cname varchar(10) unique,Cpno char(2), --Cpno是外碼,參照的是自身的CnoCcredit smallint,foreign key (Cpno) references Course(Cno) --外碼 );

    3)學生-課程表

    ?

    代碼:

    /** 創建學生-課程表*/ create table SC (Sno char(9),Cno char(2),Grade int,primary key(Sno, Cno), --多個屬性列構成主碼,寫在最后foreign key(Sno) references student(Sno), --外碼, 每個外碼寫一行foreign key(Cno) references Course(Cno) );

    注意:

    1)創建表的時候需要考慮三個完整性約束條件:實體完整性,參照完整性,用戶自定義完整性

    2)兩種完整性約束條件的定義方式:

    • 列級完整性約束條件:涉及相應屬性列的完整性約束條件,在屬性列的后邊定義。

    • 表級完整性約束條件:涉及一個或多個屬性列的完整性約束條件 ,在將屬性列完之后定義。

    3)外碼要和所參照的主碼類型相同。表級完整性約束的時候屬性列需要加括號。

    二、修改表

    增加列

    alter table student add graduation date; /* 1. 指定要修改的表 2. add關鍵字 3. 新增列的屬性名 4. 新增列的數據類型 */

    刪除列

    alter table student drop column graduation;

    修改列的數據類型

    alter table student alter column graduation varchar(20);

    增加約束

    /*這種增加約束的方法不容易從左邊的框框(鍵)中看出來*/ alter table student add unique(graduation);/*給增加的約束自定義了一個別名,容易區分*/ alter table student add constraint S_un unique(graduation);/*注意*/ --1. 不可以使用增加not null約束,想要添加只可以在設計中將勾去掉 --雖然以下的方式看似添加了not null約束,但是不起任何作用 alter table student add constraint cc check(sname is not null);--2. 給某一屬性列添加主鍵,需要保證該屬性列不允許為空,剛建的新表在未加約束的情況下,默認屬性列允許為空值 alter table student add primary key(sno,cno);--3. 添加外鍵,需要保證外碼和被參照表的主屬性的數據類型保持一致 alter table student add foreign key (sno) references student(sno);

    刪除約束

    /*通過指定的約束名字刪除指定的約束*/ alter table student drop constraint S_un;/*在左邊單機右鍵刪除*/

    三、刪除表

    /*刪除表的時候必須先將參照表干掉,再刪除被參照表*/ drop table student;

    索引的建立與刪除

    建立索引的目的是加快數據查詢的速度。DBA或者表的屬主可以根據需要建立表的索引;但是有些DBMS可以自動建立以下索引,1)PRIMARY KEY索引(聚簇索引)2)UNIQUE索引(唯一性索引)

    一、創建索引

    /*創建唯一性索引*/ /** stu為索引名字,創建索引必須要有一個索引名* 列名后面緊跟排序類型,ASC為升序,DESC為降序,默認為ASC,可以有多個列,用逗號隔開。* 對于已經包含重復值的屬性列不可以增加唯一性索引 */ create unique index S_nn on student(graduation asc);/*創建聚簇索引(聚集)*/ Create clustered index stu on student(sage desc); /** 聚簇索引的關鍵字為clustered,不是書上有誤,而是sqlserver是這樣* 同樣,列名后面緊跟排序類型,可以有多個列,用逗號隔開。* 聚簇索引嚴格按照物理存儲位置來排序。* 不可以在有主鍵的表中創建索引* 一個表只能創建一個聚簇索引 */

    二、刪除索引

    /*注意:刪除索引必須為表名+索引名*/ drop index student.stu

    ?

    總結

    以上是生活随笔為你收集整理的关系数据库——sql基础1定义的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。