数据定义

模式schema

1.定义模式:creat schema<name> authorization <author> ;

2.删除模式:drop...<cascade | restrict>;

注:

        cascade表示同时删除模式中所有的数据库对象。restrict表示若模式中已经定义了下属的数据库对象(表、视图等),则拒绝该语句的执行,没有定义则可以执行。

基本表table

1.定义基本表:creat table <name>(<col name><type>[...],<..><..>,...) ;

2.修改基本表:alter table <name>    [ add ... ]  [ drop... ] [ alter column...] ;

3.删除基本表:drop table <name> [cascade | restrict] ;

索引index

        在RDBMS(基于关系模型的数据库系统)中索引一般采用B+树,HASH索引来实现。采用哪一种由具体的RDBMS来决定

1.建立索引:creat [unique] [cluster] index <name> on <table name>(<column name>[<asc |desc >]...,<name>...) ;                                            //asc为升序,desc为降序,缺省为asc

2.删除索引:drop index <name> ;

关系 

每一个基本表都属于某一个模式,一个模式包含多个基本表。

如何显示出二者的关系?

        1.在表名中明显的给出模式名creat table “S-T”.Course(...);    //course所属模式是“”S-T

        2.创建模式时同时创建表

CREAT SCHEMA S-T AUTHORIZATION Joey
    CREAT table Course
        (no CHAR(4) PRIMARY KEY,                  /*列级完整性约束条件,no是主码*/
         name CHAR(40) UNIQUE,                    /*name取唯一值*/
         credit SMALLINT,
         FOREIGN KEY no REFERENCES Student(Sno)
        /*表级完整性约束条件,no是外码,被参照表是Student,被参照列是Sno*/
        );

        3.提前设置所属模式

数据查询select

单表查询

1、一般格式
/*一般格式*/
SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>]...
FROM <表名或视图名>[,<表名或视图名>]...
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING<条件表达式>]]
[ORDER BY <列名2> [ASC | DESC]];

        根据where的条件表达式,从from指定的表中找出满足条件的元组,再按select中的目标列表达式,选出元组中的属性值形成结果表。其中distinct关键词表示去掉结果表中的重复行。

        若有group,则按列名1的值进行分组,该属性列值相等的元组为一组。通常会在每组中作用聚集函数(aggregate functions)。如带有having,则只有满足指定条件才予以输出。

        如有order,则结果表还要按照列名2进行排序。

2、查询全部列
SELECT *           /*选择全部列*/
FROM student;
3、查询经过计算的值
SELECT name NAME,2004-age BIRTHDAY
FROM student;

        查询结果的第二列是一个算术表达式,可以尽量查询同时做计算。可以通过指定别名来改变查询结果的列标题,如上述中给name列定义了NAME别名。

4、常用的查询条件

查询条件

谓词

比较

=,>,<,>=,<=,!=或<>,!>,!<;NOT+上述比较运算符

确定范围

BETWEEN AND,NOT BETWEEN AND        

确定集合

IN,NOT IN

字符匹配

LIKE,NOT LIKE

空值

IS NULL,IS NOT NULL

多重条件(逻辑运算)

AND,OR,NOT

字符匹配:[ not ] like '<匹配串>' [ escape '<换码字符>' ]

注:

        匹配串可以是一个完整的字符串,也可以含有通配符%(代表任意长度0~

易语言取MYSQL数据库值_易语言取MYSQL数据库值

的字符串。例如a%b表示以a开头,以b结尾的任意长度字符串。如ab,addgb,acb等)和_(代表任意单个字符)。

        当查询的字符串本身就含有%或者_时,使用escape'<换码字符>'短语,对通配符进行转义。例如where name like ' db\_%i_ _ ' escape' \ ' ,第一个_前有\为普通的字符,后几个具有通配符的含义。

5、聚集函数

        为进一步增强检索功能,SQL提供了许多聚集函数,主要有:                  

count( [ distinct | all ] * ) 

统计元组个数

count( [ distinct | all ] <列名>)

统计一列中值的个数

sum( [ distinct | all ] <列名>)

计算一列中值的总和(此列必须是数值型)

avg( [ distinct | all ] <列名>)

计算一列中值的平均值(此列必须是数值型)

max( [ distinct | all ] <列名>)

求一列中的最大值

min( [ distinct | all ] <列名>)

求一列中的最小值

连接查询

        连接查询包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询、符合条件连接查询。