SQL*PLUS的语法:
建立表:
create table table名(
字段名1 字段类型1,
字段名2 字段类型2,...)
删表:drop table table名;
字段类型:
文本:
CHAR(n) :占用n个空间的文本(一个中文占用两个英文字符位置)
VARCHAR2(n) :最大长度为n的变长字符串
DATE:
NUMBER(p,s) :p是总位数,s是小数点以后的位数;超长后小数部分四舍五入,整数超长报错
例 CHEA TABLE test_1 (
first_name CHAR(15),
lase_name CHAR(20)
);
伪列
ROWNUM:虚拟的不存在的行号,在检索、显示元素时使用,显示从表中提取行的顺序(检索过程是无序的)
USER:
SYSDATE
:
dual只是一个只有一行的工具空表,用select打印表中不存在的列,但加的列只能是固定值,dual实现了打印一次的作用
显示表的结构:DESC 表名:
NULL:
字段允许为空(默认),表示字段内容不详,不同于空格,不同于任何0或非0 的数字。代表没有任何信息。
NOT NULL :在表创建时,字段后加not null 表示不能为空
default:
查询数据库中现存的表:select tname from tab;
插入数据:insert into 表名 [(字段列表:FIELD LIST)] values(值列表)
注意:字段列表和值列表必须匹配
允许为null的字段可以不出现在字段列表中,插入结果自动插入为NULL
当值列表包含所有字段的值且顺序与定义时相同时,可以省略字段列表
查看数据:
可以添加表达式列:
注:||用作字符串连接符。
insert语句中使用select:从表名2中选择数据插入表名1
insert into 表名1 (字段列表1)
select (字段列表2) from 表名2
where 子句;
插入记录数由select语句决定。
列的别名:select语句字段后空格加双引号的列别名
where子句:
模糊搜索:like
escape为设置转义字符:escape ‘\‘;设置\为转义字符
是否为空的判断:
排序:ORDER BY
DESC 降序 ASC 升序 (默认升序)
文本字段按ascii码排大小
分组:group by 字段名 将此字段值相同的分到一组一块显示
select * from 表
where ...
gruop by 字段名1[,字段名2];
--gruop by 所带的字段为多个时,把多个看成一组,都相同为一组。
消除重复记录:在字段名前加distinct(效率较低)
更改表中数据:
UPDATE 表名 set 字段1=值1,字段2=值2 [where 条件式]
删除表中的记录:TRUNCATE table 表名(非DML语句,不可撤销,与drop不同的是会保留表结构 )
![](https://i-blog.csdnimg.cn/blog_migrate/133bfaa115f312a61813d47fe82bbea2.png)
事务——ACID(事务处理的撤销)