查询用户创建表
select * from user_tables
查询用户自定义的数据库对象
select distinct object_type
from user_objects ;
表的命名规则
- 必须以字母开头
- 必须在1-30个字符之间
- 只能包含a-z,A-Z,0-9,_、$ 和 #
- 不能与用户定义其他对象重名
- 不能与系统保留字段重名
数据定义语言
数据定义语言 (Data Definition Language, DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成。
- 建表CREATE TABLE 语句
例子1:
新建用户表T_USER结构如下:
字段 | 类型 | 长度 | 主键 | 为空 |
---|---|---|---|---|
id | number | 6 | 是 | 否 |
姓名 | char | 20 | 否 | 是 |
年龄 | number | 2 | 否 | 是 |
性别 | char | 2 | 否 | 是 |
日期 | date | - | 否 | 是 |
分数 | float | - | 否 | 是 |
对应的SQL语句:
create table T_USER
(
u_id NUMBER(6) not null,
u_name CHAR(20),
u_age NUMBER(2),
u_sex CHAR(2),
u_date DATE ,
u_score float
)
- 修改表ALTER TABLE语句
例子2:
1. 先在表结构中添加一个u_tel字段,长度为20,类型为number,可为空;
2. 将u_tel字段中的字段长度修改为11;
3. 删除u_tel字段;
- 增加字段 ALTER TABLE ADD
alter table T_USER add(
u_tel number(20)
)
- 修改字段 ALTER TABLE MODIFY
alter table T_USER modify(
u_tel number(11)
)
- 删除字段ALTER TABLE DROP
alter table T_USER drop(
u_tel
)
- 删除表DROP TABLE
例子3:将表T_USER删除
drop table T_USER ;
数据操纵语言
数据操作语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改,DML操作需要调用commit语句之后才能生效。
- 插入数据INSERT INTO TABLE
例子4:
往T_USER中插入数据,u_id = 100000 , u_name = ‘叶清逸’ , u_age = 25 , u_sex = ‘M’ , u_date = ‘1992-10-24 20:47:00’ , u_score = 100.00 。
对应的SQL语句:
-- 插入一条数据
insert into T_USER
( u_id ,u_name ,u_age ,u_sex ,u_date ,u_score
) values (100000 , '叶清逸' , 25 , 'M' , to_date('1992-10-24 20:47:00','yyyy-mm-dd hh24:mi:ss') , 100.00);
-- 插入多条数据
insert all
into T_USER values (100000 , '叶清逸' , 25 , 'M' , to_date('1992-10-24 20:47:00','yyyy-mm-dd hh24:mi:ss') , 100.00)
into T_USER values (100001 , '张三' , 21 , 'M' , to_date('1991-01-03 20:47:00','yyyy-mm-dd hh24:mi:ss') , 98.00)
into T_USER values (100002 , '李四' , 20 , 'M' , to_date('1995-10-06 20:47:00','yyyy-mm-dd hh24:mi:ss') , 65.00)
into T_USER values (100003 , '王五' , 18 , 'F' , to_date('1998-07-04 20:47:00','yyyy-mm-dd hh24:mi:ss') , 89.00)
into T_USER values (100004 , '李华' , 29 , 'M' , to_date('1986-10-24 18:07:00','yyyy-mm-dd hh24:mi:ss') , 73.00)
into T_USER values (100005 , '大傻' , 30 , 'M' , to_date('1980-01-13 20:47:00','yyyy-mm-dd hh24:mi:ss') , 36.00)
into T_USER values (100006 , '二傻' , 31 , 'M' , to_date('1981-05-05 20:47:00','yyyy-mm-dd hh24:mi:ss') , 56.00)
into T_USER values (100007 , '小傻' , 32 , 'M' , to_date('1982-09-16 20:47:00','yyyy-mm-dd hh24:mi:ss') , 43.00)
select 1 from dual ;
--从已知表插入数据
insert into t_user (u_id , u_name , u_date)
select s_id , s_name , s_birthday
from t_student ;
--脚本插入,手动输入各项值
--& 指定列,放到变量值values位置
insert into t_user(u_id,u_name,u_age,u_sex,u_date,u_score)
values (&u_id,'&u_name',&u_age,'&u_sex','&u_date',&u_score);
- 修改数据DELETE FORM TABLE WHERE
例子5:删除T_USER 中的 u_name = ‘张三’ 的记录。
对应的SQL语句:
delete from T_USER where u_name = '张三' ;
- 修改记录UPDATE TABLE SET
例子6:将表T_USER中的王五的成绩修改为88 。
update T_USER set u_score = 87.00 where u_name = '王五' ;
- 删除记录 DELETE
例子7:将表T_USER中名叫王五的记录删除。
delete from T_USER where u_name = '王五' ;
- 简单的查询SELECT
例子8:查询表T_USER表中的所有记录。
select * from T_USER
COMMIT与ROLLBACK
- commit 就是确定提交的意思,比如你用SCOTT账户登录数据库insert到表中一条记录,而不commit,那么别的账户在登录这个数据库时就查询不到你insert 的记录;而commit后则其他账户就能查询到你insert的记录了。
- rollback就是回滚的意思,比如你用test账户登录数据库delete表中一条记录,这时你查询这个表时,则delete的记录不存在;再rollback后,你再查询你delete的记录时,发现被删除的记录又回来了。
关于select的用法还有很多将会在别的文章进行总结。