基础语法
1.创建数据库
create database db-name
2.删除数据库
drop database db-name
3.创建表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],…)
根据已有的表创建新表:
**A:**create table tab_new like tab_old (使用旧表创建新表)
**B:**create table tab_new as select col1,col2… from tab_old definition only
4.删除新表
drop table tabname
5.增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
6.添加主键
Alter table tabname add primary key(col)
说明:
删除主键:Alter table tabname drop primary key(col)
7.创建索引
create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
8.创建视图
create view viewname as select statement
删除视图:drop view viewname
9.几个简单的table操作的sql语句
选择:
select * from table1 where 范围
插入:
insert into table1(field1,field2) values(value1,value2)
删除:
delete from table1 where
范围更新:
update table1 set field1=value1 where
范围查找
select * from table1 where field1 like ’%value1%’
排序:
select * from table1 order by field1,field2 [desc]
总数:
select count as totalcount from table1
求和:
select sum(field1) as sumvalue from table1
平均:
select avg(field1) as avgvalue from table1
最大:
select max(field1) as maxvalue from table1
最小:
select min(field1) as minvalue from table1
几个高级查询运算词
UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
EXCEPT 运算符
EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
INTERSECT 运算符
INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
连接
INNER JOIN:内连接,关键字在表中存在至少一个匹配时返回行。
left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join : 外连接,返回两个表中的行:left join + right join。
TOP 子句
TOP 子句用于规定要返回的记录的数目。
IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
BETWEEN 操作符
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
EXISTS用法
- 将外查询的每一行代入子查询,看exists或not exists返回true还是false。
- true则显示,false则不显示。
- exists或not exists即是在外查询的结果上,再做一次筛选。
- 先运行外查询,再运行子查询。