您的当前位置:首页正文

SQL语言

2020-05-05 来源:钮旅网
注意:所有以字符形式出现的数据(时间也是字符型的)用单引号括起来。 一、查询(查询的代码在ADOQuery执行用Open函数) 1、 一般查询

Select ziduan from TableName 查询表中某个字段下的所有数据

Select ziduan1, ziduan2 ,ziduan5 from TableName 查询表中某几个字段的所有数据 Select * from TabelName 查询整个表的数据

Select ziduan1 from TableName where ziduan1 = shuju1 查询表中某个字段某一行的数据 Select Distinct ziduan from TableName 查询表中某个字段下不重复的所有数据

Select * from TableName (Where ……) Order by ziduan1 ASC 查询后的数据结果以从小到大排序

Select * from TableName (Where……) Order by ziduan1 DESC , ziduan2 ASC 这是一个双排序查询,查询结果先以ziduan1由大到小排列,当ziduan1中有数据相等的情况时,相等的数据再按由小到大排列。

Select * from TableName Order by 2 DESC 按照查询结果中按照第二列的数据从大到小排列

查询数据表中前10项

select * from chukudan where rownum <10 2、 条件查询

Select ziduan1 from TableName where ziduan2 >= 1000 按照一定条件查询某个字段下的数据

Select ziduan1 from TableName where ziduan2>=100 and ziduan2<=800 按照where ……and的格式多条件查询数据

Select ziduan1 from TableName where ziduan2<100 or ziduan2>1000 按照where……or的格式任意条件满足的情况下查询数据

Select ziduan1 from TableName where ziduan2>1000 or (ziduan>200 and ziduan2<800) 多条件符合查询数据

Select ziduan1 from TableName where ziduan1 IN (‘shuju1’,‘shuju2’)查询响应字段下数据为shuju1和shuju2的所有数据

Select ziduan1 from TableName where ziduan1 Between ‘date1’ and ‘date2’查询两者之间的所有数据

Select ziduan1 from TableName where ziduan1 Link ‘%AN_’ 模糊查询,%是任意个数的任意字符,比如ADCDSAN,BAN(可以一个,也可以多个,也可以为空),_表示一个任意字符,比如ANB(只能为一个,或者为空) 3、 函数查询(AVG,COUNT,MAX,MIN,SUM)

Select AVG(ziduan1) from TableName查询字段1的平均数

Select COUNT(ziduan1) from TableName Where ziduan1 is not null 查询字段一有多少个不为空的个数

Select COUNT(DISTINCT ziduan1) from TableName 与上面的查询效果一样,查询字段1中有多少个不重复的总个数

Select ziduan1,SUM(ziduan2) from TableName Group by ziduan1查询以字段1相同数据下这几个字段2的和(用这个方法我们比如可以查下各个店面的营业额) ☆ Group by 只能用在有函数的计算的SQL中

☆在SQL中有WHERE何HAVING 两种控制条件的操作符,在什么时候用WHERE和

HAVING?用法:在直接查询后的数据用WHERE,在查询后进行过函数处理(AVG,SUM,COUNT,MAX,MIN)的数据用HAVING

Select ziduan1,SUM(ziduan2) from TableName Group by ziduan1 HAVING ziduan2 > 1000 查询以字段1相同的数据下这几个字段2的大于1000的和 4、 多表,别名查询(有表别名,和列别名)

别名两种实现方法:

1、 用AS来来实现别名(有表别名和列别名)

SELECT po.OrderID, p.LastName, p.FirstName

FROM Persons

AS p, Product_Orders AS po

WHERE p.LastName='Adams' AND p.FirstName='John'

Select T.ziduan1 , SUM(T.ziduan2) from TableName T Group By T.ziduan1 表别名查询:在from后TableName T,来声明TableName的别名为T,然后就可以在别的要表示列名的地方用T.来表示列

TableName1 Store_Name Sales Date Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-08-1999 Los Angeles 1500 San Diego 250 Los Angeles 300 Boston 700 Store_name Boston TableName2 Area_Name East East West West New York Los Angeles San Diego 以此表为例介绍内部链接和外部链接,区别: 内部链接:要两个表中都有相同的值才会被选出。

外部链接:两个表中所有的条件值都会被选出,其中条件语句后面加’(+)’符号

Select T2.Area_Name AREA, SUM(T1.Sales) SALES from TableName2 T2 ,TableName T1 Where T2.Store_name = T1.Store_name Group by T2.Area_Name 其中AREA和SALES是两个列的别名

这个是一个内部链接,查询相同区域内的店面销售总额,(只有两表中相同店名才会报出) 结果:

Area East West

SALES $700 $2050

Select T2. Store_name AREA,SUM(T1.Sales) SALES from TableName2 T2, TabelName1 T1 Where T2.Store_name = T1.Store_name (+) Group by T2. Store_name 结果:

store_name SALES Boston New York Los Angeles San Diego

$1800 $250

$700

查询后其中TableName中没有New York也最终查询出来。 Select SUM(Sales) from TableName1 Where store_name IN (Select store_name from TableName2 Where region_name = ‘West’) 嵌套查询:☆查找西部的店的营业额,分解:当拿到一个查询需求时,先分析,要查什么,用什么条件,比如查找西部的店的营业额,查找结果是一个营业额,而且多个店的营业额,所以看找下营业额是哪个表中的数据(在表1中),我们就可以确定,Select (SUM)Sales from TableName1 ,西部的 店的都是形容词所以为条件,西部是表1中的,而店是两表中都有,所以店是两个表的焦点,必然用店名来连接两个表,所以Select (SUM)Salse from TableName1 Where Stroe_name IN (Select Stroe_name from TableName2 Where Area_name = ‘West’)

5、 查询两表的交集,并集,补集和所有数据

Select ziduan1 from TableName1 UNION

Select ziduan1 form TableName2

查询两表的并集,相同的部分只显示一次 Select ziduan1 from TableName1 UNION ALL

Select ziduan1 from TableName2

查询两表所有字段1的数据,相同的数据两表中各出现几次显示几次,全部显示 Select ziduan1 from TableName1 INTERSECT

Select ziduan1 from TableName2

查询两表的交集,只有相同的数据才会显示 Select ziduan1 from TableName1 MINUS

Select ziduan1 from TableName2

查询在表1中而不在表2中的字段1的数据 6、 创建表、删除、插入、修改表

Create Table TableName1(ziduan1 varchar2(50),ziduan2 date,ziduan3 Number)创建一个名为TableName1的表

Drop TableName1 删除TableName1这个表

TRUNCATE TableName1删除TableName1内容,只删内容,不删表

Insert into TableName1 (ziduan1,ziduan2,ziduan5) VALUES(‘shuju1’,’shuju2’,’shuju5’) Date 数据有固定格式一边为Jan-10-1999,时间的某一个项,比如月,日,年

Insert into TableName1 (ziduan1,ziduan2,ziduan5) Select ziduan1,ziduan2,ziduan5 from TableName2 Where ziduan2(Date) = 1998 批量插入,查询另一个表中的数据插入表中

Delete from tableName1 Where ziduan1 = ‘shuju1’ 删除字段1=数据1中的数据

Update tableName1 Set ziduan1 = 10 ,ziduan2 = ‘宁夏’ Where ziduan3 = ‘李霄’ ziduan4 = 27 更新表中某一项

Select

SELECT \"栏位\" FROM \"表格名\" Distinct

SELECT DISTINCT \"栏位\" FROM \"表格名\" Where

SELECT \"栏位\" FROM \"表格名\"

WHERE \"condition\" And/Or

SELECT \"栏位\" FROM \"表格名\" WHERE \"简单条件\"

{[AND|OR] \"简单条件\In

SELECT \"栏位\" FROM \"表格名\"

WHERE \"栏位\" IN ('值1', '值2', ...) Between

SELECT \"栏位\" FROM \"表格名\"

WHERE \"栏位\" BETWEEN '值1' AND '值2' Like

SELECT \"栏位\" FROM \"表格名\"

WHERE \"栏位\" LIKE {模式} Order By

SELECT \"栏位\" FROM \"表格名\" [WHERE \"条件\"]

ORDER BY \"栏位\" [ASC, DESC] Count

SELECT COUNT(\"栏位\") FROM \"表格名\" Group By

SELECT \"栏位1\栏位2\") FROM \"表格名\" GROUP BY \"栏位1\" Having

SELECT \"栏位1\栏位2\") FROM \"表格名\" GROUP BY \"栏位1\" HAVING (栏位)

Create Table

CREATE TABLE \"表格名\"

(\"栏位 1\" \"栏位 1 资料种类\\"栏位 2\" \"栏位 2 资料种类\... )

Drop Table

DROP TABLE \"表格名\" Truncate Table

TRUNCATE TABLE \"表格名\" Insert Into

INSERT INTO \"表格名\" (\"栏位1\栏位2\VALUES (\"值1\值2\Update

UPDATE \"表格名\" SET \"栏位1\" = [新值] WHERE {条件} Delete From

DELETE FROM \"表格名\" WHERE {条件}

创建视图

create or replace view caigou_kucun as select

caigou_order_detail.shuliang_v,productdata.productname,productchengben.chengbenheji,a.\"DINGDAN_ID\from (select

kucun_detailb.dingdan_id,kucun_detailb.productid,sum(kucun_detailb.shuliang) as shuliang from kucun_detailb group by kucun_detailb.dingdan_id,kucun_detailb.productid) a,caigou_order_detail,productdata,productchengben where a.dingdan_id = caigou_order_detail.order_id and a.productid = caigou_order_detail.productid and a.productid = productdata.productid

and a.productid = productchengben.productid and a.dingdan_id = productchengben.dingdan_id

Oracle Date 格式YYYY-MM-DD hh:mm:ss

输入时可以直接用to_date('1985-08-25','YYYY-MM-DD') 来转换

因篇幅问题不能全部显示,请点此查看更多更全内容