關系數據庫——sql基礎1定義

關系數據庫標準語言SQL

基本概念

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

  2. SQL的特點:

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

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

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

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

    5)簡潔易學

數據庫的創建與基本概念

一、創建數據庫:

代碼:

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

注意:

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

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

數據類型:

201902279

注意:

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)

201903132

代碼:

/** 創建課程表*/
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

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445222.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445222.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445222.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

libcurl編程

一、curl簡介 curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持的協議有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理服…

大數據學習(09)--Hadoop2.0介紹

文章目錄目錄1.Hadoop的發展與優化1.1 Hadoop1.0 的不足與局限1.2 Hadoop2.0 的改進與提升2.HDFS2.0 的新特性2.1 HDFS HA2.2 HDFS Federation3. 新一代的資源管理器YARN3.1 MapReduce1.0 缺陷3.2 YARN的設計思路3.3 YARN 體系結構3.4 YARN工作流程3.5 YARN框架與MapReduce1.0框…

Java多線程常用方法

start()與run() start() 啟動線程并執行相應的run()方法 run() 子線程要執行的代碼放入run()方法 getName()和setName() getName() 獲取此線程的名字 setName() 設置此線程的名字 isAlive() 是判斷當前線程是否處于活動狀態。活動狀態就是已經啟動尚未終止。 curren…

MachineLearning(2)-圖像分類常用數據集

圖像分類常用數據集1 CIFAR-102.MNIST3.STL_104.Imagenet5.L-Sun6.caltech-101在訓練神經網絡進行圖像識別分類時,常會用到一些通用的數據集合。利用這些數據集合可以對比不同模型的性能差異。下文整理常用的圖片數據集合(持續更新中)。基本信息對比表格…

Linux網絡編程實例詳解

本文介紹了在Linux環境下的socket編程常用函數用法及socket編程的一般規則和客戶/服務器模型的編程應注意的事項和常遇問題的解決方法,并舉了具體代 碼實例。要理解本文所談的技術問題需要讀者具有一定C語言的編程經驗和TCP/IP方面的基本知識。要實習本文的示例&…

python的命令解析getopt.getopt()函數分析

【轉自http://hi.baidu.com/javalang/blog/category/Python】 可以參考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈論基礎

博弈論總結 什么是博弈論: 多人進行博弈,假設每個人都采取最優策略,一定有一個人勝出,在知道初態及規則的情況下,求解出 何人勝出的一類問題的理論及方法。 博弈論的一些性質 P點:必敗點,N…

矩陣論-范數理論及其應用

范數理論及其應用2.1向量范數及其性質2.2矩陣范數本系列博文主要總結學習矩陣論的心得筆記,參考數目《矩陣論》–張凱院;整個文章的整理體系參照行書過程。范數–非負實數,用于衡量線性空間元素(如:向量,矩…

大數據學習(09)--spark學習

文章目錄目錄1.spark介紹1.1 spark介紹1.2 scale介紹1.3 spark和Hadoop比較2.spark生態系統3.spark運行框架3.1 基本概念3.2 架構的設計3.3 spark運行基本流程3.4 spark運行原理3.5 RDD運行原理3.5.1 設計背景3.5.2 RDD概念和特性3.5.3 RDD之間的依賴關系3.5.4 stage的劃分3.5.…

探索 Pexpect

概述 通過本系列第一部分 《探索 Pexpect,第 1 部分:剖析 Pexpect 》(請參閱參考資料)的介紹,相信大家已經對 Pexpect 的用法已經有了比較全面的了解,知道 Pexpect 是個純 Python 語言實現的模塊&#xff…

Python的Pexpect詳解 [圖片]

Pexpect 是一個用來啟動子程序并對其進行自動控制的純 Python 模塊。 Pexpect 可以用來和像 ssh、ftp、passwd、telnet 等命令行程序進行自動交互。繼第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介紹了 Pexpect 的基礎和如何使用后,本…

關系數據庫——sql增刪改

數據的插入 插入元祖 --1. 表名后沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致 insert into student values (201215128, 陳東, 18, 男, IS);--2. 在表明后指定要插入數據的表名及屬性列,屬性列的順序可…

機器學習中的聚類方法總結

聚類定義 定義 聚類就是對大量未知標注 的數據集,按數據 的內在相似性將數據集劃分為多個類別,使 類別內的數據相似度較大而類別間的數據相 似度較小。是無監督的分類方式。 聚類思想 給定一個有N個對象的數據集,構造數據的k 個簇&#x…

學點數學(1)-隨機變量函數變換

隨機變量函數變換本文介紹一維隨機變量函數變換,參考文獻:https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html變換TTT作用于隨機變量XXX,產生隨機變量YYY. T:X?>Y或者寫為yT(x)T:X->Y 或者寫為 yT(x)T:X?>Y或者寫為yT(x…

關系數據庫——關系數據語言

關系 域:一組具有相同數據類型的值的集合(即取值范圍) 笛卡爾積:域上的一種集合運算。結果為一個集合,集合的每一個元素是一個元組,元組的每一個分量來自不同的域。 基數:一個域允許的不同取值…

Python模塊(2)-Numpy 簡易使用教程

Numpy模塊 簡易使用教程1.數組創建2.數組基本屬性-維度、尺寸、數據類型3.數組訪問-索引、切片、迭代4.數組的算術運算-加減乘除、轉置求逆、極大極小5.通用函數-sin,cos,exp,sqrtnp.dot與np.matmul的區別6.數組的合并和分割6.1 np.vstack(),np.hstack()6.2 np.stack()7.list與…

機器學習問題總結(01)

文章目錄1.請描述推薦系統中協同過濾算法CF的原理2.請描述決策樹的原理、過程、終止條件,以及如何防止過擬合2.1決策樹生成算法2.2 剪枝處理(防止過擬合)2.3 停止條件2.4 棵決策樹的生成過程2.5 決策樹的損失函數3.請描述K-means的原理&#…

pthread_attr_init線程屬性

1.線程屬性 線程具有屬性,用pthread_attr_t表示,在對該結構進行處理之前必須進行初始化,在使用后需要對其去除初始化。我們用pthread_attr_init函數對其初始化,用pthread_attr_destroy對其去除初始化。 1. …

Python實例講解 -- 解析xml

Xml代碼 <?xml version"1.0" encoding"utf-8"?> <info> <intro>信息</intro> <list id001> <head>auto_userone</head> <name>Jordy</name> <number&g…

springboot3——Email

maven導入包&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency> 參數配置&#xff1a; # MailPrope…