关系数据库的标准语言----------结构化查询语言(Structured Query Language),SQL语言是介于关系代数 和元组演算 之间的一种语言。

一、历史

1986年10月,美国国家协会(ANSI)发布了ANSI文件X5.135-1986《数据库语言SQL》,1987年6月国际化标准化协会(ISO)采纳为国际标准。这两个标准现在称为“SQL86”。

1989年10月ANSI又颁布了增强完整性特征的SQL89标准。随后,ISO对标准进行了大量的修改和扩充。

1992年8月ISO 发布了标准化文件ISO/IEC9075:1992《数据库语言SQL》,人们习惯称标准为SQL92-----“SQL2”。

1999年ISO发布了标准化文件:ISO/IEC9075:1999年《数据库语言SQL》,人们习惯称为SQL----“SQL3”。

二、数据库的体系结构

SQL数据库的体验结构基本上也是三级结构,但属于与关系模型的术语不同。在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“行”。

SQL数据库的体系结构要点如下:

(1)一个SQL模式是表和约束的集合。

(2)一个表由行集构成,一行是列的序列,每列对应一个数据项。

(3)表有三种类型:基本表,视图和导出表。基本表是实际存储在数据库中的表,视图是由若干基本表或其他视图构成。导出表是执行了查询时产生的表。

(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可以存放一个或多个基本表。每一个存储文件与外部存储器上一个物理文件对应。

体系结构:

三、SQL的组成

核心的SQL主要有四个部分组成:

(1)数据定义语言,即SQL DDL。

(2)数据操纵语言,即SQL DML。

(3)嵌入式SQL语言的使用规定。

(4)数据控制语言,即SQL DCL。

四、SQL 的特点

SQL具有如下特点,

(1)SQL具有十分灵活和强大的查询功能。

(2)SQL 不是一个应用开发语言,它只提供对数据的操作功能,不能完成屏幕操作、菜单管里,报表生成等功能。

(3)SQL 是国际标准语言,有利于各种数据库之间交换数据。

(4)SQL 简单易学,完成核心功能只用了9个英语单词。

创建模式(数据库):

一个SQL模式定义为基本表的集合,模式可以理解成架构;一个SQL 模式由模式名和模式拥有者的用户名或账号来确定;创建SQL模式,就是定义了一个存储空间。

创建模式:

语法:

CREATE  SCHEMA<模式名>QUTHORIZATION<用户名>

例如:

CREATE  SCHEMA  st_co  AUTHORIZATION  lismith;

该模式名为:st_co ,拥有者为 lismith。

删除模式:

语法:

DROP  SCHEMA <模式名> [ CASCADE | RESTRICT ]

CASCADE(级联式)方式:全部撤销。

RESTRICT(约束式)方式:当SQL模式中没有任何下属元素时才能删除SQL模式。

例:

DROP  SCHEMA  ST_CO  CASCADE;

“SQL模式” 学术味太重。大多数据库称为“创建数据库”,语句如下:

CREATA  DATABASE <数据库名>

DROP  DATABASE  <数据库名>

SQL基本数据类型

(1)数值型

INTEGER  长整型

SMALLINT 短整型

REAL        浮点型

DOUBLE PRECISION 双精度浮点数

FLOAT (n)               浮点数,精确到小数点后n位

NUMERIC(p,d)         定点数,有p位数,小数点后面有d位数

(2)字符串型

CHAR(n)   长度为n的定长字符串

VARCHAR(n)   具有最大长度为n的变长字符串

(3)位串型

BIT(n)  长度为n的二进制位串

BIT  VARYING(n)   最大长度为n的二进制位串

(4)时间型

DATE  日期型,年月日

TIME   时间型,时分秒

注:不同的数据库要比以上的数据类型丰富。

http://www.w3school.com.cn/sql/sql_datatypes.asp

创建数表:

对基本表结构的操作有 创建、修改和删除

1、基本表的创建

语法:

CREATE  TABLE <基本表名>

(<列名  类型>,

........

<完整性约束>,

........ )

例:

CREATE  TABLE  biao

(id#  CHAR(4)  NOT  NULL,

name  CHAR(8)  NOT  NULL,

title    CHAR(10),

PRIMARY  KEY(id#)

FOREIGN  KEY(name#)  REFERENCES  biao2(name#));

biao 为表名,

id# 为字段名,CHAR(4)字段类型与长度,NOT  NULL表示字段不能为空;

PRIMARY  KEY(id#) 表示id#字段为主键。

FOREIGN  KEY(name#)  REFERENCES  biao2(name#)  表示外键name# 与biao2的name#对应。

2、基本表的修改

在基本本建立一段时间后,可以根据实际需要对基本表进行修改。

(1)增加新的列用“ALTER.....ADD.....”语句,句法如下:

ALTER  TABLE<基本表名> ADD<列名><类型>

例:在一个表S中增加一个地址(address)列,可用下列语句:

ALTER  TALBLE  S  ADD  address  varchar (30);

(2)删除原有列用“ALTER ...DROP....”语句,其句法如下:

ALTER  TABLE<基本表名>DROP<列名>[CASCADE | RESTRICT]

例:在基本表S中删除年龄(age)列

ALTER  TABLE  S  DROP  age  CASCADE;

(3)修改原有列的类型、宽度用“ALTER ....MODIFY.....”,句法如下:

ALTER  TABLE<基本表名> MODIFY <列名><类型>

例:在基本表S 中NAME 的长度为6

ALTER  TABLE  S  MODIFY  name char(6);

3、基本表的删除

在基本表不需要时,可以用“DROP TABLE” 语句删除。句法:

DROP  TABLE <基本表名> [CASCADE | RESTRICT]

例:需要删除S 表

DROP  TABLE  S  RESTRICT;

创建索引

1、索引的创建

创建索引用“CREATE  INDEX”语句实现。

CHARTE [UNIQUE] INDEX <索引名> NO <基本表名>(<列表序列>)

例:对S表创建索引。

CHARTE  UNIQUE  INDEX  id_index  NO  S(id)

UNIQUE表示每个索引值对应唯一的数据记录。

2、索引的删除

删除索引用“DROP INDEX”,语法下:

DROP  INDEX<索引名>

例:

DROP  INDEX  id_index,sc_index;

查询语句

查询SQL 语言的主要功能。相比其它操作的用法也比较复杂。

1、聚合函数

SQL提供了下聚合函数:

COUT(*)      计算元组的个数

COUNT(<列名>)    对一列中的值计算个数

SUM(<列名>)   求某一列值的总和

AVG(<列名>)   求某一列值的平均值

MAX(<列名>)   求某一列值的最大值

MIN(<列名>)   求某一列值的最小值

例:求S表,学生的总人数和平均年龄。

SELECT  COUNT(*),AVG(AGE)

FROM  S

2、字符串的匹配符

百分号(%):匹配零个或多个字符

下划线(_): 匹配单个字符

例:查询姓“张”的人

SELECT  *  FROM  S  WHERE  name=“张%”

3、SELECT语句句法:

SELECT<目标表名和(或)视图序列>

FROM<基本表名和(或)视图序列>

[WHERE<行条件表达式>]

[GROUP  BY<列名序列>

[HAVING<组条件表达式>]]

[ORDER  BY <列名[ASC | DESC]>,....]

(1)SELECT .... FROM .....WHERE .....;最基本的查询格式。

(2)GROUP 子句中指定列的值分组,提取满足HAVING子句中组条件表达式的组。

(3)ORDER子句对输出的目标表进行排序,ASC升序排列(默认可以不写),DESC降序排列。

例1:Orders表,查找每个客户的总金额(总订单)。

我们想要使用 GROUP BY 语句对客户进行组合。

SELECT  Customer,SUM(OrderPrice)  FROM  Orders

GROUP  BY  Customer

GROUP BY 详细用法:

http://www.w3school.com.cn/sql/sql_groupby.asp

例2:Orders表,查找订单总金额少于 2000 的客户。

用HAVING 筛选分组条件,我们使用如下 SQL 语句:

SELECT  Customer,SUM(OrderPrice)  FROM  Orders

GROUP  BY  Customer

HAVING  SUM(OrderPrice)<2000

例3:Orders表,对定单对进行降序。

SELECT  Customer,OrderPrice  FROM  Orders

ORDER  BY  OrderPrice  DESC

数据更新

1、数据插入

(1)单元组的插入

INSERT  INTO <基本表名>[(<列名序列>)]

VALUES(<元组值>)

(2)多元组的插入

INSERT  INTO <基本表名>[(<列名序列>)]

VALUES(<元组值>),(<元组值>),...........,(<元组值>)

(3)查询结果的插入

INSERT  INTO <基本表名>[(<列名序列>)]

查询语句>

(4)表的插入

INSERT  INTO <基本表名1>[(<列名序列>)]

TABLE<基本表名2>

这个语句把基本表2的值插入到基本表1中。

例1:

INSERT  INTO  S(id,name)

VALUES(‘001’,‘张三’);

例2

INSERT  INTO  S(ID,NAME)

VALUES(‘001’,‘张三’),

(‘002’,‘李四’)

(‘003’,‘王五’);

例3:在基本表S中,把成绩大于80分的学生的学号和平均成绩存入另一个已存在的基本表S2(ID,SCORE)。

INSERT  INTO  S2(id,score)

SELECT  id,score

FROM  S  WHERE  score > 80 ;

例4:某个班级的选课情况已经在基本表S(ID,NAME,SEX),把S的数据插入到表S2中。

INSERT  INTO  S2(id,name,sex)

TABLE  S;

2、数据删除

SQL的删除操作是指从基本表中删除行,其句法如下:

DELETE  FROM<基本表名>

[WHERE<条件表达式>]

例:把课程名为maths的成绩从基本表S中删除

DELETE  FROM  S

WHERE  cname=‘maths’;

3、数据修改

修改表中元组的某些值时,可以用UPDATA 语句实现。句法如下:

UPDATE<基本表名>

SET<列名> <值表达式>[,<列名>=<值表达式>] | ROW (<元组>)

[WHERE<条件表达式>]

例1:对基本表S,把C5课程名改为DB

UPDATA  S

SET  CNAME=‘DB’

WHERE  class_id=‘C5’;

例2,在S表中,把课程号为C5的元组修改为(C5,DB,T3)

UPDATE  S

SET  ROW=(‘C5’,‘DB’,‘T3’)

WHERE  class_id=‘C5’

创建视图的

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

1、视图的创建

创建试图用“CREATE  VIEW”语句实现。句法如下:

CREATE  VIEW <视图名>(<列表序列>)

查询语句>

例:对数据库中表S,SC,C,用户经常用到的sname,cname,score等列的数据,创建视图。

CREATE  VIEW  STUDENT_SCORE(sname,cname,score)

FROM  S,SC,C

WHERE  S.id = SC.id  AND  SC.id = C.id ;

2、视图的删除

不需要视图时,用“DROP  VIEW” 删除,句法:

DROP  VIEW <视图名>

例:

DROP  VIEW  STUDENT_SCORE;

3、操作视图

试图的查询(SELECT)操作与表基本一样。但对于视图中元组的更新操作就不一样了。

如果视图是从单个基本表只使用选择、投影操作导出的,并且包含了基本表的主键,那么这样的视图称为“行列子集视图”。允许用户更新的试图在定义时必须加上“WITH  CHECK  OPTION”。

例:定义一个有关男学生的视图:

CREATE  VIEW  S_MALE

AS  SELECT  id,sname,age

FROM  S

WHERE  sex=”M”

WITH  CHECK  OPTION;

asp sql ip地址排序_SQL语言基础相关推荐

  1. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...

  2. python对ip地址排序、对列表进行去重

    一:使用python对ip地址排序所用代码示例一: import socketiplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3','1 ...

  3. sql isnull怎么没用_SQL语言在数据工程(Data Engineering)中的运用(一)

    我与SQL的纠葛好几年前就开始了,在不断炒冷饭的过程中终于接了几个不错的项目,把冷饭变成了温饭.今天就借此机会,与大家分享一下自己在项目中的心路历程,从中学习到的SQL在数据工程中的运用,代码分享,代 ...

  4. 10亿个IP地址排序、10亿年龄排序

    (一). 注意:IPV4 的IP地址2^32位约42亿个,占空间4G (二).哈希函数 1.哈希函数即散列函数 哈希函数的输入域可以是非常大的范围,但是输出域是固定范围. 2.哈希函数的性质: a.典 ...

  5. excel表格中IP地址排序

    excel表格中有一列IP地址,需要排序,发现排列的非常乱,如: 192.168.0.10 192.168.0.111 192.168.0.2 192.168.0.21 ...... 先用下面这个方法 ...

  6. IP地址转换--C语言

    IP地址转换 一个IP地址是用四个字节(每个字节8个位)的二进制码组成.请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出. 输入格式: 输入在一行中给出32位二进制字符串. 输出格式 ...

  7. linux c语言变量地址类型,C语言基础知识:访问内存地址的方法

    汇编语言寄存器间接寻址方法 #define GPJ0CON0xE0200240 ldr r0, =GPJ0CON //把地址值赋给寄存器r0,从后面的=可以看出用的是ldr伪指令,因为需要编译器来判断 ...

  8. Excel表格中实现IP地址排序

    需要插入辅助列,用辅助列来进行排序,公式如下: =TRIM(TEXT(LEFT(SUBSTITUTE(A1,".",REPT(" ",99)),100),&qu ...

  9. go for 循环遍历数组并排序_Go语言基础教程:for循环语句

    一.程序的流程结构 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构. 顺序结构:代码从上向下逐行的执行 选择结构:条件满足,某些代码才会被执行.0-1次 if语句,switch语句 循环结 ...

最新文章

  1. python用于什么-python主要应用在哪些领域?
  2. iOS - NSUserDefaults 实现数据的持久化保存
  3. python语言画心_python语言还是java如何用python画爱心
  4. 003-神经网络基础-最优化,前向传播,反向传播
  5. C语言中调用可执行程序的方法。
  6. sql编程接收一个集合_T-SQL是基于集合的编程方法的资产
  7. 深度学习中端到端的理解
  8. word论文排版操作
  9. 自建企业邮箱如何选择服务器
  10. 逻辑设计基础_芯片设计--TCAM概述
  11. 高等数学:数列前后项【递推式的单调性】与【整个数列单调性】的关系
  12. 手把手教你如何通过Java给图片添加文字和图片水印
  13. 集成Euraka的SpringBoot工程禁止输出日志:ConfigClusterResolver : Resolving eureka endpoints via configuration的方法
  14. 互联网日报 | 6月20日 星期日 | 宁德时代否认强制员工购买特斯拉;小米618支付金额破190亿元;岚图FREE正式上市...
  15. OTA 简介和常见源码目录-1
  16. linux——搭建NTP服务器
  17. Linux Debian常用下载工具Transmission和qbittorrent
  18. 分享几个网址二维码生成api
  19. 全球名校AI课程库(25)| MIT麻省理工 · 机器学习导论课程『Introduction to Machine Learning』
  20. 计算机毕业设计-基于微信小程序的大学生心理预约咨询系统-心理测试小程序

热门文章

  1. domtoimage截屏报错Uncaught(in promise)
  2. Java中feign的独立使用
  3. php 生成bmp图片,[GD]生成bmp格式的图片(imagebmp)
  4. ARM汇编部分全称(CPSID、CPSIE全称)
  5. 最全白话文git学习教程,最适合入门及深造
  6. 浅谈服务治理、微服务与Service Mesh(二) Spring Cloud从入门到精通到放弃
  7. 计算机网络——媒体接入控制
  8. 星起航:抖音小店项目值得投资吗?
  9. 因为看淡,所以快乐,因为看清所以释然,多一点淡然;多一点豁达;
  10. Android中实时获取声音频率