SQL语言概述及如何利用SQL建立数据库

(以下是在中国大学MOOC上学习后的笔记)
SQL重点与难点
SQL-DDL的基本语句:CREATE DATABASE, CREATE TABLE
SQL-DML的基本语句:INSERT, DELETE,UPDATE, SELECT
SQL-SELECT语句的训练:正确表达各种查询需求

SQL语言是集DDL、DML和DCL于一体的数据库语言。
SQL语言主要由以下9个单词引导的操作语句来构成,但每一种语句都能表
达复杂的操作请求。
DDL语句引导词:Create(建立),Alter(修改),Drop(撤消)
模式的定义和删除,包括定义Database,Table,View,Index,完整性约束
条件等,也包括定义对象(RowType行对象,Type列对象)
DML语句引导词:Insert ,Delete, Update, Select
各种方式的更新与检索操作,如直接输入记录,从其他Table(由SubQuery
建立)输入
各种复杂条件的检索,如连接查找,模糊查找,分组查找,嵌套查找等
各种聚集操作,求平均、求和、…等,分组聚集,分组过滤等
DCL语句引导词:Grant,Revoke
安全性控制:授权和撤消授权

建立数据库
包括两件事:定义数据库和表(使用DDL),向表中追加元组(使用DML)
DDL: Data Definition Language
创建数据库(DB)—Create Database
创建DB中的Table(定义关系模式)—Create Table

定义Table及其各个属性的约束条件(定义完整性约束)
定义View (定义外模式及E-C映像) 定义Index、Tablespace… …等(定义物理存储参数)
上述各种定义的撤消与修正
DDL通常由DBA来使用,也有经DBA授权后由应用程序员来使用
DML: Data Manipulation Language
向Table中追加新的元组:Insert
修改Table中某些元组中的某些属性的值: Update
删除Table中的某些元组: Delete
对Table中的数据进行各种条件的检索: Select
DML通常由用户或应用程序员使用,访问经授权的数据库

创建Database
数据库(Database)是若干具有相互关联关系的Table/Relation的集合
数据库可以看作是一个集中存放若干Table的大型文件
create database的简单语法形式:create database 数据库名;
示例:创建课程学习数据库SCT
create database SCT;
接着就可创建表了。

创建Table
create table简单语法形式:
Create table 表名( 列名 数据类型 [Primary key|Unique] [Not null][, 列名 数据类型 [Not null] , … ]) ;
“ [ ] ”表示其括起的内容可以省略,“ | ” 表示其隔开的两项可取其一
Primary key: 主键约束。每个表只能创建一个主键约束。
Unique: 唯一性约束(即候选键)。可以有多个唯一性约束。
Not null: 非空约束。是指该列允许不允许有空值出现,如选择了Not null表
明该列不允许有空值出现。
语法中的数据类型在SQL标准中有定义
在SQL-92标准中定义的数据类型:
char (n) :固定长度的字符串
varchar (n) :可变长字符串
int :整数 // 有时不同系统也写作integer
numeric (p,q) :固定精度数字,小数点左边p位,右边p-q位
real :浮点精度数字 //有时不同系统也写作float(n),小数点后保留n位
date :日期 (如 2003-09-12)
time : 时间 (如 23:15:003)

示例:定义学生表 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) )
在这里插入图片描述
接着可向表中追加元组了。

向表中追加元组
insert into简单语法形式:
insert into 表名[ (列名 [, 列名 ]… )]
values (值 [, 值] , …) ;

values后面值的排列,须与into子句后面的列名排列一致
若表名后的所有列名省略, 则values后的值的排列,须与该表存储中的
列名排列一致

示例:追加学生表中的元组
Insert Into Student /*所有列名省略,须与定义或存储的列名顺序一致
Values ( ‘98030101’ , ‘张三’, ‘男’, 20, ’03’, ‘980301’);

Insert Into Student ( S#, Sname, Ssex, Sage, D# , Sclass)
Values ( ‘98030102’ , ‘张四’, ‘女’, 20, ’03’, ‘980301’);

/*如列名未省略,须与语句中列名的顺序一致
在这里插入图片描述
示例:追加课程表中的元组
Insert Into Course
Values ( ‘001’ , ‘数据库’, 40, 6, ’001’);

Insert Into Course(Cname, C#, Credit, Chours, T#)
Values (‘数据库’, ‘001’, 6, 40, ‘001’);

在这里插入图片描述

发布了35 篇原创文章 · 获赞 115 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/LoraRae/article/details/105441914
今日推荐