MySQL-SQL结构化查询语言_MySQL-SQL结构化查询语言

目录

结构化查询语言

1、数据定义语言(DDL)

约束条件Constraint

2、数据操纵语言(DML)

3、事物控制语言(TCL)

4、数据查询语言(DQL)

(1)select/for 基本查询语句

(2)给列起别名

(3)where子句

(4)order by子句(排序)

(5)distinct 去重

(6)group by子句(分组查询)

(7)having子句(分组查询添加条件)

(8)基本查询总结

(9)关联查询

(10)高级关联查询

5、数据控制语言(DCL)

结构化查询语言

结构化查询语言(Structured Query Language),简称SQL,是数据库的标准查询语言。可以通过DBMS对数据库进行定义数据,操纵数据,查询数据,数据控制等

SQL可以分为:

1、数据定义语言(DDL)

Data dafinitaon Language

如创建表create

删除表drop

修改表alter

清空表truncate,彻底清空,无法找回。

查看所有数据库:show databases;

查看所有表:show tables;

modify

删除数据库   drop database db1802;

创建数据库   create database abc default character set utf8;

选择数据库   use abc;

创建表       create table p1(id int(3),name varchar(20));

查看表       desc p1

插入数据     nsert into p1 values(1,'张三');

添加表字段语句   alter table p1 add(age int(3));

删除表字段语句   alter table p1 drop id;

修改表字段类型格式   alter table p1 modify age varchar(2);

修改表字段名称   alter table p1 change age p1age int(3);

修改表名      alter table p1 rename per;

清空表结构   truncate table per;

删除表结构   drop table per;

修改命令提示符界面显示编码集:set names GBK

约束条件Constraint

对插入表中字段的数据起到一定的条件限制。

主键约束:primary key 要求作为主键的字段的字段值非空且唯一,一张表中只能有一个主键,但一个主键中可以有多个字段  AUTO_INCREMENT自增。

非空约束: not null  要求有非空约束的字段不可为null值。

唯一性约束:unique要求有唯一性约束的字段不可以重复,但是可以为null.

检查性约束:check(条件)--- check(gender in('f','m'))   要求在插入数据时必须符合字段的检查条件,可以为null

外键约束: foreign key要求有外键约束的字段A必须依赖于另外一个字段B,字段B要有主键约束。字段A的值,要么是null,要么                                        必须是字段B里的值。

序列:作用用来给作为主键约束的字段进行有序的自增。auto_increment默认序列是从1开始,每次自增+1;

create table t_01

(tid int primary key auto_increment, --主键约束,不能重复,不能为空,自增

tname varchar(20) not null, --非空约束

IdCard varchar(20) unique, --唯一性约束

gender enum('男','女'), --检查性约束

mgr int,

foreign key(mgr) references t_01(tid) --外键约束,被约束的字段存放的数据要么是null,要么是主键中有的

);

2、数据操纵语言(DML)

insert:向表中插入数据

delete:删除表中的数据,格式:delete fromtableName [where 条件]

update:修改表中的数据  格式:updatetableNamesetcolName1=value1[,colName2=value2] [where 条件]

where条件:  对表中的数据增加条件进行限制,起到过滤的作用。

格式:  where  colName 关系运算符 value [or|and 条件2]

关系运算符: >,>=,

null值操作:比较null时,不能使用=或者!= 或者<>,而是使用 is或者is not,在select子句中,使用关系运算符

练习

--创建一个表

create table temp_day02(

tid int,

tname varchar(20),

birth date,

address varchar(50)

);

--================================================================================

--插入数据 1001,'jack' ,'上海' ,下面是两种插入方式,第二种可以批量插入。只需添加多个用逗号隔开即可

insert into temp_t02 values (1001,'jack',null,'上海');

insert into temp_t02(tid,tname,address) values(1002,'rose','beijing');

--================================================================================

--删除表temp_t02中的所有数据。

delete from temp_t02;

--删除表中temp_t02中的tid为1001的记录。

delete from temp_t02 where tid=1001;

--删除表temp_t02中 tid为1002和地址为上海的的数据

select * from temp_t02;

delete from temp_t02 where tid=1002 and address='上海';

--================================================================================

--修改表temp_t02中的字段address为中国。

update temp_t02 set address='中国';

--修改表temp_t02中的tid为1002的address为英国,人名为micheal。

update temp_t02 set address='英国',tname='micheal' where tid=1002;

--将生日为null的记录的tname改为'general'

update temp_t02 set tname='general' where tbirth is null;

--将tid为1001的tbirth改为'2000-8-8';

update temp_t02 set tbirth = '2000-8-8' where tid = 1001;

--将tid为1002的address改为null.

update temp_t02 set address=null where tid=1002;

3、事物控制语言(TCL)

:Transation Control Language

有时我们可能需要使用DML进行批量数据的删除,修改,增加。比如,在一个员工系统中,我们想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。那么从开始执行到结束,就会构成一个事务。对于事务,我们要保证事务的完整性。要么成功,要么撤回。

一般情况下事务要符合四个条件(ACID):

原子性(Atomicity):事务要么成功,要么撤回。不可切割性。

一致性(Consistency):事务开始前和结束后,要保证数据的一致性。转账前账号A和账号B的钱的总数为10000,转账后账号A和账号B的前的总数应该还是10000;

隔离性(Isolation):当涉及到多用户操作同一张表时,数据库会为每一个用户开启一个事务。那么当其中一个事务正在进行时,其他事务应该处于等待状态。保证事务之间不会受影响。

持久性(Durability):当一个事务被提交后,我们要保证数据库里的数据是永久改变的。即使数据库崩溃了,我们也要保证事务的完整性。

commit    提交

rollback    撤回,回滚。

savepoint    保存点

事务:只有DML操作会触发一个事务。存储引擎(ENGINE):就是指表类型.当存储引擎为innodb时,才支持事务。有一个默认的存储引擎为Myisam。不支持事务。

事务的验证:

第一步:start transaction

第二步:savepoint 保存点名称。

第三步:DML

第四步:commit/rollback;

4、数据查询语言(DQL)

:Data Query Language

(1)select/for 基本查询语句

格式: select子句  from子句     selectcolName[,colName.......]  fromtableName;

(2)给列起别名

格式:select列名1 as"要起的名"  [, 列名2 as"要起的名" ,... ]  from tableName;

(3)where子句

作用:在增删改查时,起到条件限制的作用。

多条件写法:in| not in (集合元素,使用逗号分开);    注意:同一个字段有多个值的情况下使用。 in 相当于 or, not in  相当于  and

all| any与集合连用,此时集合中的元素不能是固定的必须是从表中查询到的数据。

范围查询:colName betweenval1 andval2;   查询指定列名下的val1到val2范围中的数据

模糊查询:like

通配符:%  表示0或0个以上字符。_  表示匹配一个字符

格式:   colName likevalue;

练习

--创建表

create table emp (

empno int(5),

ename VARCHAR(10),

job VARCHAR(9),

mgr int(4),

hiredate DATE,

sal int(7),

comm int(7),

deptno int(2)

);

--添加数据

insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values

(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),

(7499 ,'ALLEN' , 'SALESMAN' , 7698 , '1981-2-10' , 1600 , 300 , 30),

(7521 ,'WARD', 'SALESMAN' , 7698, '1981-2-22' , 1250 , 500 , 30),

(7566 ,'JONES','MANAGER' , 7839, '1981-4-2' , 2975 , NULL , 20),

(7654 ,'MARTIN','SALESMAN' , 7698, '1981-9-28', 1250 , 1400 , 30),

(7698 ,'BLAKE','MANAGER' , 7839 , '1981-5-1' , 2850 , NULL , 30),

(7782 ,'CLARK','MANAGER' , 7839 , '1981-6-9' , 2450 , NULL , 10),

(7788 ,'SCOTT','ANALYST' , 7566, '1987-4-19', 3000 , NULL , 20),

(7839 ,'KING','PRESIDENT' ,NULL, '1981-11-17', 5000 , NULL , 10),

(7844 ,'TURNER','SALESMAN' , 7698, '1981-9-8', 1500 , 0 , 30),

(7876 ,'ADAMS','CLERK' , 7788 , '1987-5-23', 1100, NULL , 20),

(7900 ,'JAMES','CLERK' , 7698 , '1981-12-3', 950 , NULL , 30),

(7902 ,'FORD','ANALYST' , 7566 , '1981-12-3' , 3000 , NULL , 20),

(7934 ,'MILLER','CLERK', 7782 , '1982-1-23', 1300 , NULL , 10),

(8002 ,'IRONMAN','MANAGER', 7839 , '1981-6-9', 1600, NULL , 10),

(8003 ,'SUPERMAN','MANAGER', 7839 , '1981-6-9', 1600 , NULL , NULL);

1、查询

--查询员工表emp中的 员工姓名,员工职位,员工入职日期和员工所在部门。

select ename,job,hiredate,deptno from emp;

--==============================================================

2、给列起别名

--查询员工姓名和员工职位。分别起别名,姓名和职位。

select ename as "姓名" ,job as "职位" from emp;

--==============================================================

3、where子句

--查询员工表中部门号为10和20的员工的编号,姓名,职位,工资

select empno,ename,job,sal from emp where deptno=10 or deptno =20;

--查询员工表中部门号不是10和20的员工的所有信息。

select * from emp where deptno<>10 and deptno<>20;

使用in ,not in修改上面的练习

select empno,ename,job,sal from emp where deptno in(10,20);

select * from emp where deptno not in (10,20);

all|any与集合连用:

--查询员工allen,blake,clark三个人的工资

select * from emp where sal>all(select sal from emp where ename in ('allen','blake','clark'));

范围查询:

--查询工资大于等于1500并且小于等于2500的员工的所有信息。

select * from emp where sal between 1500 and 2500;

--练习2:查询工资小于2000和工资大于2500的所有员工信息。

select * from emp where sal not between 2000 and 2500;

模糊查询:like

--查询员工姓名中有a和s的员工信息。

select ename,job,sal,comm,deptno from emp where ename like '%a%' and ename like '%s%';

select ename,job,sal,comm,deptno from emp where ename like '%a%s%' or ename like '%s%a%';

(4)order by子句(排序)

当在查询表中数据时,记录比较多,有可能需要进行排序,此时我们可以使用order by子句。

语法:select...fromtableName [where子句][order by 子句]

注意: 可以通过一个或多个字段排序。

格式:  order by colName [ ASC| DESC][ , colName1....[ ASC| DESC] ];

排序规则:  ASC:升序 ,DESC:降序,默认是升序排序。

(5)distinct 去重

有的时候我们需要对重复的记录进行去重操作,比如,查询表中有哪些职位,此时,一种职位只需要显示一条记录就够。

位置:必须写在select关键字后。

(6)group by子句(分组查询)

分组查询与分组函数(聚合函数):有的时候,我们可能需要查询表中的记录总数,或者查询表中每个部门的总工资,平均工资,总人数。这种情况需要对表中的数据进行分组统计。需要group by子句。

位置:select...fromtName [where条件] [group by子句] [order by子句]

用法:group by Field1[,Field2]。

注意:在分组查询时,select子句中的字段,除了聚合函数外,只能写分组字段。

聚合函数:

count(Filed)统计指定字段的记录数。

sum(Filed)统计指定字段的和。

avg(Filed)统计指定字段的平均值

max(Filed)返回指定字段中的最大值。

min(Filed)返回指定字段中的最小值。

PS:聚合函数会忽略null值。因此有时候需要使用函数:ifnull(field,value)(如果field字段对应的值不是null,就使用field的值,如果是null,就使用value.)

注意:多字段分组时(多表联合查询时不加任何条件),最多分组的数目为Filed1*Field2[*Filed3....]

(7)having子句(分组查询添加条件)

在分组查询时,有的时候可能需要再次使用条件进行过滤,这个时候不能where子句,应该使用having子句。having子句后可以使用聚合函数。

位置:位于group by子句后

(8)基本查询总结

一个基本的查询语句包含的子句有:select子句,from子句,where子句,group by子句,having子句,order by子句

一个完整的查询语句:select..from..[where..][group by..][having..][order by..]

执行顺序:先执行from子句,再执行where子句,然后group by子句,再次having子句,之后select子句,最后order by子句

(9)关联查询

概念:当在查询时,我们所需要的数据不在一张表中,可能在两张表或多张表中。此时我们需要同时操作这些表。即关联查询。

等值连接:在做多张表查询时,这些表中应该存在着有关联的两个字段。我们使用某一张表中的一条记录与另外一张表通过相关联的两个字段进行匹配,组合成一条记录。

笛卡尔积:在做多张表查询时,我们使用某一张表中的每一条记录都与另外一张表的所有记录进行组合。比如表A有x条,表B有y条,最终组合数为x*y,这个值就是笛卡尔积,通常没有意义。

内连接:只要使用了join on。就是内连接。查询效果与等值连接一样。

用法:表A [inner] join表B  on关联条件

外连接:在做多张表查询时,我们所需要的数据,除了满足关联条件的数据外,还有不满足关联条件的数据。此时需要使用外连接。

驱动表(主表):除了显示满足条件的数据,还需要显示不满足条件的数据的表

从表(副表):只显示满足关联条件的数据的表

外连接分为三种

左外连接:表A left[outer] join表B  on关联条件,表A是驱动表,表B是从表

右外连接:表A right[outer] join表B  on关联条件,表B是驱动表,表A是从表

全外连接:表A  full[outer] join表B on关联条件,两张表的数据不管满不满足条件,都做显示。

自连接:在多张表进行关联查询时,这些表的表名是同一个。即自连接。

(10)高级关联查询

有的时候,我们要查询的数据, 一个简单的查询语句满足不了,并且我们使用的数据,在表中不能直观体现出来。而是需要预先经过一次查询才会有所体现。那么先执行的查询,我们称之子查询。子查询嵌入到的查询语句称之为父查询。

子查询返回的数据特点:

(1) 可能是单行单列的数据。

(2) 可能是多行单列的数据

(3) 可能是单行多列的数据

(4) 可能是多行多列的数据

1)子查询可以在where、from、having、select字句中,在select子句中时相当于外连接的另外一种写法。

--查询表中各部门人员中大于部门平均工资的人

select ename,sal,a.deptno ,b.av

from emp a,

(select deptno,avg(ifnull(sal,0)) as av from emp group by deptno) b

where a.deptno=b.deptno and a.sal>b.av

order by deptno ASC;

5、数据控制语言(DCL)

Data Control Language

作用是用来创建用户,给用户授权,撤销权限,删除用户。+

格式:

1、创建用户:create user username@ip identified by newPwd;

2、显示用户的权限:show grants for username@ip;

3、授权:grant 权限1,权限2... on 数据库名.* to username@ip;

DML权限:insert,delete,update

DQL权限:select

DDL权限:create,alter,drop...

4、撤销权限:revoke 权限1,权限2..on 数据库名.* from username@ip;

5、删除用户:drop user username;

使权限立即生效:flush privileges;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言的具体应用。 第1章 SQL语言的概述 1.1 认识SQL语言 1.1.1 什么是SQL语言 1.1.2 SQL的历史与发展 1.1.3 SQL的功能和优点 1.2 认识数据库 1.2.1 什么是数据库 1.2.2 数据库系统的结构 1.2.3 数据库系统的工作流程 1.2.4 常见的SQL数据库管理系统 1.3 数据模型 1.3.1 关系数据库模型 1.3.2 数据模型的构成 1.3.3 常见的数据模型 1.4 关系型数据库 1.4.1 关系型数据库的定义 1.4.2 关系型数据库与表 1.4.3 主键与外键 1.4.4 字段约束 1.4.5 数据的完整性 1.4.6 关系数据库设计原则 1.5 SQL开发环境 1.5.1 SQL环境介绍 1.5.2 SQL的层次结构 1.5.3 SQL环境的对象 1.5.4 SQL环境的程序系统 1.6 SQL语句基础 1.6.1 SQL常量 1.6.2 SQL表达式 1.6.3 SQL数据类型 1.6.4 注释符 1.6.5 批处理 1.6.6 SQL语句的执行 1.7 SQL语法知识 1.7.1 SQL语法结构 1.7.2 常用的SQL语句 1.8 小结第2章 设计数据库 2.1 设计数据库基础 2.1.1 数据库设计定义 2.1.2 设计数据库的意义 2.1.3 进行数据库设计的方法 2.2 数据实体和联系 2.2.1 实体、属性与联系 2.2.2 一对一联系 2.2.3 一对多联系 2.2.4 多对多联系 2.3 规范化准则 2.3.1 范式 2.3.2 第一范式 2.3.3 第二范式 2.3.4 第三范式 2.3.5 第四范式 2.4.小结第2篇 数据库管理篇第3章 数据库的相关操作 3.1 创建数据库 3.1.1 SQL标准创建数据库的语法 3.1.2 使用SQL语句创建数据库 3.2 删除数据库 3.2.1 SQL标准删除数据库的语法 3.2.2 使用SQL语句删除数据库 3.3 修改数据库 3.3.1 修改数据库语法 3.3.2 使用SQL语句修改数据库 3.4 管理数据库 3.4.1 扩充与压缩数据库 3.4.2 导入与导出数据 3.4.3 数据库的备份与恢复 3.4.4 使用sp_helpdb查看数据库信息 3.5 小结第4章 数据表的相关操作 4.1 SQL的数据表 4.1.1 数据表的结构 4.1.2 数据表的种类 4.2 创建数据表 4.2.1 创建数据表的语句结构 4.2.2 创建基本表 4.2.3 非空约束 4.2.4 DEFAULT指定缺省值 4.3 修改数据表 4.3.1 修改数据表的语句结构 4.3.2 给数据表增添新列 4.3.3 修改数据表的列 4.3.4 删除数据表的列 4.4 数据表的删除 4.4.1 删除数据表的语句结构 4.4.2 使用SQL语句删除数据表 4.5 数据表的重命名 4.5.1 重命名数据表的语句 4.5.2 使用SQL语句重命名数据表 4.6 小结第5章 索引与视图 5.1 索引的基础知识 5.1.1 索引的概念 5.1.2 索引的类型 5.1.3 索引的结构 5.2 创建索引 5.2.1 创建索引的语句结构 20.3.3 子查询的实现 20.3.4 复合查询的实现 20.4 运算符与表达式的应用 20.4.1 连接数据表的实现 20.4.2 算术运算符的应用 20.4.3 表达式的应用 20.5 数据维护与触发器的应用 20.5.1 添加数据的实现 20.5.2 更新数据的实现 20.5.3 删除数据的实现 20.5.4 在VB.NET应用触发器20.6 小结第21章 VB 6.0与SQL Server的开发与应用 21.1 VB 6.0开发环境 21.1.1 VB 6.0介绍 21.1.2 VB 6.0的版本 21.1.3 VB 6.0开发环境 21.2 VB 6.0连接数据库 21.2.1 VB 6.0数据库控件介绍 21.2.2 数据库连接举例 21.3 数据查询应用 21.3.1 普通数据查询的实现 21.3.2 连接查询的实现 21.3.3 子查询的实现 21.3.4 复合查询的实现 21.4 运算符与表达式的应用 21.4.1 连接数据表的实现 21.4.2 算术运算符的应用 21.4.3 表达式的应用 21.5 数据维护操作的应用 21.5.1 添加数据的实现 21.5.2 更新数据的实现 21.5.3 删除数据的实现 21.6 触发器与存储过程的应用 21.6.1在VB 6.0应用触发器 21.6.2在VB 6.0应用存储过程 21.7 小结第22章 VC++6.0与SQL Server的开发与应用 22.1 VC++6.0开发环境 22.1.1 VC++6.0介绍 22.1.2 MFC编程 22.1.3 VC++6.0开发环境 22.2 VC++6.0连接数据库 22.2.1 ADO数据控件介绍 22.2.2 数据库连接举例 22.3 数据查询应用 22.3.1 普通数据查询的实现 22.3.2 连接查询的实现 22.3.3 子查询的实现 22.3.4 复合查询的实现 22.4 运算符与表达式的应用 22.4.1 连接数据表的实现 22.4.2 算术运算符的应用 22.4.3 表达式的应用 22.5 数据维护操作的应用 22.5.1 添加数据的实现 22.5.2 更新数据的实现 22.5.3 删除数据的实现 22.6 小结第23章 PHP访问 SQL Server 2005 23.1 PHP开发环境 23.1.1 PHP简介及其特点 23.1.2 PHP开发环境的安装 23.2 PHP连接SQL Server服务器 23.2.1 使用PHP的MSSQL扩展 23.2.2 PHP连接SQL Setver的必要条件 23.3 使用PHP存取SQL Server数据库 23.3.1 选择操作的数据库 23.3.2 在数据库创建表 23.3.3 删除存在的数据表 23.4 对数据库表的操作 23.4.1 向表添加记录 23.4.2 浏览表记录 23.4.3 修改已有记录 23.4.4 删除指定记录 23.5 可回复留言板的开发(PHP+SQL Server) 23.5.1 数据表的设计 23.5.2 配置文件的创建 23.5.3 创建系统运行的表 23.5.4 创建留言显示模块 23.5.5 创建留言添加模块 23.5.6 进入留言管理模块 23.5.7 创建留言修改模块 23.5.8 创建留言删除模块 23.6 小结 5.2.2 创建非簇索引 5.2.3 创建簇索引 5.2.4 创建惟一索引 5.2.5 创建复合索引 5.3 删除索引 5.3.1 删除索引的语句结构 5.3.2 使用SQL语句删除索引 5.4 视图的基础知识 5.4.1 视图概述 5.4.2 视图的优点与缺点 5.5 视图的基本操作 5.5.1 创建视图的基本语句结构 5.5.2 使用SQL语句创建视图 5.5.3 修改视图的语句结构 5.5.4 重命名视图的名称 5.5.5 使用SQL语句修改视图 5.5.6 删除视图的语句结构 5.5.7 使用SQL语句删除视图 5.6 视图的应用 5.6.1 利用视图简化表的复杂连接 5.6.2 利用视图简化复杂查询 5.7 小结第3篇 SQL查询篇第6章 简单的SELECT语句查询 6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表指定的字段 6.2.2 查询所有的字段 6.2.3 使用DISTINCT去除重复信息 6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 BETWEEN运算符范围筛选 6.4.4 使用TOP子句 6.4.5 NULL的判断 6.5 模糊查询 6.5.1 使用LIKE运算符进行查询 6.5.2 使用“_”通配符进行查询 6.5.3 使用“%”通配符进行查询 6.5.4 使用“[]”通配符进行查询 6.5.5 使用“[^]”通配符进行查询 6.6 小结第7章 运算符与表达式相关查询 7.1 逻辑运算符 7.1.1 逻辑与运算符 7.1.2 逻辑或运算符 7.1.3 逻辑运算符的组合使用 7.2 IN运算符 7.2.1 IN运算符的使用 7.2.2 NOT IN运算符的使用 7.3 NOT运算符与BETWEEN运算符 7.3.1 N0T运算符的使用 7.3.2 NOT运算符与BETWEEN运算符的组合应用 7.4 数学运算符 7.4.1 数学运算符的种类 7.4.2 数学运算符的应用 7.5 集合查询运算符 7.5.1 UNION运算符 7.5.2 INTERSECT运算符 7.6运算符的组合应用 7.6.1 逻辑运算符与IN运算符的组合应用 7.6.2 逻辑运算符与NOT运算符的组合应用 7.6.3 逻辑运算符与数学运算符的组合应用 7.6.4 逻辑运算符与集合运算符的组合应用 7.6.5 数学运算符与NOT运算符的组合应用 7.6.6 数学运算符与IN运算符的组合应用 7.6.7 数学运算符与集合运算符的组合应用 7.7 SQL的表达式 7.7.1 CAST表达式的应用 7.7.2 CASE表达式的应用 7.8 小结第8章 SQL函数 8.1 SQL函数基础 8.1.1 SQL语句函数 8.1.2 常用的SQL语句函数 8.2 日期函数和数学运算函数 8.2.1 日期时间函数 8.2.2 CONVERT函数转换日期、时间 8.2.3 数据运算函数 8.3 字符串函数 8.3.1 字符串处理函数介绍 8.3.2 字符转换函数 8.3.3 去字符串空格函数 8.3.4 取字符串长度的函数 8.3.5 查询包含部分字符串内容的数据 8.3.6 颠倒字符串的顺序 8.3.7 字符串替换 8.4 聚合函数 8.4.1 聚合函数概述 8.4.2 SUM函数运算 8.4.3 MAX函数运算 8.4.4 MIN函数运算 8.4.5 AVG函数运算 8.4.6 COUNT函数运算 8.4.7 聚合函数的组合使用 8.5 小结第9章 连接查询 9.1 多表连接 9.1.1 多表连接的优点 9.1.2 简单的两表连接 9.1.3 多表连接举例 9.1.4 UNION JOIN连接表 9.2 自连接与自然连接 9.2.1 自连接 9.2.2 自然连接 9.3 内连接 9.3.1 等值连接 9.3.2 不等值连接 9.3.3 使用内连接实现多表连接 9.3.4 在内连接使用聚合函数 9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内连接与左外连接的综合应用 9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询使用子查询 10.1.3 在子查询使用聚合函数 10.1.4 使用ANY或ALL运算符 10.1.5 使用子查询创建视图 10.2 使用IN语句的子查询 10.2.1 简单的IN语句子查询 10.2.2 使用IN子查询实现集合交运算 lO.2.3 使用IN子查询实现集合差运算 10.3 使用EXISTS语句的子查询 10.3.1 简单的EXISTS语句子查询 10.3.2 使用EXISTS子查询实现两表交集 10.3.3 使用EXISTS子查询实现两表并集 10.3.4 使用NOT EXISTS的子查询 10.4 相关子查询 10.4.1 使用IN引入相关子查询 10.4.2 使用比较运算符引入相关子查询 10.4.3 在HAVING子句使用相关子查询 10.5 UNIQUE子查询与嵌套子查询 10.5.1 UNIQUE子查询 10.5.2 嵌套子查询 10.6 小结第4篇 T-SQL开发常用操作篇第11章 数据的维护操作 11.1 数据的插入操作 11.1.1 INSERT语句的基本语法 11.1.2 插入单条记录 11.1.3 NULL的插入 11.1.4 由VALUES关键字插入多行数据 11.1.5 使用SELECT语句插入数据 11.1.6 通过视图插入数据 11.1.7 使用子查询插入数据 11.2 数据的更新操作 11.2.1 UPDATE语句的基本语法 11.2.2 使用UPDATE语句更新指定的列值 11.2.3 数据字段NULL的更改 11.2.4 更新全部数据 11.2.5 利用子查询更新数据 11.2.6 通过视图更新表数据 11.3 数据的删除操作 11.3.1 DELETE语句的语法结构 11.3.2 删除指定行的数据 11.3.3 删除所有数据 11.3.4 通过视图删除表数据 11.3.5 使用子查询删除数据 11.3.6 使用TRUNCATE TABLE语句 11.4 小结第12章 完整性控制 12.1 完整性约束概述 12.1.1 数据的完整性简介 12.1.2 完整性约束的类型 12.1.3 数据完整性的意义 12.2 约束 12.2.1 DEFAULT约束 12.2.2 CHECK约束 12.2.3 PRIMARY KEY约束 12.2.4 UNIQUE约束 12.2.5 FOREIGN KEY约束 12.2.6 NOT NULL约束 12.2.7 列约束和表约束 12.3 规则 12.3.1 创建规则 12.3.2 规则的绑定与松绑 12.4 域约束与断言 12.4.1 域与域约束 12.4.2 利用断言创建多表约束 12.5 默认值 12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程常用的流控制语句 13.2.1 IF...LSE语句 13.2.2 BEGIN...END语句 13.2.3 DECLARE语句 13.2.4 GOTO语句 13.2.5 WAITFOR语句 13.2.6 WHILE、BREAK和CONTINUE语句 13.2.7 PRINT语句 13.2.8 RETURN语句 13.2.9 注释 13.3 创建与执行存储过程 13.3.1 创建存储过程 13.3.2 创建带参数的存储过程 13.3.3 创建带0UTPUT返回,参数的存储过程 13.3.4 执行存储过程 13.4 存储过程的查看、修改和删除 13.4.1 系统存储过程 13.4.2 存储过程的查看 13.4.3 存储过程的重命名 13.4.4 修改存储过程 13.4.5 存储过程的删除 13.5 Oracle数据库的控制流语句 13.5.1 IF条件语句 13.5.2 LOOP循环语句 13.5.3 FOR循环语句 13.5.4 WHILE循环语句 13.5.5 GOTO语句 13.6 Oracle数据库的存储过程 13.6.1 0racle数据库创建存储过程 13.6.2 Oracle数据库存储过程的执行 13.7 小结第14章 触发器 14.1 触发器的基础知识 14.1.1 触发器的概念 14.1.2 触发器的种类 14.1.3 触发器的组成 14.1.4 触发器的优点 14.1.5 触发器执行环境 14.2 触发器的创建 14.2.1 创建触发器的语法结构 14.2.2 Inserted表和Deleted表 14.2.3 INSERT触发器 14.2.4 UPDATE触发器 14.2.5 DELETE触发器 14.2.6 INSTEAD OF触发器 14.2.7 嵌套触发器 14.2.8 递归触发器 14.3 查看触发器 14.3.1 使用系统存储过程sp_help查看触发器 14.3.2 使用系统存储过程sp_helptext查看触发器 14.3.3 使用系统存储过程sp_depengs查看触发器 14.4 触发器的修改及删除 14.4.1触发器的修改 14.4.2触发器的删除 14.5 Oracle数据库的触发器 14.5.1 Oracle触发器类型 14.5.2 触发器的创建 14.5.3 Oracle触发器的启用与禁用 14.5.4 0racle触发器的删除 14.6 小结第15章 游标 15.1 游标的定义 15.1.1 游标的基本概念 15.1.2 游标的分类 15.1.3 游标的作用及其应用 15.2 游标的使用 15.2.1 游标的创建 15.2.2 打开游标 15.2.3 关闭游标 15.2.4 释放游标 15.2.5 使用游标 15.2.6 检索游标 15.2.7 游标变量 15.3 游标的展使用 15.3.1 用于UJPDATE操作的可更新游标 15.3.2 用于DELETlE操作的可更新游标 15.3.3 可更新游标的综合操作 15.3.4 使用@@CURSOR_ROWS全局变量确定游标的行数 15.3.5 使用@@FETCh_STATJS全局变量检测FETCH操作的状态 15.3.6 使用系统过程管理游标 15.4 Oracle游标的使用 15.4.1 显式游标与隐式游标 15.4.2 游标属性 15.4.3 参数化游标 15.4.4 游标的循环 15.5 小结第16章 事务控制和锁定 16.1 事务 16.1.1 事务概述 16.1.2 事务的特性 16.1.3事务的分类 16.2 事务控制 16.2.1 事务控制操作 16.2.2 开始事务 16.2.3 提交事务 16.2.4 回滚事务 16.2.5 设置事务保存点 16.2.6 终止事务 16.3 并发控制 16.3.1 并发操作的问题 16.3.2 事务隔离级别 16.4 锁定 16.4.1 锁的作用及含义 16.4.2 锁的类型 16.4.3 SQL Server表级锁的使用 16.4.4 设置隔离级别实现并发控制 16.4.5 死锁及其处理 16.5 小结第17章 SQL安全 17.1 SQL安全概述 17.1.1 SQL安全的重要性 17.1.2 SQL安全的对象和权限 17.2 用户管理 17.2.1 创建SQL用户 17.2.2 删除SQL用户 17.3 角色管理 17.3.1 角色的优点 17.3.2 创建角色 17.3.3 删除角色 17.3.4 授予角色 17.3.5 取消角色 17.4 权限管理 17.4.1 授予权限 17.4.2 撤销权限 17.4.3 查询权限控制 17.4.4 插入操作权限控制 17.4.5 删除操作权限控制 17.4.6 更新操作权限控制 17.5 SQL Server的安全管理 17.5.1 SQL Server的用户管理 l7.5.2 SQL Server的角色管理 l7.5.3 SQL Server的权限管理 17.6 Oracle的安全管理 17.6.1 Oracle的用户管理 17.6.2 Oracle的权限管理 17.7小结第18章 嵌入式SQL 18.1 SQL的调用 18.1.1 直接调用SQL 18.1.2 SQL调用层接口(CLI) 18.2 嵌入式SQL的使用 18.2.1 嵌入式SQL 18.2.2 SQL通信区 18.2.3 主变量 18.2.4 在嵌入式SQL使用SQL语句 18.2.5 在嵌入式SQL使用游标 18.3 嵌入式SQLSQL Server应用 18.3.1 嵌入式SQL代码 18.3.2 预编译文件 18.3.3 设置连接VC++6.O 18.3.4 编译运行程序 18.4 小结第6篇 T-SQL结合流行语言进行开发篇第19章 C#与SQL Server的开发与应用 19.1 C#开发环境 19.1.1 C#介绍 19.1.2 C#开发环境 19.2 C#连接数据库 19.2.1 C#数据库控件介绍 19.2.2 数据库连接举例 19.3 数据查询应用 19.3.1 普通数据查询的实现 19.3.2 连接查询的实现 19.3.3 子查询的实现 19.3.4 复合查询的实现 19.4 运算符与表达式的应用 19.4.1 连接数据表的实现 19.4.2 算术运算符的应用 19.4.3 表达式的应用 19.5 数据维护操作的应用 19.5.1 添加数据的实现 19.5.2 更新数据的实现 19.5.3 删除数据的实现 19.6 触发器与存储过程的应用 19.6.1 在C#应用触发器 19.6.2 在C#应用存储过程的示例 19.7 小结第20章 VB.NET与SQL Server的开发与应用 20.1 VB.NET介绍 20.1.1 了解VB.NET 20.1.2 VB.NET的新特点 20.2 VB.NET连接数据库 20.2.1 通过数据控件绑定连接数据库 20.2.2 通过数据对象直接连接数据库 20.3 数据查询应用 20.3.1 普通数据查询的实现 20.3.2 连接查询的实现隐藏全部目录>>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值