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