黑马程序员_SQL SERVER基础知识整理

时间:2023-02-19 15:12:20

SQL SERVER基础知识整理

数据库在WEB编程中几乎占据了半壁*,可谓“位高权重”。今天我就以SQL SERVER数据库为例,简单讲解一下SQL SERVER的用法。下面我用两道题来说明SQL SERVER基础知识,让大家更为透彻的了解数据库。(都在新建查询里面手写)

第一题:
1.新建一个成绩表,包含:学号,姓名,课程名称,分数。通过Insert 插入初始化数据

//创建一个名为T_Srouce的成绩表

create  table  T_Srouce

//设置字段的数据类型和长度
(id varchar(6) primary key,name varchar(8),classname varchar(10),srouce int)
go//实例化对象
(
insert into T_Srouce(id,name,classname,srouce)values(2001,'张三','math',85)
insert into T_Srouce(id,name,classname,srouce)values(2002,'李四','math',80)
insert into T_Srouce(id,name,classname,srouce)values(2003,'王五','chinese',75)
insert into T_Srouce(id,name,classname,srouce)values(2004,'马六','math',70)
insert into T_Srouce(id,name,classname,srouce)values(2005,'赵七','chinese',95)
insert into T_Srouce(id,name,classname,srouce)values(2006,'陈春生','math',90)
insert into T_Srouce(id,name,classname,srouce)values(2007,'杨过','english',100)
insert into T_Srouce(id,name,classname,srouce)values(2008,'张亮','english',60)
)

 

2、查找>=80分并且<=90分的学生学号和分数

//SQL语句检索
select  id,srouce   from  T_Srouce  where  srouce>=80  and  srouce <=90

 

3、查找所有学生课程为“数学”的平均分

//SQL语句汇总

select AVG(srouce) from T_Srouce where classname='math'

 

4、查询所有姓“张”的学生学号

//”like通配符的使用“

select id,name from T_Srouce where name like '张%'

 

第二题:

1、设计一张员工表,包含:姓名,年龄,性别,身高,工资等字段,通过Insert初始化数据

//创建一个名为T_Personnel的表

create  table  T_Personnel

//设置字段的数据类型和长度
(name varchar(8),age int,sex char(2),height int ,salary int)
go//实例化对象
(

Insert   into   T_Personnel  (  name,age,sex,height,salary) values ('张三',20,'男',180,4000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('李四',30,'男',170,2000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('王五',34,'男',186,3000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('马六',58,'男',175,5000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('赵七',40,'男',165,6000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('龙八',43,'男',178,7000)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('刘德华',60,'男',190,2800)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('李世明',29,'男',150,3200)

insert  into   T_Personnel  ( name,age,sex,height,salary) values  ('李传胜',53,'男',140,4100)

)


2、查询姓“李”的员工个数

//SQL语句汇总及通配符的使用

select COUNT(*)  from T_Personnel  where  name like ‘李%’


3、查询工资高于5000的员工,并按照年龄从低到高排列

//使用”order  by“排序

select * from T_Personnel where salary>5000 order by age

 


4、将所有工资低于3000的员工增加200元,工资>=3000,<=5000的增加100元

select name,age,sex,height,salary+200 from T_Personnel  
where salary not exists(select salary+100 from Personnel where salary between 3000 and 5000)

 

总结:

一、新增数据:Inert into Table(n1,n2...)values(data1,data2...)

二、更新数据: update Table set n1=value,n2=value2 where ...


 1、更新一个列:update T_Person set age=30
 2、更新多个列:update T_Person set age=30,name=‘yzk’


三、删除数据:delete [from] Table where n1=data
1、删除表中全部数据:delete from T_Person。
2、delete只是删除数据,表还在,和Drop Table不同。
3、delete 也可以带where子句来删除一部分数据:delete from T_Person where age > 20


四、数据检索: select n1,n2[*] from Table where ...
1、执行备注中的代码创建测试数据表。
2、简单的数据检索 :select * from T_Personnel
3、只检索需要的列 :select id from T_Personnel、select name,age from T_Personnel
4、列别名:select id as 编号,name as 姓名,age as age111 from T_Personnel
 5、使用where检索符合条件的数据:select name from T_Personnel  where salary<5000。


五、数据汇总(聚合函数)

1、SQL聚合函数:MAX(最大值)、MIN(最小值)、AVG (平均值)、SUM (和)、COUNT(数量)
2、大于25岁的员工的最高工资 :
      select MAX(salary) from T_Personnel where age>25 
 3、最低工资和最高工资: 
      select MIN(salary),MAX(salary) from  T_Personnel

六、数据排序:

1、order by子句位于select语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。 
2、按照年龄升序排序所有员工信息的列表:
    select * from  T_Personnel order by age ASC
 3、按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序 :select * from  T_Personnel order by age                   DESC,salary DESC(多个排序条件)
4、order by子句要放到where子句之后 :select * from T_Personnel where age>23 order by age DESC,salary     DESC 

七、通配符过滤:

1、通配符过滤关键字使用like 。
 2、单字符串为”_“,多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。 “李%”匹配以“李”开头、任意长度的字符串。

 

 

总结的不好,还望谅解!欢迎大家批评指正。