数据库的主要特点:
- 实现数据共享
- 减少数据的冗余度
- 数据的独立性
- 数据实现集中控制
- 数据的一致性和可维护性,确保数据的安全性和可靠性
- 故障恢复
并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常 的交互作用。
数据库的基本操作
sqlplus xiao/xiao (账号/密码)
sqlplus "/as sysdba"以dba的身份登录,不需要密码
show user 查看当前登录的用户是谁
登录后要清屏:
在window:$cls
在ubuntu里:!clean
设置会话的语言环境:
alter session set nls_language=english;
alter session set nls_language='simplified chinese';
用户的相关操作
create user test01 identified by test02;
test01:账号;test02:密码;
grant connect,resource to test01;
把connect和resource权限给test01用户
connecet:角色基本的连接
resource:程序开发
conn test01;连接该用户
drop user test01 cascade;删除该用户
数据库表的操作
@test.sql:导入sql文件
desc s_emp;查看表结构
sql语句分类:
-
DQL (Data Query Language),数据查询语言用于检索数据库中的数据,主要是 SELECT 语句
-
DML (Data Manipulation Language),数据操纵语言用于改变数据库中的数据,主要是 INSERT , UPDATE , DELETE 语句select name from tbl_student;
-
DDL(Data Define Langage),数据定义语言用来建立、修改、删除数据库对象,主要是 CREATE 、 ALTER 、 DROP 、 TRUNCATE 语句TCL (Transaction Control Language),事务控制语言 用于维护数据的一致性,主要是 COMMIT , ROLLBACK , SAVEPOINT 语句
- DCL(Data Control Language),数据控制功能 用于执行权限授予和权限收回操作,主要是 GRANT , REVOKE 语句
as:取别名
拼接
select first_name||last_name from s_emp;
select first_name||'-xiao-'||last_name from s_emp;
nvl
可以将null进行替换
select id,nvl(commission_pct,00) xiao_pct from s_emp;
distinct
去除重复的数据
format:
设置列所占的宽度:
column last_name format a15
col last_name for a15
clean column
clear col
spool
记录操作过程
spool d:\today.sql;
spool off;
order by
对查询的数据进行排序
asc默认升序
desc降序
select first_name,last_name
from s_emp
order by first_name asc,last_name desc;
条件查询
- between and
- in()
- like
- is null
- and,or
in
select id,last_name from s_emp where id in(1,2,3,4);
like
like通配符:
- % 调配0到多个字符
- _调配一个字符
- \ 转义字符,要使用escape关键字
- []
- [^]
这个网站有下面两个的详细解释:
https://www.runoob.com/sql/sql-wildcards.html
select id last_name
from s_emp
where last_name like '__n_%';
is null
select id,last_name form s_emp
where last_name is not null
and or
看员工部门为41 或者 44号部门,且工资大于1000的员工id和名字
select id,last_name,dept_id,title
from s_emp
where salary>1000
and (dept_id=41
or
dept_id=44);
select id,last_name,dept_id,title
from s_emp
where salary>1000
and dept_id=41
or
dept_id=44;
函数
哑表: