??xml version="1.0" encoding="utf-8" standalone="yes"?>
关系数据库的主要特点之一是用表的方式组l数据。表?font size="3">SQL语言存放数据、查找数据以及更新数据的基本数据l构。在SQL语言中,表有严格的定义,它是一U二l表Q对于这U表有如下规定:
1)每一张表都有一个名字,通常UCؓ表名或关pd。表名必M字母开_最大长度ؓ30个字W?/font>
2)一张表可以pq列l成Q列名唯一Q列名也UC属性名?/font>
3)表中的一行称Z个元l,它相当于一条记录?/font>
4)同一列的数据必须h相同的数据类型?/font>
5)表中的每一个列值必L不可分割的基本数据项?/font>
CREATE TABLE
表名 [表约?/font>](
列名1 数据cd [~省?Q列U束1](
列名2 数据cd [~省?Q列U束2]…
列名
n 数据cd [~省值nQ列U束n][TABLESPACE
表空间名U][STORAGE (
存贮的子句)][ENABLE
U束?/font>][DISABLE
U束?/font>]当一个表新徏成时Q它里面没有数据Q通过向表中扦入数据,建成表的实例?/p>
语句句法Q?/font>
INSERT INTO
表名[(列名1,…)]VALUES(
?/font>1Q?/font>2Q?#8230;,值n)[
子查?/font>]Q?/font> 假设有一张表Student如下所C:NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
INSERT INTO STUDENT VALUSE(1003, 'E',12);
对表中已有数据进行修改,语句句法Q?/font>
UPDATE
表名SET 列名1Q表辑ּ1Q列?/font>2Q表辑ּ2Q?#8230;WHERE
条gQ?/p>例如Q?font size="3">对下表Student
NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
?/font>B的年U改?8Q应该执行以下语句:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
删除表中已有数据Q不能删除不存在的数据?/font>
语句句法:
DELETE FROM 表名 WHERE 条gQ?br />
例如Q?br />
对下面Student表进行删除,要删除其中年Uؓ12的学生;
NO | NAME | AGE |
1001 | A | 12 |
1002 | B | 14 |
ALTER TABLE
表名 ADD(新列?数据cd(长度))Q?/p>例如Q?/font>
ALTER TABLE STUDENT ADD (DEPARTMENT CHAR(8));
b.
增加已有列的数据cd?/p>例如Q?/p>
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
已l存在的表删除,语句句法:
DROP TABLE
表名Q?/p>例如Q?/font>
DROP TABLE EMP
Q?/font> 查询语句SELECT
命o的语法ؓQ?/font>SELECT [DISTINCT|ALL] {*|
模式?/font>.] {表名|视图?/font>|快照?font size="3">] .*
…| {表达?font size="3">[列别?font size="3">]…} } [, [模式?font size="3">. ] {表名|视图?/font>|} .*…| 表达?/font>[列别?/font>] ]…
FROM [模式?] {表名|视图名|快照名} [@数据库链名] [表别名]
[, [模式?/font>.] {表名|视图?/font>|快照名} [@数据库链?/font>]
[
表别?/font>] ]…[WHERE
条g][START WITH
条g CONNECT BY 条g][GROUP BY
表达?/font>[Q表辑ּ] …[HAVING条g][UNION|UNION ALL |INTERSECT|MINUS]SELECT
命o[ORDER BY{
表达?/font>|位置} [ASC|DESC] [, {表达?/font>|位置[ASC|DESC]}]…] 例如Q对于STUDENT?NO | NAME | AGE |
1001 | AE | 12 |
1002 | BT | 14 |
(1) 查询q纪?2的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;
(2) 查询q纪?2?6岁之间的学生姓名Q?/p>
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;
(3) 查询q纪?/strong>?2?6岁之间的学生姓名Q?/p>
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16; (4) 查询所有姓名以A开头的学生的姓名; SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%'; (5) 列出所有学生年U的和,q纪的^均|最大|最|最大g最g间的差| SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE); (6) 所有学生按学号序升序排列Q?/font> SELECT * FROM STUDENT ORDER BY NO DESC; (7) 所有学生按学号序升序排列Q?/font> SELECT * FROM STUDENT ORDER BY NO ASC;
]]>
վ֩ģ壺
ʯ|
ɳ|
|
|
ɽ|
״|
|
|
|
|
Ԫ|
߱|
|
|
|
|
|
|
Ʊ|
׳|
|
|
ϻ|
|
|
|
|
բ|
ǿ|
ⶫ|
|
|
|
|
|
ɽ|
ҵ|
ͺ|
|
|
|