SQL学习心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL(Structured Query Language)
--- 结构化查询语言
SQL是在关系数据库中执行数据操作,检索,维护所使用的标准语言,可以用来查询数据,操作数据,定义数据,控制数据
执行SQL语句时用户只需要知道其逻辑含义,而不需要知道SQL语句的具体执行步骤。
------数据库对象通常包含表,视图,索引,序列【数据定义语言DDL】-->表结构
Data Definition Language,用于建立,修改,删除数据库对象,不需要事务的参与,自动提交。
——CREATE:创建表或其他对象的结构
CREATE TABLE table_name(
column_name datatype [DEFAULT expr],
………………………………………………
);
Eg:--创建表emp
CREATE TABLE emp(
id NUMBER(10),
name VARCHAR2(20),
gender CHAR(1),
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptid NUMBER(2)
);
——ALTER:修改表或其他对象的结构
修改表名:
RENAME old_name TO new_name (新表名不能使数据库中已有的表)
增加列:
ALTER TABLE table_name ADD
(column_name datatype[DEFAULT],
……………………………);(新增列只能在表的最后一列追加)
删除列:
ALTER TABLE table_name DROP
(column_name);(删除不需要的列)
删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
修改列:
ALTER TABLE table_name MODIFY
(column_name datatype[DEFAULT],
……………………………);(修改仅对以后插入的数据有效,
修改字段前的所有数据不受影响)修改时一般类型不改,改长度,尽量往长里改,因为如果表中已经有数据的情况下,把长度由大改小,有可能不成功
——DROP:删除表或其他对象的结构
DROP TABLE table_name
——TRUNCATE:删除表数据,保留表结构
TRUNCATE TABLE table_name
可以通过DESC table_name 查看表结构
【数据操作语言DML】-->表结构中的数据 Data Manipulation Language,用于改变数据表中的数据,和事务是相关,执行完DML操作后必须经过事务控制语句提交后才真正的将改变应用到数据库中
——INSRET:将数据插入到数据表中
INSERT INTO table_name[(column[, column…])]
VALUES(value[, value…]); (每执行一次增加一条记录)
指定向哪些列插入对应的值,没有指定的列:若
设有默认值(DEFAULT),那么插入的就是该默
认值,否则插入null,若某列设为not null,执
行INSERT语句时又没指定该列,那么插入会抛
出违反不为空的约束条件,若不写指定的列,默
认所有列插入,每一列的值VALUE都不能少
——UPDATE:更新数据表中已存在的数据
UPDATE table_name
SET column = value[,column = value]……
[WHERE condition]; --若不写where子句,全表所有行的column都被更新——DElETE:删除表中的数据
DELETE [FROM] table_name
[WHERE condition]; --若不写where子句,全表所有行数据都被删除
另注意与DDL中的TRUNCATE的区别:
* 二者都是删除表记录,DELETE可以有条件的删(WHERE),TRUNCATE是将表数据全部删除 * DELETE是DML,可以回退(ROLLBACK),TRUNCATE是DDL,立即生效,无法回退
* 如果删除的是全部表记录,且数据量较大,TRUNCATE速度更快
【事务控制语言TCL】
Transaction Control Language,用来维护数据的一致性——COMMIT:提交,确认已经进行的数据改变
——ROLLBACK:回滚,取消已经进行的数据改变
——SAVEPOINT:保存点,使当前事务可以回退到指定的保存点,便于取消部分改变
Eg:
DDL 范畴,控制表结构不需要TCL参与,自动提交
DML 范畴,控制表结构中的数据经TCL确认后,才会真正生效,
否则是“假象”
【数据控制语言DCL】
Data Control Language,用于执行权限的授予和收回操作——GRANT:授予,用于给用户或角色授予权限
——REVOKR:用于回收用户或角色已有的权限
——CREATE USER:创建用户
【数据查询语言DQL】
Data Query Language,用来查询需要的语句
★补充知识点★
数据类型:定义表中每一列可以使用的数据格式和范围,用来保证数据类型的格式和有效性
➢字符串操作:Oracle中的字符串是用单引号(‘’)括起来的,注意与Java的区别
1.字符串类型:
CAHR,VARCHAR2 表示字符串数据类型,用来在表中存放字符串信息