Oracle Sql语句

孤人 提交于 2019-12-07 13:27:04

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 ;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!