每日教学SQL部分基本语法_sql基础教学篇

2020-02-27 其他范文 下载本文

每日教学SQL部分基本语法由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sql基础教学篇”。

1、SQL学习记录

1.1、第一讲

基本SQL语句select语法

select [查找内容] from [表] where [表字段]=[值] order by [字段]

例:

数据库表结构如下: 人员表

ID

姓名

年龄 1

张三2

李四

要查找张三

select * from 人员表 where 姓名='张三'

查找年龄大于15岁的select * from 人员表 where 年龄>15

若要将查询结果按照年龄升序排列

select * from 人员表 where 年龄>15 order by 年龄 asc 降序

select * from 人员表 where 年龄>15 order by 年龄 desc

若只要数据表中的姓名字段 则

select 姓名 from 人员表 where 年龄>15 order by 年龄 asc

1.2、第二讲

基本SQL语句insert语法

insert into [表名](字段1,字段2,字段3,…)values(值1, 值2, 值3,…)

例:

数据库表结构如下: 人员表

ID

姓名

年龄 1

张三2

李四 要向表中插入一条数据

Insert into 人员表(ID,姓名,年龄)values(3,’王五’,30)注意在插入值的时候,数字不要加单引号,字符要加

1.3、第三讲

基本SQL语句update语法

update [表名] set 字段1=值1,字段2=值2,字段3=值3,… where [字段]=值

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班

要将所有人的班级修改为一班 Update 人员表 set 班级=’一班’

要将王五的年龄更改为25岁

Update 人员表 set 年龄=25 where 姓名=’王五’

要修改张三的名字为张老幺,年龄改为15 Update 人员表 set 姓名=’张老幺’,年龄=15 where 姓名=’张三’

1.4、第四讲

基本SQL语句delete语法

delete from [表名] where [字段1]=值1 and [字段2]=值2 例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班

若要删除王五这个学生

Delete from 人员表 where 姓名=’王五’

若要删除年龄大于20岁的Delete from 人员表 where 年龄>20

若要删除姓张的,并且年龄大于20的Delete from 人员表 where 姓名 like ‘张%’ and 年龄>20

这里出现了 like和% 下一讲介绍者2个字符的意义

1.5、like和% 在SQL中,like和=号的使用方法相同,但还是有所不同。使用方法如下:

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班

刘四麻

三班

要查找姓名为张三的人员的两种方法: Select * from 人员表 where 姓名=’张三’ Select * from 人员表 where 姓名 like ‘张三’

讲讲区别

Like可以与通配符%配合使用,而=号则不能,要查找姓名中姓张的人,使用=号就不可以,需要使用like比较字符。

Select * from 人员表 where 姓名 like ‘张%’ 查找名字中带有四的Select * from 人员表 where 姓名 like ‘%四%’ 查找姓名以五结尾的人

Select * from 人员表 where 姓名 like ‘%五’

1.6、使用count、sum、min、max、avg函数

在SQL中,可以使用一些函数进行简单的数据运算,上述函数就是其中的一部分,意思如下:

Count()求总数 Sum()求和 Min()最小 Max()最大 Avg()平均

使用方法如下:

Select [函数(字段)] from [表] where [条件]

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班 4

刘四麻

三班

要查询数据库中所有记录条数 Select count(*)from 人员表

要查询名字中带有四的总人数

Select count(*)from 人员表 where 姓名 like ‘%四%’

要查询最大、最小、平均年龄 Select max(年龄)from 人员表 Select min(年龄)from 人员表 Select avg(年龄)from 人员表

1.7、使用distinct和非distinct剔重的方法

在SQL中提供了一种剔除重复的谓词,distinct,在使用方法如下: Select distinct [字段] from [表] where [条件]

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

张三

一班 4

刘四麻

三班

要剔除表中重复的张三,写法如下: Select distinct 姓名 from 人员表

这句查询执行的结果为 姓名 张三 李四 刘四麻

如果想要得到完整的表,可以采用分组、in等方法,但是由于各种数据库使用的方法不同,下面第一条、第二在在实际运行过程中可能出现出错,需要根据各数据库的不同语法进行修改。

Select *,count(distinct 姓名)from 人员表 group by 姓名

Select * from 人员表 group by 姓名

Select * from 人员表 where 姓名 in(select distinct 姓名 from 人员表)这里出现的in将在后面进行讲解

1.8、多表组合查询

Select [表1].[字段1],[表2].[字段2]…,[表2].[字段1],[表2].[字段2] from [表1],[表2] where [表1].[字段] = [值] and [表2].[字段] = [值]

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班 4

刘四麻

三班

成绩表

ID

姓名

班级

语文

数学

英语 1

张三

一班

2

李四

二班

要查询一班张三的年龄、语文、数学成绩,则使用语句如下:

Select 人员表.姓名,人员表.年龄,成绩表.语文,成绩表.数学 from 人员表,成绩表 where 人员表.姓名=’张三’ and 人员表.班级=’一班’ and 人员表.姓名=成绩表.姓名 1.9、使用in和not in 使用in和not in是使用集合的方式进行提取数据,in解释为包含在,not in则为不包含在,使用方法如下:

Select [字段] from [表] where [字段] in/not in(集合)

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班 4

刘四麻

三班

成绩表

ID

姓名

班级

语文

数学

英语 1

张三

一班

2

李四

二班

在这里 集合 可以有多种书写方式,例如:

要查找人员表中叫张

三、李

四、王五的人员,可以使用 Select * from 人员表 where 姓名 in(‘张三’,’李四’,’王五’)

要去掉符合另外一个表的查询结果中的内容,可以使用

Select * from 人员表 where 姓名 not in(select 姓名 from 成绩表)

1.10、使用as 有时候在进行两个表的连接查询时,两个表中可能出现同样的字段,在这种情况下,为了区分不同的字段,需要通过as对显示的字段名进行替换。使用方法如下: Select [字段] as [新字段名] from [表]

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班 4

刘四麻

三班

成绩表

ID

姓名

班级

语文

数学

英语 1

张三

一班

2

李四

二班

在查询的过程中,使用语句如下:

Select 人员表.*,成绩表.* from 人员表,成绩表 where 人员表.姓名=成绩表.姓名 查询结果为:

ID

姓名

年龄

班级

ID

姓名

班级

语文

数学

英语 1

张三

一班

张三

一班

2

李四

二班

李四

二班

在查询结果中出现了2个ID字段、2个姓名字段、2个班级字段,我们不知道那个列是从那个表中读出来的,因此,特别是在取值的过程中,可能会出现问题,为了避免这种情况,可以在写语句的过程中进行更名。

上述写法更改为:

Select 人员表.ID as a,人员表.姓名 as b, 人员表.班级 as c, 人员表.年龄,成绩表.* from 人员表,成绩表 where 人员表.姓名=成绩表.姓名 查询结果为:

a

b

c

年龄

ID

姓名

班级

语文

数学

英语 1

张三

一班

张三

一班

2

二班

李四

二班

这样在做取值的时候就不会出错了

1.11、使用inner join、left join和right join 在工作中有时会遇到关系数据库,各表之间通过ID号确认关系,有时候只看ID号不是很明白,在这种情况下,可以使用连接查询。

基本语法

Select [表1.字段] from [表1] inner join/left join/right join [表2] on 表1.字段=表2.字段

例:

数据库表结构如下: 人员表

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

王五

二班 4

刘四麻

三班

成绩表

ID

人员

语文

数学

英语 1

2

3

404

关系:成绩表中人员用数字表示,与人员表中的ID号字段对应,在这种情况下,如果使用select * from 成绩表,人员字段将显示ID号,不能显示人员的姓名,不方便。因此可以使用连接查询。

Select * from 成绩表 inner join 人员表 on 成绩表.人员=人员表.ID 查询结果为:

ID

人员

语文

数学

英语 1

张三

2

王五

这样显示就很直观

Left join和right join类似,但是有区别,如果上诉语句中使用left join,则结果为: ID

人员

语文

数学

英语

ID

姓名

年龄

班级 1

张三

一班 2

李四

二班 3

null null

null

null 4

null null

null

null

从结果上看,left join 是以左表为基准表,显示匹配的数据,而不匹配的数据则显示为空

如果上诉语句中使用right join,则结果为:

ID

人员

语文

数学

英语

ID

姓名

年龄

班级 1

张三

张三

一班 2

王五

李四

二班 Null null

null

null

null

王五

二班 Null null

null

null

null

刘四麻

三班

right join 则是以右表为基准表,显示匹配的数据,而不匹配的数据则显示为空

《每日教学SQL部分基本语法.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
每日教学SQL部分基本语法
点击下载文档
相关专题 sql基础教学篇 语法 sql sql基础教学篇 语法 sql
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文