关系数据库标准语言SQL及其软件MySQL使用

文章目录

  • 一、SQL概述
    • 1.1 SQL特点
    • 1.2 SQL的基本概念
  • 二、数据定义
    • 2.1 模式的定义与删除
    • 2.2 基本表的定义、删除与修改
    • 2.3 索引的建立与删除
  • 三、数据查询
    • 3.1 语句格式
    • 3.2 单表查询(仅涉及一个表)
    • 3.2 连接查询
    • 3.3 嵌套查询
    • 4.4 SELECT语句的一般格式
  • 四、数据更新
    • 4.1 插入数据
    • 4.2 修改数据
    • 4.3 删除数据
  • 五、MySQL使用
    • 5.1、MySQLworkbench中
    • 5.2 在Navicat Premium中
  • 六、结语

一、SQL概述

SQL(Structured Query Language)为结构化查询语言,是关系数据库的标准语言。

1.1 SQL特点

1.综合统一
(1)集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
(2)可以独立完成数据库生命周期中的全部活动:
①定义关系模式,插入数据,建立数据库;
②对数据库中的数据进行查询和更新;
③数据库重构和维护
④数据库安全性、完整性控制等

(3)用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。
(4)数据操作符统一
2.高度非过程化:无须了解存取路径
3.面向集合的操作方式:
①操作对象、查找结果可以是元组的集合;
②一次插入、删除、更新操作的对象可以是元组的集合。

4.以同一种语法结构提供多种使用方式:
①能够独立地用于联机交互的使用方式;
②SQL又是嵌入式语言:能够嵌入高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用。
5.语言简洁,易学易用:
关系数据库标准语言SQL及其软件MySQL使用_第1张图片

1.2 SQL的基本概念

关系数据库标准语言SQL及其软件MySQL使用_第2张图片
关系数据库标准语言SQL及其软件MySQL使用_第3张图片
学生-课程数据库
学生-课程模式 S-T :
(1)学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
关系数据库标准语言SQL及其软件MySQL使用_第4张图片(2)课程表:Course(Cno,Cname,Cpno,Ccredit)
关系数据库标准语言SQL及其软件MySQL使用_第5张图片(3)学生选课表:SC(Sno,Cno,Grade)
关系数据库标准语言SQL及其软件MySQL使用_第6张图片

二、数据定义

SQL的数据定义功能: 模式定义、表定义、视图和索引的定义
关系数据库标准语言SQL及其软件MySQL使用_第7张图片

2.1 模式的定义与删除

1.定义模式
(1)定义模式实际上定义了一个命名空间
(2)在这个命名空间中可以定义该模式包含的数据库对象,例如基本表、试图、索引等。
(3)在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
关系数据库标准语言SQL及其软件MySQL使用_第8张图片
2.删除模式
DROP SCHEMA <模式名>
(1)CASCADE(级联): 删除模式的同时把该模式中所有的数据库对象全部删除
(2)RESTRICT(限制):如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执。当该模式中没有任何下属的对象时才能执行。
关系数据库标准语言SQL及其软件MySQL使用_第9张图片

2.2 基本表的定义、删除与修改

1.定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
关系数据库标准语言SQL及其软件MySQL使用_第10张图片
关系数据库标准语言SQL及其软件MySQL使用_第11张图片
2.数据类型
关系数据库标准语言SQL及其软件MySQL使用_第12张图片
3.删除基本表
DROP TABLE <表名>[RESTRICT| CASCADE];
(1)RESTRICT:删除表是有限制的。
①欲删除的基本表不能被其他表的约束所引用
②如果存在依赖该表的对象,则此表不能被删除
(2)CASCADE:删除该表没有限制。
①在删除基本表的同时,相关的依赖对象一起删除
关系数据库标准语言SQL及其软件MySQL使用_第13张图片
关系数据库标准语言SQL及其软件MySQL使用_第14张图片
4.修改基本表
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ];
关系数据库标准语言SQL及其软件MySQL使用_第15张图片

2.3 索引的建立与删除

(1)建立索引的目的:加快查询速度
(2)谁可以建立索引
①DBA 或 表的属主(即建立表的人)
②DBMS一般会自动建立以下列上的索引
PRIMARY KEY
UNIQUE
(3)谁 维护索引
DBMS自动完成
(4)使用索引
DBMS自动选择是否使用索引以及使用哪些索引
1.语句格式
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
关系数据库标准语言SQL及其软件MySQL使用_第16张图片
2.删除索引
DROP INDEX <索引名>;
删除索引时,系统会从数据字典中删去有关该索引的描述。

三、数据查询

3.1 语句格式

SELECT [ALL|DISTINCT] <目标列表达式>
[,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ];

3.2 单表查询(仅涉及一个表)

1.选择表中的若干列
关系数据库标准语言SQL及其软件MySQL使用_第17张图片
2.选择表中的若干元组
指定DISTINCT关键词,去掉表中重复的行
SELECT DISTINCT Sno
FROM SC;
关系数据库标准语言SQL及其软件MySQL使用_第18张图片
(1)比较大小
关系数据库标准语言SQL及其软件MySQL使用_第19张图片
(2)确定范围
谓词: BETWEEN … AND …
NOT BETWEEN … AND …

关系数据库标准语言SQL及其软件MySQL使用_第20张图片
(3)确定集合
谓词:IN <值表>, NOT IN <值表>
关系数据库标准语言SQL及其软件MySQL使用_第21张图片
(4)字符匹配
谓词: [NOT] LIKE ‘<匹配串>’ [ESCAPE ‘ <换码字符>’]
关系数据库标准语言SQL及其软件MySQL使用_第22张图片
关系数据库标准语言SQL及其软件MySQL使用_第23张图片
关系数据库标准语言SQL及其软件MySQL使用_第24张图片
(5)涉及空值的查询
谓词: IS NULL 或 IS NOT NULL
关系数据库标准语言SQL及其软件MySQL使用_第25张图片
(6)多重条件查询
①逻辑运算符:AND和 OR来联结多个查询条件:AND的优先级高于OR; 可以用括号改变优先级
②可用来实现多种其他谓词: [NOT] IN;[NOT] BETWEEN … AND …
关系数据库标准语言SQL及其软件MySQL使用_第26张图片
3.聚集函数
关系数据库标准语言SQL及其软件MySQL使用_第27张图片
关系数据库标准语言SQL及其软件MySQL使用_第28张图片

3.2 连接查询

(1)连接查询:同时涉及多个表的查询
(2)连接条件或连接谓词:用来连接两个表的条件——一般格式:
①[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>
②[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>
(3)连接字段:连接谓词中的列名称
连接条件中的各连接字段类型必须是可比的,但名字不必是相同的

1.等值与非等值连接查询
(1)等值连接:连接运算符为=
关系数据库标准语言SQL及其软件MySQL使用_第29张图片
关系数据库标准语言SQL及其软件MySQL使用_第30张图片
(2)自然连接
关系数据库标准语言SQL及其软件MySQL使用_第31张图片
2.自身连接
(1)自身连接:一个表与其自己进行连接
(2)需要给表起别名以示区别
(3)由于所有属性名都是同名属性,因此必须使用别名前缀
3.外连接
关系数据库标准语言SQL及其软件MySQL使用_第32张图片
关系数据库标准语言SQL及其软件MySQL使用_第33张图片
4.复合条件连接
复合条件连接:WHERE子句中含多个连接条件
关系数据库标准语言SQL及其软件MySQL使用_第34张图片

3.3 嵌套查询

1.嵌套查询概述
一个SELECT-FROM-WHERE语句称为一个查询块,那么将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。
关系数据库标准语言SQL及其软件MySQL使用_第35张图片
2.带有比较运算符的子查询
当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或< >)。
与ANY或ALL谓词配合使用
3.带有ANY(SOME)或ALL谓词的子查询
ANY:任意一个值
ALL:所有值
关系数据库标准语言SQL及其软件MySQL使用_第36张图片
关系数据库标准语言SQL及其软件MySQL使用_第37张图片
关系数据库标准语言SQL及其软件MySQL使用_第38张图片
4.带有EXISTS谓语的子查询
[例44]查询所有选修了1号课程的学生姓名。

思路分析:
① 本查询涉及Student和SC关系
②在Student中依次取每个元组的Sno值,用此值去检查SC关系
③若SC中存在这样的元组,其Sno值等于此Student.Sno值,并且其Cno= ‘1’,则取此Student.Sname送入结果关系
关系数据库标准语言SQL及其软件MySQL使用_第39张图片
关系数据库标准语言SQL及其软件MySQL使用_第40张图片

4.4 SELECT语句的一般格式

SELECT [ALL|DISTINCT]
<目标列表达式> [别名] [ ,<目标列表达式> [别名]] …
FROM <表名或视图名> [别名]
[ ,<表名或视图名> [别名]] …
[WHERE <条件表达式>]
[GROUP BY <列名1>
[HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]

四、数据更新

4.1 插入数据

1.插入元组(将新元组插入指定表中)
(1)语句格式:
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>] … )
(2)INTO子句
属性列的顺序可与表定义中的顺序不一致;没有指定属性列;指定部分属性列
(3) VALUES子句
提供的值必须与INTO子句匹配(值的个数、
值的类型)
关系数据库标准语言SQL及其软件MySQL使用_第41张图片
2.插入子查询结果( 将子查询结果插入指定表中)
(1)语句格式
INSERT
INTO <表名> [(<属性列1> [,<属性列2>… )]
子查询;
(2)INTO子句(与插入元组类似)
(3) 子查询:
SELECT子句目标列必须与INTO子句匹配(值的个数、值的类型)

4.2 修改数据

(1)语句格式
UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE <条件>];
(2)功能:修改指定表中满足WHERE子句条件的元组
(3)SET子句:
①指定修改方式
②要修改的列
③修改后取值
(4)WHERE子句
①指定要修改的元组
②缺省表示要修改表中的所有元组
关系数据库标准语言SQL及其软件MySQL使用_第42张图片
关系数据库标准语言SQL及其软件MySQL使用_第43张图片

4.3 删除数据

(1)语句格式
DELETE
FROM <表名>
[WHERE <条件>];
(2)功能:删除指定表中满足WHERE子句条件的元组
(3)WHERE子句
①指定要删除的元组
②缺省表示要删除表中的全部元组,表的定义仍在字典中
关系数据库标准语言SQL及其软件MySQL使用_第44张图片

五、MySQL使用

5.1、MySQLworkbench中

步骤
(1)打开MySQL workbench
关系数据库标准语言SQL及其软件MySQL使用_第45张图片
(2)打开页面如下,并进行连接
关系数据库标准语言SQL及其软件MySQL使用_第46张图片
关系数据库标准语言SQL及其软件MySQL使用_第47张图片
再双击进入
关系数据库标准语言SQL及其软件MySQL使用_第48张图片
(3)新建模式并命名S-T
关系数据库标准语言SQL及其软件MySQL使用_第49张图片
关系数据库标准语言SQL及其软件MySQL使用_第50张图片
(4)新建基本表
关系数据库标准语言SQL及其软件MySQL使用_第51张图片
(5)右击student表
关系数据库标准语言SQL及其软件MySQL使用_第52张图片
关系数据库标准语言SQL及其软件MySQL使用_第53张图片
(6)建立表格后保存即可查询。输入查询语句
关系数据库标准语言SQL及其软件MySQL使用_第54张图片

5.2 在Navicat Premium中

(1)打开Navicat Premium,点击连接,输入密码,用户名
关系数据库标准语言SQL及其软件MySQL使用_第55张图片
(2)右击新建数据库
关系数据库标准语言SQL及其软件MySQL使用_第56张图片
(3)新建基本表,通过添加栏位设计基本表,再保存命名,再双击进入填充数据
关系数据库标准语言SQL及其软件MySQL使用_第57张图片
设计表
关系数据库标准语言SQL及其软件MySQL使用_第58张图片
(4)如若查询,可点模式下方的查询,编写程序后查询
关系数据库标准语言SQL及其软件MySQL使用_第59张图片

六、结语

以上,谢谢!

你可能感兴趣的:(关系数据库,SQL语言,MySQL)