SQL基本语句及其使用方法之【CREATE/SELECT/ALTER/DROP/GROUP BY】

来源:互联网 发布:excel编程用途 编辑:程序博客网 时间:2024/06/05 22:42

1、SQL:Structured Query Language 结构化查询语言

包括数据查询(query)、数据操纵(manipulation)、数据定义(definition)和数据控制(control)功能,是一种通用的、功能强大的关系数据库的标准语言。

DBMS:Database Management System,数据库管理系统

SQL的特点:

  1. 综合统一,集数据定义和数据操纵为一体的典型数据库语言。
  2. 高度非过程化,当进行数据操作时,只要指出“做什么”,无须指出“怎么做”,存储路径对用户来说是透明的,提高了数据的独立性;
  3. 面向集合的操作方式:操作对象、查找结果可以是元组的集合;
  4. 两种使用方式:1、用户在终端键盘输入SQL命令,对数据库操作。称为自含式语言;2、将SQL语言嵌入到高级语言程序中,嵌入式语言。
  5. 核心功能,9个动词
    • 数据查询:SELECT
    • 数据定义:CREATE、DROP、ALTER
    • 数据操纵:INSERT、UPDATE、DELETE
    • 数据控制:GRANT(授权)、REVORK(销权)

2、创建表(CREATE TABLE)

语句格式:

1
2
3
4
5
CREATE TABLE <>(<><>[],
                    <><>[],
                    ...,
                    []); 
                    

列级的完整性约束条件有NULL(空)和UNIQUE(取值唯一),如NOT NULL UNIQUE表示取值唯一,不能取空值。

3、修改表(ALTER TABLE)

语句格式:

1
2
3
4
ALTER TABLE<>[ADD<><>[]]
                [DROP<>
                [MODIFY<><>];
                
1
2
ALTER TABLE S ADD Zap CHAR(6);  //SZap“
ALTER TABLE S MODIFY Status INT  //SStatus

4、删除表(DROP TABLE)

语句格式:

1
DROP TABLE<>

比如

1
DROP TABLE Student; //Student访

5、建立索引(CREATE INDEX)

语句格式:

1
2
CREATE [UNIQUE][CLUSTER]INDEX <>
    ON<>(<>[<>],<>[<>],...);

说明:

  • 次序可以:ASC(升序)/DSC(降序),默认值为ASC;
  • UNIQUE:表示此索引的每个索引值只对应唯一的数据记录
  • CLUSTER:表明要建立的索引是聚簇索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织。

例如:

1
2
3
4
CREATE UNIQUE INDEX S-SNO ON S(Sno);  //SSno
CREATE UNIQUE INDEX P-PNO ON P(Pno);  //PPno
CREATE UNIQUE INDEX J-JNO ON J(Jno);  //JJno
CREATE UNIQUE INDEX SPJ-NO ON SPJ(Sno ASC,Pno DSC,Jno ASC);  //PSJSnoJno
Pno

6、删除索引(DELETE INDEX)

语句格式:

1
2
DROP INDEX<>
//DROP INDEX StudentIndex; //StudentIndex

7、视图的创建(CREATE VIEW)

语句格式:

1
2
3
CREATE VIEW  ()
    AS SELECT 
    [WITH CHECK OPTION]

8、视图的删除(DROP VIEW)

1
DROP VIEW CS-STUDENT; //CS-STUDENT

9、SELECT查询

简单查询:

1
2
3
4
SELECT Sno,Sname,2012-age
  FROM S
 WHERE SD='CS';
//2012"CS"

连接查询:

1
2
3
4
SELECT Sno,Sname
FROM   S,SC,C
WHERE  S.Sno=SC.Sno AND SC.Cno=C.Cno AND C.Cname='MS'
//“MS”

上述也可以通过子查询(嵌套查询)实现:

1
2
3
4
5
6
7
SELECT Sno,Sname
FROM   S
WHERE  Sno IN(SELECT Sno
              FROM   SC
              WHERE  Cno IN(SELECT Cno
                            FROM   C
                            WHERE  Cname='MS'))

聚集函数的使用:5个预定义集函数:平均值avg,最小值min,最大值max,求和sum以及计数count

1
2
3
4
5
6
7
8
//
SELECT Sname,Sage
FROM   S
WHERE  Sage<ANY (SELECT Sage
                 FROM   S
                 WHERE  SD='CS')
       AND SD<>'CS'  //<>
//CSCS

另一种方法,是用MAX函数:

1
2
3
4
5
6
7
SELECT Sname,Sage
FROM   S
WHERE  Sage<(SELECT MAX(Sage)
             FROM   S
             WHERE  SD='MS')
       AND   SD<>'CS'
//

10、分组查询

GROUP BY:

1
2
3
4
5
SELECT   Sno,AVG(Grade)
FROM     SC
GROUP BY Sno
//SC
//OMG,

(●—●)大白在此,接下来继续努力!加油!

0 0