关系数据库标准语言

SQL语言的特点:

(1)SQL是一种类似于英语的语言,语法简单。

(2)SQL是一种一体化语言,包括数据定义、数据查询、数据操作和数据控制等多方面的功能。

(3)SQL是一种非过程化的语言,用户不需要关心具体的操作过程。

(4)SQL是一种面向集合的语言,每个命令的操作对象是一个或多个关系,结果也是一个关系。

(5)SQL既是自含式语言,又是嵌入式语言。

(6)SQL具有数据查询、数据定义、数据操纵和数据控制四种功能。

数据定义

创建数据库:

//创建数据库
create database <数据库名字>;
//创建数据表
create table <表明>(
    id int NOT NULL AUTO_INCREMENT,
    name varchar(20) NOT NULL,
    sex char(1) DEFAULT '男',
    score NUMERIC(4,1) CHECK(score>=0 AND score<=100),
    PRIMARY KEY(id)
    );
//约束
//AUTO_INCREMENT 自增
//NOT NULL 非空
//DEFAULT 默认值
//设置唯一约束
//[CONSTRAINT <约束名>] UNIQUE 可以设置多行约束和一个表内可以有多个约束
//[CONSTRAINT <约束名>] PRIMARY KEY(属性名) 主键约束 一个表只能有一个主键约束
//外键约束[CONSTRAINT <约束名>] FOREIGN KEY 参照性约束
//CHECK 约束,检查字段所允许的范围,确保域的完整性。

这里需要注意的是 UNIQUE约束和主键约束类似,但是有很大的区别:

在一个关系表中,主键约束只能存在一个,但是UNIQUE约束可以存在多个;

主键约束的不允许出现NULL值,但是UNIQUE允许出现NULL;

不能为同一列或者一组列同时定义主键约束和UNIQUE约束。

修改数据表

ADD方式
ALTER TABLE <表名> ADD <列定义>|<完整性约束定义>
//添加列和完整性约束

ALTER方式
ALTER TABLE <表名> ALTER COLUMN <表名> <数据类型>
//修改列

DROP方式
ALTER TABLE <表名> DROP CONSTRAINT <约束名>
//删除完整性约束

删除基本表

DROP TABLE <表名>

单关系数据查询

SELECT [ALL|DISTINCT] <列名> [AS 别名]
    FROM <表名> [AS 别名]
    [WHERE <检索条件>]
    [GROUP BY <列名> [HAVING <条件表达式>]]
    [ORDER BY <列名> [ASC|DESC]]

无条件查询,没有where语句

条件查询:存在where语句,通过使用where语句控制查询的条件。

这里需要注意的是BETWEEN AND 和 '<' 和 '<=' 的区别,BETWEEN AND 包括取等的情况。

多重条件查询则采用AND和OR控制条件。

集合查询,使用IN和NOT IN进行集合查询

SELECT SNo,CNo FROM SC WHERE CNo IN ('C1','C2')

等同于:

SELECT SNo,CNo FROM SC WHERE CNo ='C1' OR CNo ='C2'

NOT IN 的用法类似与'<>'运算符

模糊查询:使用'LIKE'进行部分匹配查询

这里需要了解几个通配符'%'、'_'、'[]'、'[^]'详情可以参考此博客文章。

空值查询:查询的时候要写成<列名> IS NULL 不能写成 <列名>=NULL

常用库函数

AVG平均函数

SUM求和函数

MAX求最大值的函数

MIN求最小值的函数

COUNT按列值统计个数

分组查询

GROUP BY的用法

SELECT TNo,COUNT(*) AS C_Num
    FROM TC
    GROUP BY TNo

或者:

SELECT SNo,COUNT(*) AS SC_Num
FROM SC
GROUP BY SNo
HAVING (COUNT(*)>=2)

//使用HAVING语句类似于WHERE语句,控制查询的条件

查询结果的排序

使用ORDER BY排序

注意ASC为升序,DESC为降序,默认排序方式为升序。

你可能感兴趣的:(数据库,sql,数据库,服务器)