---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

黑马程序员—SQLServer数据操作笔记

Posted on 2012-12-04 10:47  xiulan  阅读(241)  评论(1)    收藏  举报

 

一、SQL插入数据及应用

1INSERT INTO 语句用于向表格中插入新的行。

2INSERT INTO 表名称 VALUES (1, 2,....)

我们也可以指定所要插入数据的列:

3INSERT INTO table_name (1, 2,...) VALUES (1, 2,....)

insert into stu (id,name,age) values (newid(),'tom',18)

 

insert into stu(id,name,age) values(newid(),'to',19)

注意:如果guid类型主键的默认值为newid()就会自动生成

 

 

(1)、将下列信息添加到读者表的代码;

--     借书证号    姓名   性别   出生年月      专业      读者类型

--     101101     王林   男     1990-12-01   计算机       01

      INSERT INTO 读者表

         (借书证号,姓名,性别,出生年月,专业,读者类型)

      VALUES

         ('101101','王林','男','1990-12-01','计算机','01')

 

 

 

二、SQL更新数据及应用

1Update 语句用于修改表中的数据。

语法:

 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

2)、修改 借书证号为101102的读者性别为:男,

--         出生年月为:1989-08-02;

      UPDATE 读者表 SET 性别='男',出生年月='1989-08-02'

           WHERE 借书证号='101102'

三、SQL删除数据及应用

DELETE 语句用于删除表中的行。

语法

 DELETE FROM 表名称 WHERE 列名称 =

(5)、删除 借书证号为101102的读者信息;

      DELETE 读者表 WHERE 借书证号='101102'

 

四、SQL查询及应用

一、单表查询:简单查询、对查询结果进行分组统计

1、简单查询

1.1、选择所有字段:

use 数据库名称

select * from 数据表名 

例如

use  stu 

select * from  student

1.2

选择部分字段:use  数据库名称 select  字段1,字段2,字段3 from  数据表名 

例如:  use   stu 

Select 学号,姓名,性别  from  student

1.3、不显示重复记录

Distinct关键字就是用来从查询的结果集中去掉重复的记录。例如

student表中,显示没有重复记录的姓名(s_name)字段的信息

Use stu 

Select  distinct s_name form student

1.4top关键字:可以限制查询结果显示的行数  例如

Use  stu

Select  top 3* from  student

1.5where条件查询

一个表通常会有成千上万条记录,用户感兴趣的可能只是其中的一部分记录,这时需要使用where子句指定一系列的查询条件,例子在以下的in关键字中等都有体现

1.6in关键字:当测试一个数据值是否匹配一组目标值时,通常使用

In关键字来指定列表搜索条件

Use  stu

Select   * from  course

Where   s_id in(004005,006)

1.7like关键字通配符%

例如,student表中,查找姓的学生信息

Use  stu

Select * from student  where  s_name like ‘%’

1.8Order by排序

A、只是一个字段的排序:

Use  stu

Select  *from student

Order by  s_num desc

B、有两个字段的排序

Use stu

Select  * from  student 

Order by  s_classid  asc, s_sex

Desc  降序排列

Asc   升序排列

 

 

1.8group by分组查询

A、在select子句的字段列表中,除了聚合函数外,其他所出现的字段一定要让group子句中有定义才行,例如group by A,B前出现“select sumAC”就会出现问题,因为c不在group子句的字段列表中

Bselect子句的字段列表中不一定要有聚合函数,但至少要用到group by子句列表字段中的一个项目,如group by AB前出现select A则是可以的

Cgroup by子句不能使用字段别名

例子:

Use stu select s_sex,s_name

From student

Group by s_sex

2、对分组结果进行统计

聚合函数:sum()和,avg()平均值,min()最小值max()最大值 count*)统计全部记录个数

例子:

Sum()

Use stu 

select sums_grade

From stucourse

avg()

Use stu 

select  avgs_grade

From stucourse

Min()

Use stu 

Select mins_grade

From stucourse

Max()

Use stu 

select maxs_grade

From stucourse

Count(*)

Use stu

Select count(*)

From student

注意:having SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

例子:

stucourse表中,查询选修了两门课以上的学生学号

Use stu select

S_num from stucourse

Group by s_num

Having count(*)>2

 

二、多表查询

1、嵌套查询

coursestucourse表中,查询课程成绩为94分的课程信息

Use stu

Select * from course

Where cs_id=(select  cs_id from stucourse where sc_grade=94)

2、合并查询

Aunoinunion all

把系部表中的系部代码和系部名称与班级表中的班级代码和班级名称合并

 

Use stu

Select d_id,d_name from department

Union

Select c_id,c_name

From class

Bunion all

 

Use stu

Select d_id,d_name from department

Union all

Select c_id,c_name

From class

 

注意:union不加关键字all功能是它不删除重复行也不对行进行自动排序

 

小知识点:1、用as关键字给列名起别名

   2在对表做添加数据的修改中,若这个表正打开,而更新后还没有显示的时候就在此表中,点击右键,的执行sql语句,然后添加的表数据就出来了

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima/