oracle数据库操作语句


oracle数据库语句,mysql也差不多,只需要将字段类型改为mysql的就能用,序列只有oracle可以,mysql有自己的主键自增策略

 1 -- 创建序列的sql (序列名为:seq_student,从1开始,每次加1)
 2 create sequence seq_student 
 3 minvalue 1 nomaxvalue  -- 最小值是1,没有最大值 可省略
 4 start with 1    -- 从1开始 可省略
 5 increment by 1  -- 每次自增1 可省略
 6 nocycle;        -- 不循环 还有cycle循环 没有必要,可省略
 7 
 8 -- 创建student表
 9 create table student (
10     id number,
11     name vachar2(50),
12     age number(3),
13     test vachar2(20)    
14 ); 
15 
16 -- 修改表结构 (给student表添加两列)
17 alter table student add (
18     clazz vachar2(20),
19     address vachar2(50),
20 );
21 
22 -- 修改列类型 (修改班级字段的数据类型为number类型)
23 alter table person modify clazz number(2);
24 
25 --修改列名称 (修改班级字段的列名从clazz -> grade)
26  alter table student rename column clazz to grade;
27  
28 -- 删除一列 (删除test字段)
29 alter table student drop column test;
30 
31 -- 给相应列添加comments注释 (用【表名.字段名】修改)
32 comments on column student.id is '学生主键';
33 comments on column student.name is '学生姓名';
34 comments on column student.age is '学生年龄';
35 comments on column student.address is '学生地址';
36 comments on column student.grade is '学生班级';
37 
38 -- 给学生表添加主键约束(名字随便取:PK_STUDENT_ID)(constraint:约束)
39 alter table student add constraint PK_STUDENT_ID primary key (ID)
40 
41 -- 插入语句(插入全字段时可省略)
42 insert into student values(101, '张三', 18, '浙江省杭州市', '2');
43 
44 -- 插入部分字段(不可省略)
45 insert into student(id, name, address) values(102, '李四', '浙江省宁波市');
46 
47 -- 更新语句
48 update student set name = '李斯' where id = 102;
49 
50 -- 删除语句
51 delete student;  -- 将student记录全删
52 delete student where id = 102;  --将id为102的记录删除
53 
54 -- 删除表结构
55 drop table student;
56 
57 -- 先删除表,再次创建表。效果等于删除表中记录,
58 -- 如果表中数据量大,而且表中带有索引,则这种方式效率很高
59 truncate table student; 
60 
61 
62 -- 用我们自己写的序列生成主键(只需要调用【序列.nextval】,大小写不区分,即可自动生成一个主键)
63 insert into student(id, name) values(seq_student.NEXTVAL, '王五');
64 
65 -- 在项目中常常会用到主键,所以有时需要先查出来,
66 -- 但是序列又不属于任何一张表,所以查的是虚拟表dual,(作用是补全语法),返回的是生成的主键
67 select seq_student.NEXTVAL from dual