数据库——SQL语言

SQL并不是完全的编程语言,而是一种数据子语言,仅包括定义和处理数据库的结构。要成为完全的编程语言,SQL语句必须嵌入脚本语言(如VBScript)或编程语言(Java和C#),也可以使用支持DBMS的命令提示交互式地提交SQL语句。

SQL命令分类之二:DDL、DML。


CREATE语句:

1.
CREATE    TABLE     表名(

    列名       值类型      若干列约束,
    列名       值类型      若干列约束,
    ......

);

列约束——PRIMARY KEY,NOT NULL,NULL,UNIQUE,DEFAULT

2.

表约束:

CREATE    TABLE     表名(

    列名       值类型      若干列约束,
    列名       值类型      若干列约束,
    ......
    CONSTRAINT     约束名     PRIMARY  KEY(列名),
    CONSTRAINT    约束名     FOREIGN  KEY(列名)  REFERENCES  表名(列名)

                                                                                          ON UPDATE CASCADE,

    CONSTRAINT    约束名     FOREIGN  KEY(列名)  REFERENCES  表名(列名)

                                                                                          ON UPDATE NO ACTION,

    CONSTRAINT    约束名     FOREIGN  KEY(列名)  REFERENCES  表名(列名)

                                                                                          ON DELETE CASCADE,

    CONSTRAINT    约束名     FOREIGN  KEY(列名)  REFERENCES  表名(列名)

                                                                                          ON DELETE NO ACTION

);

INSERT语句:
1.

INSERT  INTO  表名  VALUES(值1,值2,值3...);——————————不需要指定代理键的值,值的顺序和表中的顺序一致,非数字值放在单引号中。

2.
INSERT  INTO   表名   (列名1,列名2,列名3......) VALUES(值1,值2,值3......);

SELECT语句:
1.

SELECT   列名1,列名2,列名3——————————列名前加DISTINCT关键字,将强制删除结果中的重复行  ,* 代表所有列
FROM    表名——————————————SELECT语句本身的结果也是表,故此处可以嵌套SELECT语句
WHERE     行限定条件;————————省略WHERE语句就是不进行行限定

关于WHERE子句行限定条件的限定方法
限定方法是通过逻辑连接符(AND,OR)将若干个子条件连接。其中,子条件的构造方法有:
—列值大小判断,由比较运算符(=,>,<,>=,<=,!=或<>)构成,其中文本类型的列只能判断是否相等
—列值范围判断,通过BETWEEN关键字
—列值集判断,通过关键字IN和NOT IN,如 : WHERE   列名  IN(值1,值2,值3)表示指定列的值必须是括号中值集中的一个,而NOT IN 表示非该值集中的任意一个。除了使用直接列举的方式表示值集,还可以用嵌套的方式(SELECT语句对单个列进行操作的结果就是一个值集)。
—文本类列值的简单格式判断,使用LIKE和NOT  LIKE关键字,下划线代表一个未指定字符,百分号代表一个或多个未指定的字符,Access  ANSI-89  SQL使用问号代替下划线,星号代替百分号
—列值是否有值,使用关键字IS   NULL和IS   NOT    NULL。


SELECT语句中,SELECT后面不仅可以是表(FROM后跟的表)中存在的列,还可以通过存在的列获取新列,方法有:
1.
对现有列进行基本算数运算(只对数值列),格式如:SELECT   (列名 *  数值),如果在此基础上加上AS  新列名,就能为此列命名,格式如:SELECT   (列名 *  数值) AS  新列名
2.
内置函数的值——COUNT、SUM、AVG、MAX、MIN的值,其中,COUNT可以用于任何类型数据,其它只可用于数值型数据,它们构造的新列都是数值型数据。
COUNT用法——COUNT(列名),得到的是指定列的行数值
SUM用法——SUM(列名),得到的是指定列的总和
MAX用法——MAX(列名),得到的是指定列的最大值
MIN用法——MIN(列名),得到的是指定列的最小值
格式如:SELECT   COUNT( * )  AS  新列名

SELECT  FROM架构可加入的其它子句:
1.
ORDER   BY  列名   ASC——————ASC是升序,不写ASC也是升序,换为DESC则为降序。此外,不只可以按一个列排序,还可以依次按多个列排序,列名用逗号分割。
2.
分组————————分组主要用于对内置函数的采值范围进行分组,
SELECT  列名 , Count (*) AS  新列名
FROM   表名 
GROUP   BY   列名
HAVING    限定条件——————————分组不仅限定了SELECT部分内置函数的采值范围,也限定了HAVING部分中会存在的内置函数的采值范围。
SQL标准规定,同时出现WHERE和GROUP  BY时,首先运用WHERE条件。

使用连接查询多个表:

方法1

SELECT 表名1.列名1,表名2.列名
FROM 表1,表2
WHERE 表名1.列1=表2.列1;————————表1和表2通过表1.列1和表2.列1进行连接

方法2

SELECT 表1.列1,表2.列2,表3.列3
FROM 表1,表2,表3
WHERE (表1 JOIN 表2
    ON 表1.列1=表2.列1)JOIN  表3 ON 表2.列1=表3.列1;————————Access要求JOIN前加INNER,外连接加LEFT或者RIGHT

修改信息:
UPDATE 表名
SET 列名=新值
WHERE 行限定;

删除行信息:
DELETE 
FROM 列名
WHERE 行限定;

修改表结构:
1.添加约束
ALTER        表名
ADD         CONSTRAINT      约束名 ......;

2.删除约束
ALTER        表名
DROP   CONSTRAINT      约束名;

3.添加字段
ALTER       表名
ADD      新字段名        字段类型        字段特性;

4.删除字段
ALTER     表名
DROP     COLUMN   字段名

5.修改字段类型和特性
ALTER     表名
ALTER     COLUMN      字段名     字段类型      字段特性;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值