前言:
1.使用的数据库不同,所使用的语法也略有不同
2.SQL对大小写不敏感,无论大小写,sql自动转换为大写
3.用户名、表名、表空间名、文件路径......等需要用单引号将其包含
4.一般引号里面的内容需要大写
准备工作:
(1).Win+R打开services.msc
(2)启动一些服务:
(qwq我不知道哪些有用,哪些没用,所以我都把打开了,不知道有没有负面影响,大家参考一下别的博客吧)
登录:
1.打开SQL Plus命令行工具
第一种方式:
第二种方式:
(1)win+R 打开cmd
(2)输入sqlplus
2.以不同用户登录
注意:
1.使用用户口令这种形式登录的时候,是不显示密码的,口令输入的时候是不显示的,直接输就好
2.若是想以显示密码的形式输入,直接在用户名那一块输入:用户名/密码
3.超级管理员(sys)输入时需要注意指定 as sysdba
SYSTEM(普通管理员):
SYS(超级管理员):
不显示密码方式:
用户名:SYS
密码:sys密码 as sysdba
显示密码方式:
用户名:sys/sys密码 as sysdba
SCOTT(普通用户):
若是出现被锁住的情况:
解决方法:
(1)登录超级管理员账户,
(2)输入alter user 用户名 account unlock;
(3)重新登录即可:
1.数据定义语言(DDL)
数据库操作
查询所有用户:
select distinct(OWNER) from all_tables;
查看当前用户:
show user;
创建用户并指定其表空间:
create user 用户名 identified by 密码 default tablespace 表空间;
给用户授予dba的权限(超级管理员):
grant dba to 用户;
删除用户(超级管理员):
(1)查看用户是否有活跃对话
select sid as session_id, serial# from v$session where username='用户名';
(2)如果查询结果显示有活动的会话,结束这些会话
kill session 'session_id, serial#' immediate;
(3)删除用户
drop user 用户名 cascade;
切换用户登录:
conn 用户名/密码
表操作
查询:
查询某个用户下所有表名:
(用户名注意大写)
select table_name from dba_tables where owner = '用户名';
查询某个用户下表个数:
(用户名注意大写)
select count(*) from all_tables where OWNER = '用户名';
查询某个用户的表结构:
desc 用户名.表名;
查询指定表的建表语句:
(表名、用户名注意大写)
select dbms_metadata.get_ddl('TABLE', '表名','用户名') from dual;
创建:
创建表空间:
create tablespace 表空间名 datafile '文件路径\文件名.dbf' size 表空间大小;
创建表:
#创建表 create table 表名( 字段1 字段1类型, 字段2 字段2类型, 字段3 字段3类型, ....... 字段n 字段n类型 ) ;
给表添加注释:
comment on table 表名 is '注释';
给字段添加注释:
comment on column 表名.字段名 is '注释';
表备份:
create table 用户名.备份表名 as select * from 用户名.需要备份的表名;
修改:
重命名表:
alter table 用户名.旧表名 rename to 新表名;
添加字段:
alter table 用户名.表名 add 新字段名 新字段类型 default '默认值';
修改字段名:
alter table 用户名.表名 rename column 旧字段名 to 新字段名;
修改数据类型:
alter table T1.emp1 modify temp varchar(30);
删除:
删除表字段:
alter table 用户名.表名 drop column 字段名;
删除表:
drop table 表名;
删除表空间:
(1)查看是否有其它用户在使用该表空间:
select * from dba_users where default_tablespace='表空间名';
(2)若有,则删除这些用户或者将这些用户迁移到别的表空间
(3)删除表空间
drop tablespace 表空间名 including contents and datafiles;
删除指定表并重新创建该表:
truncate table 表名;
2.数据操作语言(DML)
添加数据(insert)
注意:
1.插入数据注意顺序
2.插入的数据大小要合法
给指定字段添加数据:
insert into 表名 (字段1,字段2......) values(值1, 值2......);
给表中批量添加数据:
insert all into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......) into 用户名.表名(字段1,字段2,字段3......) values(值1,值2,值3.......) select * from dual;
修改数据(update)
修改数据:
注意:如果没有条件,则会修改整张表
update 表名 set 字段1=值1,字段2=值2......[where 条件];
删除数据(delete)
删除数据:
注意:如果没有条件,则会删除整张表
update 表名 set 字段1=值1,字段2=值2......[where 条件];
3.数据查询语言(DQL)
如有错误,欢迎指正!!!