SQL基础知识学习.docx

上传人:b****7 文档编号:9643344 上传时间:2023-02-05 格式:DOCX 页数:10 大小:18.01KB
下载 相关 举报
SQL基础知识学习.docx_第1页
第1页 / 共10页
SQL基础知识学习.docx_第2页
第2页 / 共10页
SQL基础知识学习.docx_第3页
第3页 / 共10页
SQL基础知识学习.docx_第4页
第4页 / 共10页
SQL基础知识学习.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

SQL基础知识学习.docx

《SQL基础知识学习.docx》由会员分享,可在线阅读,更多相关《SQL基础知识学习.docx(10页珍藏版)》请在冰豆网上搜索。

SQL基础知识学习.docx

SQL基础知识学习

 

SQL基础知识学习

 

1基础知识

1.1结尾

一般情况下情况,一条sql语句以;结尾

1.2合并两列成一列

方法:

使用+

举例:

selectbend_name+bend_countasvend_title

fromVendors

orderbyvend_name;

1.3like和通配符使用

用法:

where列名like'%123'

举例:

selectprod_id,prod_name

fromProducts

whereprod_namelike'Fish%';

%表示任何字符出现任意次数,但是无法匹配null

1.4常用文本处理函数

LEFT()返回字符串左边的字符

length(),datalength()len(),返回字符串的长度

lower(),字符串转小写

upper(),字符串转大写

ltrim(),去掉左边空格

rtrim(),去掉右边空格

right(),返回字符串右边字符

substring(,),截取字符串

to_date,字符串转日期

1.5常用数值处理函数

abs(),绝对值

cos(),余弦

exp(),指数值

pi(),圆周率

sin(),正弦

sqrt(),平方根

tan(),正切

1.6常见聚合函数

AVG

max

min

count

sum

1.7groupby

作用,对聚合函数进行限定

规则:

如果在select中使用表达式,则必须在groupby字句中指定相同的表达式,不能使用别名

groupby在按组计算聚类时候使用,不使用会报错

1.8having

作用:

过滤分组

1.9where

作用:

过滤行级

1.10select子句顺序

select

from

where

groupby

having

orderby

1.11as

as可以给字段,给表,取别名

2多表联结查询

2.1多表查询1:

使用子查询wherein,子查询效率低,不建议使用

作为子查询的select语句只能查询单个列,企图检索多个列将返回错误

方法:

在wherein(子查询语句)

举例:

select*

fromcustomers

wherecust_idin(selectcust_id

fromOrders

whereorder_numin(selectorder_num

fromorderItems

whereprod_id='rgan01'));

2.2多表查询2:

内连接的两种方式,内连接是一种等值连接

2.2.1方式1:

from多表,where主键限定

举例:

selectvend_name,prod_name,prod_price

fromVendors,Products

whereVendors.vend_id=Product.vend_id;

举例:

select*

fromcustomers,Orders,orderItems

wherecustomers.cust_id=Orders.cust_id

andOrder.order_num=orderItems.order_num

andorderItems.prod_id='rgan01';

2.2.2方式2:

innerjoin内连接

方法:

from表1innerjoin表2on表1.列名=表2.列名

举例:

selectvend_name,prod_name,prod_price

fromVendorsinnerjoinProduct

onVendors.vend_id=Product.vend_id;

自然连接:

内连接一种:

排除查询出的重复列

2.3外连接:

左关联leftouterjoin

以左表为基准,选出左表所有行

用法from表1leftouterjoin表2

举例:

selectCustomers.cust_id,count(Orders.order_num)asnum_ord

fromCustomersleftouterjoinOrders

onCustomers.cust_id=Orders.cust_id

groupbyCustomers.cust_id;

内连接和外连接区别:

外连结包含没有关联行的行,显示为null

2.4使用带聚集函数的外关联,记得加groupby

selectcustomers.cust_id,count(Orders.order_num)asnum_ord

fromCustomersleftouterjoinorderd

onCustomers.cust_id=Orders.cust_id

groupbyCustomers.cust_id;

2.5一般可以使用内连接的,使用外连接也会有效

3组合查询

也叫(并,union),也叫(复合查询,compoundquery)

union,直接连接组合select语句即可

用法:

select语句1unionselect语句2

规则:

每个查询语句包含相同列,表达式或者聚集函数,对应列数据类型要兼容

扩展:

union会默认去重,使用unionall可保留重复项;orderby只能在最后出现

理解:

union完成的基本都可以用多个where语句实现

4插入语句

4.1插入一行数据

用法1:

insertinto表1(列1,列2)

values(值1,值2);

4.2查询结果插入到现有表中

用法2:

insertinto表1(列1,列2)

select列1,列2

from表2

4.3查询结果插入到新表中

用法3:

createtable新表名as

select列1,列2from表1

5更新数据update

用法:

update表1

set列1=值1,

列2=值1

可以指定where条件,不指定则更新所有行

6delete删除表中的数据,不删除表

用法:

delete

from表1

可以指定where条件,不指定则更新所有行

注:

truncatetable,也是只删除数据,但速度更快,不记录表变动

7创建表

用法:

createtable表名

列名1字段类型是否可为nulldefault值,

列名1字段类型是否可为null,

列名1字段类型是否可为null

......

);

举例:

createtableOrderItems

order_numintegernotnull,primarykey

order_itemintegernotnull,

prod_idchar(10)notnull,

quantityintegernotnulldefault1,

item_pricedecimal(18,2)

);

规则:

某些需要指定创建表的路径;默认可为空,列名和类型是必须的,primarykey,null和default列可选填写

8修改表结构

8.1增加列

用法:

altertable已存在表名

add新列名字段类型

举例:

altertableVendors

addvend_phonechar(20);

 

8.2删除列

用法altertable已存在表名

dropcolumn已存在列名

举例:

altertableVendors

dropcolumnvend_phone;

8.3删除表和表结构

droptable表名

8.4创建视图(虚拟表)

createview视图名称as

select查询语句

9存储过程:

执行多条sql语句

作用:

类似编程中函数,方法等概念

createprocedureMailingListCount(

ListCountOUTinteger-----out,存储过程将返回一个值

is

v_rowsinteger---声明变量v_rows

begin---beginend中写存储过程要实现的功能

selectcount(*)intov_rows

fromCustomers

wherenotcust_emailisnull;--功能语句,把取得的结果赋值给声明的变量v_rows

ListCount:

=v_rows;--把v_rows赋值给ListCount

end;

执行存储过程,execute存储过程名字(参数)

10事务处理:

保证不出错的执行多条sql语句

举例:

begintransaction

deleteOrdeItemswhereorder_num=12345

deleteOrderswhereorder_num=12345

committransaction

11游标:

用于浏览查询结果集中上下行

declarecursor游标名-------------声明游标

is

select语句

opencursor游标名---------------打开游标

fetch游标名into列---------------使用游标

close游标名-------------------关闭游标

12触发器:

特殊的存储过程

在特定的数据库活动时候执行,与单个表相关联

存储过程,只是存储多个sql语句,不执行,执行需要写execute

13速查

ALTERTABLE

ALTERTABLE用来更新现存表的模式。

可以用CREATETABLE来创建一个新表。

详情可参见第17课。

COMMIT

COMMIT用来将事务写入数据库。

详情可参见第20课。

CREATEINDEX

CREATEINDEX用来为一列或多列创建索引。

详情可参见第22课。

CREATETABLE

CREATETABLE用来创建新的数据库表。

可以用ALTERTABLE来更新一个现存表的模式。

详情可参见第17课。

CREATEVIEW

CREATEVIEW用来创建一个或多个表的视图。

详情可参见第18课。

DELETE

DELETE用来从表中删除一行或多行。

详情可参见第16课。

DROP

DROP用来永久性地删除数据库对象(表、视图、索引等)。

详情可参见第17课和第18课。

INSERT

INSERT用来对表添加一个新行。

详情可参见第15课。

INSERTSELECT

INSERTSELECT用来将SELECT的结果插入到表中。

详情可参见第15课。

ROLLBACK

ROLLBACK用来撤销事务块。

详情可参见第20课。

SELECT

SELECT用来从一个或多个表(或视图)中检索数据。

详情可参见第2课、第3课和第4课(第2课到第14课从不同方面涉及了SELECT)。

UPDATE

UPDATE用来对表中的一行或多行进行更新。

详情可参见第16课。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1