SQL:结构化查询语言
SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据。
所有的数据库都使用相同或相似的语言。
DDL 数据定义语言 用于建立、修改、删除数据库对象
DDL是对数据库对象进行操作的语言,数据库对象包括:表、视图、索引、序列
包括:
-CREATE: 创建表或其他对象的结构
-ALTER: 修改表或其他对象的结构
-DROP: 删除表或其他对象的结构
-TRUNCATE: 删除表数据,保留表结构
1.修改表名
rename employee to myemp
2.修改表结构
1:添加新的字段(只能追加在之前的字段末尾)
ALTER TABLE myemp
ADD(
hiredate DATE DEFAULT SYSDATE
)
2:修改现有字段
可以修改字段的类型,长度,默认值,是否非空
修改表结构都应当避免在表中有数据以后进行,若表中有数据,修改表中字段时尽量不要修改类型。
若修改长度尽量做到增大避免缩小,否则可能导致失败。
ALTER TABLE myemp MODIFY (job varchar2(40));
3:删除现有字段
ALTER TABLE myemp DROP (hiredate)
DML 数据操作语言 用于改变数据表中的数据
和事务(TCL)相关,执行完后需要经过事务控制语句提交后才真正的将改变应用到数据库中
包括:
-INSERT: 将数据插入到数据表中(数据插入时的顺序可以不定,但是values中的内容需要跟插入时的顺序一致)
insert into myemp (id, name, salary, deptno) values(1,'JACK',3000,10);
插入的列有日期字段,需要考虑日期的格式,默认的日期格式‘DD-MON-RR’
可以自定义日期格式,用TO_DATE函数转化为日期类型的数据
----使用默认日期格式插入记录------ (这种格式可能中英文引起混乱,尽量不用)
insert into myemp (id,name,job,birth) values (1002,'martha','ANALYST','01-SEP-03');
----使用自定义日期格式插入记录------- (有含义的字段语句尽量都大写)
insert into myemp (id,name,job,birth) values (1003'donna','MANAGER', TO_DATE('2009-09-01','YYYY-MM-DD'));
-UPDATE: 更新数据表中已存在的数据
修改表中的数据要使用where添加过滤条件,这样才会只将满足条件的记录进行修改,否则是全表所有数据都修改。
UPDATE myemp SET salary=6000,name='Hello' WHERE id=1;
-DELETE: 删除数据表中的数据(如果是字段类型的数据,大小写是严格区分的)
删除表中数据,删除数据通常也要添加WHERE语句来限定要删除数据的条件,否则就是清空表操作!
DELETE (from) myemp WHERE id=1; ------此处加from与不加没有区别-----
TCL 用来维护数据一致性的遇见
包括:
- COMMIT: 提交,确定已经进行的数据改变
- ROLLBACK: 回滚,取消已经进行的数据改变
- SAVEPOINT: 保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变。
DQL 数据查询语言 用来查询所需要的数据 SELECT语句
DCL 数据控制语言 用于执行权限的授予和收回操作
包括:
-GRANT:授予,用于给用户或角色授予权限
-REVOKE:用于收回用户或角色已有的权限
-CREATE USER: 创建用户
访问oracle数据库的几种方式:
1.通过dos命令窗口远程连接数据库: telent ip 远程连接ip访问对方数据库
2.本机上直接使用sqlplus登录连接
3.使用sql developer可视化界面直接连接
连接名自取,用户名一般默认sys 或者system,口令在安装时设置,我个人电脑一般用123465.
主机名看连接的服务器ip还是本地ip。端口默认1521。SID看安装的版本xe,orcl等
SQL语句本身不区分大小写,但是出于可读性的目的,我们通常会将SQL中的关键字全部大写,非关键字全部小写。
NUMBER 表示数字类型
CHAR 表示固定长度的字符类型
经常被定义成CHAR(N)形式,N表示占用的字节数,最大长度是2000字节。
使用char时,可以不指定最大长度,此时最大长度为1.
使用数据库字符集来存储数据,长度固定,如果存储的数据没有达到指定长度,自动补足空格。
VARCHAR2 表示变长的字符类型 同时只有oracle中有这个定义,其他数据库都是VARCHAR
两者其实没有区别,只不过oracle为了保持原有标准,单独定义了VARCHAR2
使用数据库字符集存储数据,长度可变,如果存储数据没有达到指定长度,不自动补足空格。
必须指定最大长度,长度最小值为1.
DATE 用于定义日期时间的数据
数据库中所有数据类型的默认值都是NULL,在创建表的时候可以使用DEFAULT为某个字段单独指定一个默认值。
数据库中的字符串字面量是使用单引号的,虽然SQL语句本身不区分大小写,但是字符串的值是区分大小写的!