SQL基础语句总结。

数据库sql基础语句总结

1.select (查询)from(来自哪)  where  (条件 )  like (像)  not like(不像)

使用例:select * from   name_1    where    name="张三"                         ##查找中name是张三

              select * from   name_1    where    name like"张%"                     ##查找张开头的name

              select * from   name_1    where    name like"%张%"                  ##查找包含张的name

              select * from   name_1    where    name   like"_"                       ##查找一个字的name

              select * from   name_1    where    name  not  like"%三"             ##查找非三结尾的name

2.  <(小于)  >(大于) =(等于)   !=(不等于)  <=(小于等于) >=(大于等于)  <>(不等于)   and(且) or(或)

使用例: select * from   name_1    where    name="张三"       and   id<15      and    age>18

                select * from   name_1    where    name!="张三"      or   id<=15      or      age>=18

3.distinct (去重)  in (在...) between (范围) order by (排序) asc (正序) desc (倒序) group by (分组) having(group by使用后续条件) limit(取值范围)

使用例:select  distinct(name)  from   name_1                                                 ##去重为张三的name

               select  *  from   name_1    where   name_id  in(1,5,8)                        ##取为1,5,8的id

               select  *  from   name_1    where   name_id   not  in(1,5,8)                ##取非1,5,8的id

               select  *  from   name_1    where   name_id  between 1 and 10        ##取为1~10的id

               select  *  from   name_1    order by   name_id                                   ##排序id为正序

               select  *  from   name_1    order by   name_id  desc                         ##排序id为倒序

               select  *  from  name_1   group by  name_id hacing  age<50     ##对年龄小于50进行分组

               select  *  from   name_1    limit 1                                              ##取值一行

               select  *  from   name_1    limit 3,10                                        ##从第3行取值到第10行

4.sum(求和)    max(最大)    min(最小)   count(统计)    avg(平均) 

使用例:select sum(age) from   name_1                                 ##求和年龄

              select avg(age) from   name_1                                  ##平均年龄

              select max(age),min(age) from   name_1                  ##同时查找最大和最小年龄

              select count(age) from   name_1                               ##统计平均年龄

5.left(左连接)right(右连接) join(连接) inner(用什么连接)full(满)innerjoin (内连接) fulljoin(全连接)as(重命名,可用于表或表字段)

使用例:select    *   from  name_1   as   a     join     home_2   as  b   on  a.id=b.id

                                                                        -##表name_1和home_2两表连接查询

              select    *   from  name_1   as   a    left     join   home_2   as  b   on   a.id=b.id

                                                                        -##表name_1和home_2左表为中心连接查询

              select    *   from  name_1   as   a    right   join   home_2   as  b   on   a.id=b.id

                                                                        -##表name_1和home_2右表为中心连接查询

   ##三表合并,可根据 on  a=b  on b=c 进行连接

  学生表:(学生id,姓名,性别,分数)student (s_id,name,sex,score)

  学生班级表 : (班级id,学生id)student_class (s_id,c_id)

  班级表:(班级id,班级名称)    class (c_id,c_name)

  查询所有班级的名称,和所有班中女生人数和女生的平均分

           select     c.c_name,count(a.sex),avg(a.score)       FROM    student a    ##查看表字段前要带上表别名

                     join      student_class    b     on a.s_id=b.cid                                              ##ab表合并项 on a.s_id=b.cid   

                     join     class   c    on    b.s_id=c.cid      WHERE  a.sex="女"                      ##bc表合并项 on b.s_id=c.cid 

6.insert into(插入) values(值) update(修改)set(设置值)delete(删除)drop(删除)

使用例:insert into  name_1   (name_id,name,age,code)   values (10,李四,28,上海市)       ##插入

              updata  name_1     set    name="李四"    where  name_id=1           ##修改所有id=1的name为李四

              delete     from  name_1    where  name_id=1                                   ##删除id=1的所有行

              drop  table    name_1                                                                       ##删除表-警告慎用。

7.嵌套查询

select  home   from   home_2   where  name=(select name form  name_1 where  name="张三")  ##(将表字段进行嵌套)

                                                                           -##查询name_1表内姓名为张三的家庭地址。

select  *   from  (select * form  name_1 where  sex="男")a   where name="张三"      ##(将表进行嵌套)

8.截取字段substring   例:substring(2021-10-11 20:10:59,1,10) 注:截取前10个字符

表:user  表字段:id  activityid   mobile     time    统计每天每个活动有多少人参加

SELECT     substring(time,1,10) as days,          ##截取时间前10位,并days取为时间别名

activityid,            count( id  ) as userAmt           ##userAmt取为统计别名

FROM   user       GROUP BY   activityid, substring(time,1,10)      ##截取时间前10位,进行分组


9.union all   合并表字段函数,注:对两个结果集进行并集操作, 不管是不是重复,可多表字段合并,可增加表字段

SELECT  学号,姓名,年龄,课程号,Null as 备注  FROM  Student     ##Null新增表字段

      UNION ALL 

SELECT  课程号,课程名称,类别,学分,备注   FROM  Course;       ##合并项要跟上表字段数量一致

##合并结果为:学号,姓名,年龄,课程号,备注(表字段与第一表一致,但内容为两表字段合并后的结果)

你可能感兴趣的:(SQL基础语句总结。)