sql教案_sql数据库教案

教案模板 时间:2020-02-29 00:52:21 收藏本文下载本文
【www.daodoc.com - 教案模板】

sql教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sql数据库教案”。

SQL2005教案(40课时)第一节课

sql2005的安装,数据库和表的创建以及基本概念

1.图示说明

2.基本概念

数据库(DB,Database):数据库是长期储存在计算机内,有组织,可共享的大量数据的集合.数据(Data):数据是数据库中存储的基本对象,它是描述事物的符号记录.数据是信息的载体,信息是数据反映出的一种关系.数据库管理系统(DBMS,Database Management System):是数据库的机构,是一种软件,负责数据库中的数据组织,数据操作,数据维护,控制及保护和数据服务等.数据库系统(DBS):包含数据,数据库,数据库管理系统,数据管理员等.3.数据库系统的发展

人工管理阶段

文件系统阶段

数据库系统阶段

4.SQL2005的版本及常用数据库

SQL2005版本:

* SQL Server Enterprise Edition:具有企业级功能的SQL Server版本,适用于

大型企业以及大型数据库或数据仓库的服务器版本。

* SQL Server Standard Edition:具有标准功能的SQL Server版本,适用于一般企业的服务器版本。

* SQL Server Workgroup Edition:自SQL Server 2000开始才有的版本,专为工作组群或部门所设计,适用于较小规模的组织。

* SQL Server Web Edition:自SQL Server 2008开始才有的版本,专为Web 服务器与Web Hosting所设计,功能上较Workgroup Edition少一些。

* SQL Server Expre Edition:免费的SQL Server版本,适用于小型应用程序或是单机型应用程序,但在功能上有设限,如只能使用一颗处理器,以及最大数据库大小为4GB等。请见SQL Server Expre。

目前常用数据库:

开源公司的mysql

微软的mql我们也经常说是SQL SERVER

oracle公司的oracle

SYBASE的powerbuilder

IBM的DB2

BORLAND公司的产品interbase,美国Informix软件公司的Informix

数据库,表的创建

1.创建数据库goods 2.创建3个表

Users表(用户表)

Ware表(商品信息表)

Shopping表(商品销售表)

3.基本概念: 表、行、列、属性、字段、域、实体.4.数据库重命名,表结构的修改.5.SQL(Structured Query Language-结构化查询语言):是由IBM公司在70年代开发的关系型数据库原型System R的一部分,现在已成为关系型数据库系统通用的查询语言,它是数据库系统的通用语言.SQL语言主要包括数据定义,数据控制,数据操纵和数据查询等功能,其中最重要的是数据查询功能.6.数据定义语言DDL(Data Definition Language)创建数据库

create database goods

选择数据库

use goods 创建表

create table users(User_ID int, User_Name nvarchar(50), Email nvarchar(50), Card nvarchar(50), Tell nvarchar(50), Addre nvarchar(50))修改表

--添加一列

alter table users add remark varchar(50)--修改一列的数据类型

alter table users alter column remark varchar--删除一列

alter table users drop column remark 删除表

drop table Users 删除数据库(注意确定一下当前正在使用的数据库)drop database t

第二节课

数据处理语句DML(Data Manipulation Language)1.插入数据

insert into users(user_id,user_name,user_age,email,card,tell, addre)values(1234,'jodon',35,'jodon123@sina.com','1234567890','138888888','美国')注意:

(1)必须用逗号将各个数据分开,字符型数据要用单引号括起来,且into可以省略。(2)INTO子句中没有指定列名,则新插入的记录必须在每个属性列上均有值,且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。

(3)将VALUES子句中的值按照INTO子句中指定列名的顺序插入到表中。

(4)对于INTO子句中没有出现的列,则新插入的记录在这些列上将取空值(remark).(5)当插入的数据包含了每一个列,则可以省略列名.如下: Insert into users values(1234,'jodon',35,'jodon123@sina.com','1234567890', '138888888','美国')

2.修改记录

update users set user_age=20 update users set user_age=26 where user_id=1234 update users set user_age=user_age+5

3.删除记录

delete

from users where user_id=4321

delete

from users 4.主键约束

create table users(User_ID int primary key, User_Name nvarchar(50), Email nvarchar(50), Card nvarchar(50), Tell nvarchar(50), Addre nvarchar(50))

5.上机练习

练习课堂内容

建立学生数据库student,并建立四张表:学生基本信息表,课程设置表,选课表,成绩表,并练习所学的SQL语句

第三节课

简单查询语句

1.查询users表中所有记录的所有字段

select *--也可以把所有的列都写上

from users 注释补充:--注释一行 /*……*/注释一段

2.查询所有记录的姓名和年龄

select user_name,user_age from users 别名补充: select user_name as 姓名,user_age as 年龄

from users--其中as可以省略

3.查询年龄超过20的所有记录

select * from users where user_age>20-->=!= =

4.查询年龄在20和50之间的记录

select * from users where user_age>=20 and user_ageselect * from users where user_age between 20 and 50

5.查询年龄大于30或年龄小于20的记录

select * from users where user_age 30 6.查询年龄不等于30的记录

select * from users where user_age 30--!= select * from users where not user_age =30

7.查询年龄不等于20也不等于30的记录 select * from users where user_age!=30 and user_age20

select * from users where not(user_age =30 or user_age=20)

8.查询年龄等于20或者等于30的记录 select * from users where user_age =30 or user_age=20 select * from users where user_age in(20,30)上面7也可以用下面方式实现

select * from users where user_age not in(20,30)—not 也可以放在user_age之前

9.查询users表中有多少条不同的记录

select distinct * from users 10.查询users表中都有哪些年龄的记录

select distinct user_age from users 模糊查询(通配符’_’,’%’)

11.查询所有姓姚且名字为两个字的记录

select * from users where user_name like '姚_'

12.查询所有姓姚的记录

select * from users where user_name like '姚%'

13.查找第二个字为“小”的所有记录

select * from users where user_name like '%小%'

14.查询所有不姓姚的记录

select * from users where user_name like '[^姚]%'

15.查询所有姓姚或姓王的记录

select * from users where user_name like '[姚,王]%'

16.查询所有姓姚且第二个字不为大或小的记录

select * from users where user_name like '姚[^大,小]%' 17.查询姓名不为空的记录 select * from users where user_name is not null 上机练习:

1〉 练习课堂所讲内容

2〉2人一组以student数据库为例互相设计题

第四节课

1.修改users表,添加新列users_sex(性别)

alter table users add user_sex nchar(10)

2.查询出前两条记录

select top 2 * from users

3.查询users表中的所有记录,并按年龄降序或升序排列

select * from users order by user_age asc—asc可以省略不写,默认即为asc

select * from users order by user_age desc

4.查询所有记录,并按年龄升序排列,年龄相同按card降序排列

select * from users order by user_age asc , card desc

5.查询users表中男女各多少人

select count(*)from users group by user_sex

注意:使用分组的时候,查询的列必须出现在聚合函数中或者必须出现在group by 后面,下面的写法是错误的: select user_name,user_sex from users group by user_sex

6.查询users表中男女各多少人,且只有当人数超过3人才输出信息

select count(*)from users group by user_sex having count(*)>3

7.查询users表中最大的年龄是多少

select max(user_age)from users 8.查询users表中最小的年龄是多少

select min(user_age)from users 9.求users表中所有人年龄的总和

select sum(user_age)from users 10.求users表中所有人的平均年龄

select avg(user_age)from users

连接查询

1.笛卡尔积

select * from ware,shopping

2.等值连接

select * from ware,shopping where ware_code=code

select * from ware join shopping on ware_code=code 3.不等值连接

select * where ware_codecode from ware,shopping

select * from ware join shopping on ware_codecode

4.查询所有已销售商品的名称,进价,销售价,销售数量和日期

select name,startprice,saleprice,shopping.amount,shopping.date from ware join shopping on ware_code=code

注意:当连接的表中出现相同列名时,必须加表名来区分

5.查询所有已销售商品的名称,进价,销售价,销售数量和盈利额

select name,startprice,saleprice,shopping.amount, shopping.amount*(saleprice-startprice)盈利 from ware join shopping on ware_code=code

6.查询所有已销售商品且盈利的名称,进价,销售价,销售数量和盈利额 select name,startprice,saleprice,shopping.amount, shopping.amount*(saleprice-startprice)as 盈利 from ware join shopping on ware_code=code where saleprice-startprice>0 7.自然连接(特殊的等值连接,去掉了重复的列)

select ware.*,shopping.amount,shopping.saleprice,shopping.date from ware inner join shopping on ware_code=code 补充:inner join 也叫内连接,inner也可以省略不写,即默认为内连接

第五节课

外连接

1.左外连接

select * from ware left join shopping on ware_code=code

2.右外连接

select * from ware right join shopping on ware_code=code

3.全外连接

select * from ware full join shopping on ware_code=code

4.自连接

查找年龄比姚明的所有记录

select a.* from users as a,users as b where a.user_age查找年龄不比姚明大的所有记录

错误写法: select a.* from users as a,users as b where a.user_ageb.user_name and a.user_age

select * from ware cro join shopping 说明:其实就是笛卡儿积

6.集合查询

并(union)select ware_code,date from ware union select code,date from shopping--注意:所查询的目标列必须相同

交(intersect)select ware_code from ware intersect select code from shopping 差(minus)—说明:SQL2005不支持minus运算,oracle支持

第六节课

复习

以student数据库为例复习前面所讲内容

第七节课

子查询

1.第八节课 第九节课

第十节课 第十一节课

第十二节课 第十三节课

第十四节课 第十五节课

第十六节课 第十七节课

第十八节课 第十九节课

第二十节课

下载sql教案word格式文档
下载sql教案.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文