1 SQL(language)是什么?
structured query language结构化的查询语言
1.1.查询语句DQL(date query language)
Select 显示要查询的内容
1.2 数据操作语句(DML)
DML(data maniputlation language) ----table data row
insert 添加数据
update 修改数据
delete 删除数据
1.3 数据定义语句(DDL)
DDL(date defintion language):用来定义表结构
create table
alter table openlabel 192.168.3.205
drop table
rename 改表名
Turncate 删除整个表的内容
1.4.事务控制语言(TCL)
TCL(transaction control language)
commit (提交) 永久性的保存所做的修改
rollback (回滚) 取消对行所做的修改 用在commit之前
savepoint 设置一个保存点,回滚的时候回滚到此处
1.5数据控制语言(DCL):*
grant 授权其他用户对数据进行操作
revoke 阻止其他用户对数据进行操作
2 SQL基本的语法
2.1 create
创建数据库
create database 数据库名;
创建表
create table 表名(
字段名 字段类型(长度),
字段名 字段类型(长度)
);
创建一个新表,数据复制现有的表
create table 表名
as
查询语句;
字段类型
char 按定义长度存,可以不跟长度,缺省1 ,会补空格
varchar2 按实际长度存,必须跟长度,不会补空格
数据是定长用char,有长有短用varchar2
number(长度) 长度可以是不写,默认38位
可以写(5) ,表示5位整数
(4,2) ,表示4位有效数字,包含2位小数,如12.34
(3,-3),表示三位有效数字,从百位开始,如123000
(2,4),表示2位有效数字,有4位小数,如0.0001-0.0099
2.2 insert
插入字段
insert into 表名(相对应字段) values (对应字段的值);
或
insert into 表名 values (全部对应字段的值);
插入多条数据
intsert into 表名 (查询语句); ---查询语句的结果集表结构要和被插入的表结构相同
2.3 update
语法:
update 表名 set 列名 = 新的列值,
....
列名 = 新的列值
where 条件;
例子:将员工号为1011的员工薪水改为3500,职位改为Programmer
update emp_xxx
set salary 3500,job = 'Programmer'
where empno = 1011;
例子:将部门10的员工薪水+1000
update emp_xxx set salary = salary + 1000
where deptno = 10;
注意:更新(update)数据表时,注意条件,如果不加条件,修改的是全部记录表
2.4 delete
语法:
delete [from] 表名 where 条件;
注意:如果删除语句中不加where条件,将删除表中的全部记录,可以回退
例子:删除'牛宝宝'的记录
delete emp_xxx
where ename = '牛宝宝';
例子:删除表中所有的数据
delete emp_xxx;
2.5 truncate(截取,截断)
1)truncate table;删除表中数据,保留表结构
2)truncate操作不需要提交(commit),没有回退(rollback)的机会
3)语法结构:
truncate table 表名;
4)truncate与delete的区别
truncate在功能上等同于: delete + commit
delete操作将删除数据存储到临时空间中,不能直接删除,可以回退
truncate 操作直接删除,不占用临时空间,不能回退
2.6 rename
rename 表名 to 新表名;
2.7 drop
drop taible 表名; 删除表(删除表的结构和数据)
drop datebase; 删除数据库
注意:不可以回退
2.8 alter(修改结构)
2.8.1 add关键字
增加列(只能增加在最后一列)
语法结构:
alter table 表名 add(列名 数据类型(长度));
例子:增加一列
alter table emp_xxx add(name char(10));
2.8.2 rename关键字
修改列名
语法结构
alter table 表名 rename cloumn 原列名 to 新列名
例子:alter table emp_xxx rename column name to nm;
2.8.3 modify关键字
修改列的数据类型
语法结构:
alter table 表名 modify (列名 数据类型());
例子:修改pwd列的数据类型为char(8);
alter table emp_xxx modify(pwd char(8));
2.8.4 drop column
删除列
语法结构
alter table 表名 drop column 列名;
例子:
alter table mytemp_xxx drop column pwd;
2.9 rownum关键字
rownum是Oracle数据库提供的,代表行号.
例子:向新表中插入指定记录的数据,比如前8条
insert into emp_bak1
(select * from emp_xxx where wownum <=8);
2.10 rowid包含的信息 ?
1)表的信息,属于哪张表
2)属于哪个数据文件
3)属于哪个数据块
4)在数据块第几条记录
select rowid,empno from emp_xxx;