sql

sql语言:
1 SELECT查询 INSERT插入UPDATE修改DELETE删除CREATE创建 DROP对象删除
2 数据查询:select
数据定义:create drop alter
数据操纵:insert update delete
数据控制:grant revoke
3查询基本结构SELECT FROM WHERE.
SELECT用来指定查询结果中所需要的属性或表达式
From 用来查询所涉及的表,表可以是基本表,视图,查询表
Where用来指定查询结果所要满足的选择条件
Select a1,a2,a3,a4
From r1,r2,r3
Where p
对r1r2r3进行笛卡尔积,然后找p为真的记录,然后对a1a2a3投影运算,不消除重复,消除重复要用distinct
4
SELECT DISTINCT ***
FROM ***
WHERE ***
5SELECT* 查询所有属性
6给属性取别名:(其中AS可以省略)
SELECT institute AS所属学院,classname AS班级名称
FROM CLASS
7SELECT后面可以使用属性,常数,函数,表达式(可以计算)
8WHERE查询:
比较运算<,>,<=,>=,<>,=,!=
范围查询BETWEEN ...AND NOT BETWEEN ...AND
(WHERE score BETWEEN 80 AND 90)
集合查询IN NOT IN IN后面是集合,集合
SELECT studentno,couseno
FROM score
WHERE couseno IN(‘001’,’009’)
空值查询IS null IS NOT null
WHERE course IS NOT null
字符匹配查询LIKE NOT LIKE
WHERE student NOT LIKE ‘王利群’
%表示任意长度的字符串,可放中间,头,尾
-下划线表示一个字符,同上
如果不用到%和-,则与=效果一样的
如果本身查询中包括&和-则用ESCAPE加换码字符
WHERE classname LIKE ‘08\_666’ ESCAPE ‘\’
逻辑查询AND,OR,NOT
与或非,注意AND不可以对一个属性值进行与运算,需要用连接运算或嵌套子查询
9排序运算ORDER BY
ORDER BY native ASC ,class DESC,score DESC
升序ASC可以省略,降序DESC不可省略
10查询表FROM后面可以加查询表
SELECT studentno,studentname
FROM (SELECT * FROM student WHERE sex=‘女’) AS a
WHERE year(birthday)=1991
其中必须为查询表起一个名字,性别处放下面where是等价的
连接查询(多个表)
11等值连接和非等值连接(不同表)
在where中加入多个连接关系的连接条件(一般是主码外码相互比较)
Where 表1.属性 比较运算符 表2.属性 逻辑运算符 表3.属性 比较运算符表4.属性 等等
Where student.classno=class.classno and institute=‘会计学院’
为了方便连接可以取别名简化,相同属性之前要加表名,相互不同的属性就不用了,
如果两个之间没有直接主码外码,需要借助第三张表相互连接
二自然连接:完成自然连接的方法是在等值连接的基础上消除重复列。重复的可以用表名加属性的方式写确保唯一性。
三非等值连接用得比较少
12自表连接:某个表与自己连接,称为自表连接。(重要)
一个表两次命名为不同的值,然后取相同的一个属性进行等值连接,然后根据需要的条件取两个表的不同部分。
13外连接:一般来说,没有满足条件的不会被检索出来,但在应用中会需要将不满足的也检索出来,只是在相应的位置用空值代替,这种查询称为外连接查询。
左外连接:左外连接连接结果中包含左关系中的所有元组,左关系没有连接上的右面用空值(NULL)代替。
右外连接:
全外连接:
例子:FROM CLASS a LEFT OUTER JOIN STUDENT b ON a.classno=b.classno
*** LEFT OUTER JOIN *** ON**
前面是两个表,后面是两个表之间主码连接
*** LEFT OUTER JOIN *** ON**
*** RIGHT OUTER JOIN *** ON**
*** FULL OUTER JOIN *** ON**
14聚合查询:
聚合函数:count*或者列名 统计一列中值得个数
sum括号加列名 统计一列中值的总和
avg括号加列名统计一列中值的平均值
max括号加列名统计一列中的最大值
min括号加列名统计一列中的最小值
ALL所有 DISTINCT消除重复(属性前括号内加)
15分组聚合:细化聚合函数做用对象
GROUP BY 子句对查询结果按一列或几列进行分组,值相等分为一组
HAVING对分组结果进行选择,输出符合的组,必须与group by一起使用
例:select studentno,count(*)门数,avg(score)平均分,max(score)最高分
From score
Group by studentno,门数
Having avg(score)>=80
注意:where子句中不可以使用聚合函数。
16嵌套子查询:

 

 

插入数据:INSERT INTO 表名VALUES
插入多条,新建一个表,然后表名就是这个表,后面用select语句整体,
删除数据:delete from,,,
Where,,,
修改数据:update 表名 set 属性=改后的值
From
Where
创建视图 create view as select等等

 

转载于:https://www.cnblogs.com/liqunblog/p/9911113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值