1. 查询select
- SELECT 语句用于从表中选取数据。
- 语法
- 查询某列:
SELECT 列名称 FROM 表名称
- 查询所有列:
SELECT * FROM 表名称
- 联合查询:
SELECT t.列名, s.列名 FROM 表名称 t, 表名称 s WHERE t.列名 = s.列名
【不写时默认为JOIN】
- JOIN(INNER JOIN): 如果表中有至少一个匹配,则返回行。
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
- 查询某列:
2. 行数据插入insert into
- INSERT INTO 语句用于向表格中插入新的行。
- 语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列3,...) VALUES (值1, 值3,....)
【指定所要插入数据的列】
3. 数据修改update
- Update 语句用于修改表中的数据。
- 语法
SELECT * FROM 表名称 for UPDATE
UPDATE 表名称 SET 列名称 = 新值 [,列名称=新值] WHERE 列名称 = 某值
4. 列修改alert
- ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
- 语法
- 添加列:
ALTER TABLE table_name ADD column_name datatype
- 修改列数据类型:
ALTER TABLE table_name ALTER COLUMN column_name datatype
- 删除列:
ALTER TABLE table_name DROP COLUMN column_name
[部分数据库不允许此种列删除方式]
- 添加列:
5. 删除delete
- DELETE 语句用于删除表中的行。
- 语法
- 删除某行:
DELETE FROM 表名称 WHERE 列名称 = 值
- 删除所有行:
DELETE FROM table_name或者DELETE * FROM table_name
- 删除某行:
6. 创建数据库
- CREATE DATABASE 用于创建数据库。
- 语法
CREATE DATABASE database_name
7. 创建表
- CREATE TABLE 语句用于创建数据库中的表。
语法
CREATE TABLE table_name ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )
8. 删表或数据库drop
- DROP 语句可以轻松地删除索引、表和数据库
- 语法
- 删表(表的结构、属性以及索引也会被删除):
DROP TABLE table_name
- 删除数据库:
DROP DATABASE database_name
- 删表(表的结构、属性以及索引也会被删除):
9. delete,drop,truncate 比较
- delete
- 可删除行数据
- 不带where的delete:只删除数据,表的结构、属性和索引都是完整的。
- truncate
- 语法:
TRUNCATE TABLE table_name
- 仅删除表中的数据,表的结构、属性和索引都是完整的。
- 注意:truncate 不能删除行数据,要删就要把表清空。
- 语法:
- drop:表的结构、属性以及索引也会被删除
10. 循环语句:while语句&for语句&loop语句
loop方式
语法:loop代表循环开始,end loop代表循环结束
LOOP 代码块; ... EXIT [WHEN condition]; END LOOP;
例子
--使用loop循环输出1-10 --注意loop循环和while循环相反 declare pnum number:=1; begin loop exit when pnum>10; --当pnum变量大于10的时候退出loop循环 --输出循环变量 dbms_output.put_line(pnum); --循环变量自增 pnum := pnum+1; end loop; end;
while方式 :WHILE循环主要适用于不知道具体循环次数的情况
语法
WHILE 循环条件 LOOP 需要循环执行的代码块 END LOOP;
例子
--使用while循环打印数字的1-10 --set serveroutput on declare --定义循环变量赋初值为1 pnum number := 1; begin while pnum<=10 loop --循环体 dbms_output.put_line(pnum); --使得该变量+1 --pnum++;是错误的写法,oracle不支持这种写法 pnum := pnum+1; end loop; end;
for方式【最优】:FOR循环主要适用于知道具体循环次数的情况
语法
FOR 循环变量 IN 循环开始 .. 循环结束 LOOP 需要循环执行的代码块 END LOOP;
例子
--使用for循环打印1-10 --set serveroutput on declare --定义循环变量 pnum number:=1; begin for pnum in 1..10 loop dbms_output.put_line(pnum); end loop; end;
ps: SQL语句对大小写不敏感