SQL基础

目录

1.库操作

2.表操作

3.表操作--修改

4.表操作 --删表

5.添加数据

管理数据

 查询表中数据(重点)

判空条件

1.模糊条件查询

2.聚合查询(函数)

3.排序查询

4.分页查询

5.分组查询(配合聚合函数用于统计)

顺序:where  >  group by > order by >  limit

筛选

6.sql中完成if判断

if()

​编辑

字符串的集合操作  ELT()


SQL基础_第1张图片

1.库操作

  • 创建库  create database [if not exists] 库名 [default  charset 字符集][collate  排序规则];
  • 查询所有库 show databases;
  • 查询当前库 select database();          注意是个函数,有括号
  • 删除库    drop  database [if exists]  库名 ;
  • 切换到某个库  use 库名;

2.表操作

  • 查询当前数据库所有表     show tables ;
  • 查询表的结构   desc 表名;
  • 查询指定表的建表语句  show create table 表名;
  • 创建表  create  table 表名(
  • 字段1   字段1类型  [comment 注释] ,
  • 字段2   字段2类型  [comment 注释] ,
  • 字段3   字段3类型  [comment 注释] ,
  • 字段4   字段4类型  [comment 注释]
  • )[comment  表注释];       注意最后一个字段后面没有逗号

如果在创建表的时候,这样写: 字段1   字段1类型 defaule ‘ XXX ’ ,就表示字段1的默认值是XXX,如果没有赋值给字段1,那么它的值就是XXX

设置主键:字段1 字段1类型 not null  

3.表操作--修改

1.添加字段   ALTER  TABLE  表名 add  字段名  类型(长度)[comment 注释][约束]

2.修改数据类型     ALTER  table  表名  modify  字段名  新数据类型(长度);

3.修改字段名和字段类型   

ALTER  TABLE  表名 change  旧字段名  新字段名  类型(长度)[comment 注释][约束];

4.删除字段    ALTER  TABLE  表名 DROP  字段名;

5.修改表名     ALTER  TABLE  表名 RENAME  TO  新表名;

4.表操作 --删表

删表   DROP  table  [if  exists] 表名;

删表并且重新创建该表    truncate   table  表名  ;      //清除数据

  

5.添加数据

1.给指定字段添加数据

insert  into  表名(字段名1,字段名2,...)values(值1,值2,...);

2.给全部字段添加数据

insert into 表名 values (值1,值2,...);      //值必须与所有字段匹配

3.批量添加数据

insert  into  表名(字段名1,字段名2,...)values(值1 , 值2 ,...),(值1 , 值2 ,)...

insert  into 表名 values  (值1,值2, ...),(值1,值2,...),(值1,值2,...)...

//注意字符串和日期型数据应该包含在引号中

管理数据

1.查询表的所有数据

select  *  from 表名;

2.修改1到多个指定字段的所有行的值

update  表名  set  字段名  = 值 , 字段名  = 值 ,字段名  = 值;

3.按条件修改指定字段的值

update  表名  set  字段名  = 值where  字段名 = 值;

4.删除表 (都是按行删除)

按条件删除   delete  from  表名  where  字段名   = 值;


 查询表中数据(重点)

  1. 查询所有列  select  * from  表名;
  2. 查询指定的列  select  字段名 from  表名 ;
  3. 若想在表头上显示的不是字段名,可以为字段取别名,直接在字段名后面加上名字就好,字符串需要单引号,(为什么要取别名?因为查多张表时,很有可能有重名的字段,起别名利于区分)
  4. 合并列查询   select concat(字段,字段)[表头名字] from 表名;                                          SQL基础_第2张图片
  5.  使用合并列查询:

    SQL基础_第3张图片

  6. 查询常量SQL基础_第4张图片
  7. 查询时去重,只显示不重复的 ,只要在查询某一列时, select  字段名 from  表名 ;在select后面加上distinct
  8.  条件查询,select *from 表名 where  条件
  9. SQL基础_第5张图片

 SQL基础_第6张图片

 SQL基础_第7张图片

 SQL基础_第8张图片

判空条件

SQL基础_第9张图片

 select  * from role  where  class<> '三班'

查询所有班级不是三班的数据

1.模糊条件查询

like:包含

not like  :不包含

查询表中name字段含三的数据

SELECT * FROM student where NAME like ' %三% ';

查询表中name字段以三结尾的数据

SELECT * FROM student where NAME like ' %三 ';

查询表中name字段以三开头的数据

SELECT * FROM student where NAME like ' 三% ';

%就是指代了选定字段中的0到多个字符

_就是指代了选定字段中的1个字符

演示:

一张student表

SQL基础_第10张图片

SQL基础_第11张图片


SQL基础_第12张图片


SQL基础_第13张图片

2.聚合查询(函数)

SQL基础_第14张图片

语法      SELECT 函数名(字段) from  表名 ;

SQL基础_第15张图片

3.排序查询

语句    select  *  from  表名  order  by  字段名

想以哪个字段排序就by哪个字段(默认正序排序)

如果想要逆序就在字段名后面加上 desc

如果想在以某个字段排好序的基础上,再以另一个字段排序,就在第一个by的字段后面加逗号,再加上第二个字段名

如:先以age排序,如果age相同就再以score排序,如果score相同就再以id排序

select * from student  order  by  age  ,score,id;

如果想加条件(where),那么order by要放在where的前面

select  *  from  student  where is not null order by  age;

4.分页查询

语句 :  limit  偏移量,步长;

如select * from  student  limit 1 , 3 ;

SQL基础_第16张图片

如果要加条件,limit放在where后面

如果既有条件又有排序还有分页,那么先where,再order by,最后limit

5.分组查询(配合聚合函数用于统计)

语法   :  group  by  字段  [筛选条件  having]

顺序:where  >  group by > order by >  limit

筛选

在group by 的 字段后面接having count (class)<5,即选出班级人数少于5的班级

作用示例

1.查询男女分别多少人   

2.查询每个班多少人

select  count(sex)  from  student  group  by  sex;

只显示2个数量,但不知道是谁的数量

如图:SQL基础_第17张图片

所以:  group  by哪个字段,就可以查询到哪个字段,将其添加到select和 from之间 , 就会输出在控制台

可以这样:

select  sex count(sex)  from  student  group  by  sex;

SQL基础_第18张图片

还可以打备注

SQL基础_第19张图片

同时使用多个聚合函数:

select  class,count(class),max(score) from  student  where class  <>''  group by class,score;

select 和from 之间夹的语句顺序是什么,控制台输出时顺序就是什么

如果group by  的不止一个字段,count 会在分组后的基础上计数,就是已经分组好了的基础上。

6.sql中完成if判断

语法:  
SELECT  id, NAME,(case sex
when '男' then 1     //当sex是男,就输出1
when '女' then 2      //当sex是女,就输出2
ELSE  '未知'
END
 )'别名' FROM  student;

有2种格式

SQL基础_第20张图片

if()

if( 表达式1,表达式2,表达式3)                      表达式可以是常量或者字段名

1是判断条件,,如果1成立就输出表达式2,如果不成立就输出表达式3

ifnull(表达式1,表达式2)  如果为空就输出表达式1,如果不为空就输出表达式2

SQL基础_第21张图片

字符串的集合操作  ELT()

elt (  字段 ,'str1' , 'str2', ...)

字段的值为1时输出str1,为2时输出str2,为3时输出str3 ....

你可能感兴趣的:(sql,数据库,mysql)