一、SQL插入数据及应用
1、INSERT INTO 语句用于向表格中插入新的行。
2、INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
3、INSERT 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更新数据及应用
1、Update 语句用于修改表中的数据。
语法:
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.4、top关键字:可以限制查询结果显示的行数 例如
Use stu
Select top 3* from student
1.5、where条件查询
一个表通常会有成千上万条记录,用户感兴趣的可能只是其中的一部分记录,这时需要使用where子句指定一系列的查询条件,例子在以下的in关键字中等都有体现
1.6、in关键字:当测试一个数据值是否匹配一组目标值时,通常使用
In关键字来指定列表搜索条件
Use stu
Select * from course
Where s_id in(004,005,006)
1.7、like关键字 通配符%
例如,在student表中,查找姓“刘”的学生信息
Use stu
Select * from student where s_name like ‘刘%’
1.8、Order 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 sum(A)C”就会出现问题,因为c不在group子句的字段列表中
B、select子句的字段列表中不一定要有聚合函数,但至少要用到group by子句列表字段中的一个项目,如group by A,B前出现select A则是可以的
C、group by子句不能使用字段别名
例子:
Use stu select s_sex,s_name
From student
Group by s_sex
2、对分组结果进行统计
聚合函数:sum()和,avg()平均值,min()最小值max()最大值 count(*)统计全部记录个数
例子:
Sum()
Use stu
select sum(s_grade)
From stucourse
avg()
Use stu
select avg(s_grade)
From stucourse
Min()
Use stu
Select min(s_grade)
From stucourse
Max()
Use stu
select max(s_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、嵌套查询
在course和stucourse表中,查询课程成绩为94分的课程信息
Use stu
Select * from course
Where cs_id=(select cs_id from stucourse where sc_grade=94)
2、合并查询
A、unoin和union all
把系部表中的系部代码和系部名称与班级表中的班级代码和班级名称合并
Use stu
Select d_id,d_name from department
Union
Select c_id,c_name
From class
B、union 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语句,然后添加的表数据就出来了 |