sql语句_笔记
2022-05-14 15:33:41 76 举报
AI智能生成
SQL语句是用于操作关系型数据库的标准语言,它可以用来执行各种数据管理任务,如查询、插入、更新和删除。SQL语句通常由关键字、函数和操作数组成,按照一定的语法规则排列。例如,SELECT语句用于从数据库表中检索数据,INSERT语句用于向数据库表中插入新记录,UPDATE语句用于修改数据库表中的现有记录,DELETE语句用于删除数据库表中的记录。通过编写和执行SQL语句,用户可以方便地管理和操作数据库中的数据。
作者其他创作
大纲/内容
sql概述
sql产生和发展
SQL特点
1.综合统一
2.高度非过程化
3.面向集合的操作方式
4.以同一种语法结构提供多种使用形式
5.语言简洁、易学易用
SQL基本概念
支持关系数据库三级模式结构
外模式
存储文件
模式
基本表
内模式
视图、部分基本表
基本表
本身独立存在的表
一个关系对应一个表
存储文件
视图
数据定义
数据定义功能
定义数据库
create database xx
alter database xx
drop database xx
use xx
定义表
create table xx
定义模式
create schema xx authorization username
drop schema username
定义视图
定义索引
DBA建立,DBMS自动维护
create index [unique,cluster]name on table_name
drop index name
数据类型
varchar\char
int\bigint\smallint\tinyint
decimal\numeric
date\datetime\time
blob\clob
约定符号
<>必须
[]可选
{} | 或
[,...N]可重复多次
操作方式
create
drop
alter
alter...add
alter...drop
alter...alter
约束
NULL/NOT NULL约束
UNIQUE约束
PRIMARY KEY
FOREIGN KEY约束
CHECK约束
default
查询:select语句
单表查询
语句
select * from student
select name,2021-age birthday from student
select distinct sno from sc;
select * from student where ...
关键字
between and
in
order by
asc 升序
desc 降序
group by
group by的参数必须在select主句中出现(或者select中的为聚合函数)
having
与group by配合使用
like
模糊查询,与_%搭配使用
and or
聚集函数
count
sum
avg
max,min
连接查询
基本语句
select 表1.列1,表2.列2 from 表1表2 where
连接操作的执行过程
嵌套循环法
从表1依次找到一个元组,与表二匹配
排序合并法
表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就拼接起来。当遇到表2中第一条大于表1连接字段值的元组时,中止
索引连接
对表2按连接字段建立索引。对表1中的每个元组,依次根据其连接字段值查询表2的索引
等值连接
SELECT Student.*,SC.*FROM Student,SCWHERE Student.Sno = SC.Sno;
非等值连接
使用了比较运算符:>、<、>=、<=、!= 的连接
自然连接
等值连接的一种特殊情况,把目标列中重复的属性列去掉。
自身连接
一个表与其自己进行连接,需要给表起别名以示区别
外连接
left outer join
right outer join
复合条件连接
where 包括多个条件
嵌套查询
特点:查询块相互嵌套
子查询不能使用order by
in谓词子查询
any/all子查询
exists子查询
内层查询为空,false
内层查询非空,true
集合查询
select查询结果是元组的集合,可进行集合操作
并 union
交 intersect
差 except
select语句
select */列名 from 表名
数据更新
插入数据
insert into xx values()
into
属性列的顺序可与表定义中的顺序不一致
没有指定属性列
指定部分属性列
VALUES子句
提供的值必须与INTO子句匹配
例
INSERT INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;
注意:RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则
删除数据
delete from where
1. 删除某一个元组的值
2. 删除多个元组的值
3. 带子查询的删除语句
视图
数据控制
嵌入式sql
更新数据
update xx set
SET子句
指定修改方式
要修改的列
修改后取值
WHERE子句
指定要修改的组
缺省表示要修改表中的所有元组
例:UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);
0 条评论
下一页