1,把表中已有字段设置成主键
ATTER TABLE tablename ADD CONSTRAINT pk_tablename_id PRIMARY KEY(id) ;
2,在创建表的时候创建主键
create table tablename
(
id int identity(1,1) primary key,
...
)
identity(1,1)标识列,自动增量,identity(a,b),a和b都为正整数,a为开始数,b表示增幅,identity(1,1)表示此列为自动增长列,由1开始每次增加1。
3,Oracle创建表
create table inspector
(
USERID NUMBER(6) NOT NULL PRIMARY KEY ,
USERNAME VARCHAR2(10) NOT NULL ,
USERAGE NUMBER(6) NOT NULL
);
4,数据控制语句(DML)
(1)INSERT
INSERT INTO 表名(字段名1,字段名2,......) VALUES (值1,值2,......);
INSERT INTO INSPECTOR(USERID,USERNAME,USERAGE) VALUES (1,'XIAOP',11);
字符串类型的字段值必须用单引号括起来,例如'xiaop'。
如果字段值里包含单引号'',需要进行字符串转换,我们就把他替换成两个单引号''。
字符串类型的字段值超过定义的长度会出错,最好在插入之前进行长度检验。
如果定义的自动增长的序列号NUMBER(6),则最大值为999999
(2)DELETE(删除数据表里记录的语句)
DELETE FROM 表名 WHERE 条件 ;
注意:删除记录,并不能释放ORACLE里被占用的数据库表空间,只是把那些删除的数据记录变成unused。如果确实要删除一个大表中的所有记录,可以使用TRUNCATE命令,他可以释放占用的数据库表空间, TRUNCATE FROM 表名 ; 此命令不可撤销。
(3)UPDATE(修改数据表中的语句)
UPDATE 表名 SET 字段名1=值1,字段名2=值2,... ...WHERE 条件 ;
UPDATE INSPECTOR SET USERNAME='小李',USERAGE='21' WHERE USERID = 2;
如果修改的值N没有赋值或定义时,会将原来的记录内容清为NULL,最好在修改前进行非空校验,值N超过定义的长度会出错,最好在插入前进行长度校验。
5,查询语句(SELECT)部分
SELECT 字段1,字段2... ... FROM 表名1,表名2 WHERE 条件;
SELECT USERNAME,USERAGE FROM INSPECTOR WHERE USERID = 1 ;
字段名可以带入函数
例如:COUNT(*),MIN(字段名),MAX(字段名 ),AVG(字段名),DISTINCT(字段名)
SELECT COUNT(*) FROM INSPECTOR WHERE USERAGE = 1 ;
查询语句嵌套
例如:(SELECT ... FROM 表名1,[表名2] WHERE 条件1) WHERE 条件2 ;
分组查询
SELECT 字段名1,字段名2,... ...FROM 表名1 GROUP BY 字段名1 [HAVING 条件] ;
查询结果集的排序操作,默认的排序是升序ASC,降序是DESC
SELECT 字段名1,字段名2,... ...FROM 表名1 ORDER BY 字段名1,字段名2 DESC ;
来源:oschina
链接:https://my.oschina.net/u/2541486/blog/760214