SQL语句基础之DML

一、DML介绍

   DML(Data manipulation Language,数据操纵语言)命令使用户能够查询查询数据库和操作已有的数据库中的数据的计算机语言,也就是涉及涉及的sql语句,包括增删改查操作的数据表

二、select语句基础

  1.选择特定的列

     select usernmae from user

  2.计算列值

     select color , price ,price + 500 from cars

  3.使用null值参与运算

     使用select语句进行查询时,有事查询出来的结果null,查询显示的结果会显示为NULL,但是NULL值不能参与运算

  4.设置别名

    select price as 原价格, price + 4444 as 新价格 fron cars     as 可以省略只需要在列名和别名之间价格空格就行

  5. 在select语句中使用连接符

    select concat(cartype, "is !¥" , price ,".00") as car from cars

三、where子句      指定查询条件的

  1.where子句      也叫做条件查询子句,如果只需要查找指定条件下的数据,则可以使用where子句

     select * from user where id = 12

  2.where in 子句   用于声明可以接受的值组

     select username,username from users where id in (1,11)

  3.where not in 用于查询不符合该值组中的任何一个的数据

    select username ,password from users where id not in (1,22)

  4.where between  and子句   用于查找指定范围内的数据

   select * from users where age between  18 and 22

  5.where like子句   用到两种通配符:下划线表示单个字符,百分号代表多个字符的序列

   select username from users where username like '_mike'

  6.where is null子句    表示当条件字段的值不为空时,它去掉查询结果中的空值,通过它可以关注数据的丢失   

  7.where子句中的逻辑操作

      where子句的逻辑操作的关键字有and、or和not

      and:如果and前后的条件符合,那么返回true否则返回false

      or:只要符合or指定条件之一返回true、否则返回false

      not:符合not指定的条件时返回true否则返回false

四、ORDER BY子句   使用该子句在检索时指定顺序进行检索,即结果是按指定条件的降序或者升序

   升序:select * from users order by id  asc    将搜索到的结果集通过id进行升序排序   asc关键字可以省略

   降序:select * from users order by id desc  将搜索到的结果集通过id进行降序排序

五、Group BY 用来进行分组

     1.group by 子句

       该子句根据字段值进行分组,它可以和聚合函数使用,如avg、count、max、min、sum。又可以分为单列分组和多列分组。

      单列分组:select max(score) from users 

      所列分组:select id ,name,age,address from users group by age,address

     

 PS:当group by和order by共同使用时,order by子句要放在group by子句之后

     

六、 HAVING子句  用来指定条件,和where子句功能差不多,但是having子句用于已经分组过得结果

      如果想要对分组的结果限制条件查询,就可以使用having子句,因为having用于限制分组后的结果,所以该子句放到group by之后使用   

      group by 列名  having 条件表达式

      PS:having子句是针对group by子句的,它作用于组;而where子句是在分组之前对满足条件的记录进行查询的,是针对于select语句的,作用于表或者视图上

七、insert语句

    插入单行数据:insert into table_name (col1,col2...) values(val1,val2....)

    向有外键的数据库插入数据:

       创建专业表:

              create table zhuanye(id int not null primary key auto_increment,name varchar(30) not null default '软件工程');

       创建学生表:

             create table xuesheng(sid int not null primary key auto_increment,sname varchar(20) not null ,age int not null default 18 ,zid int not null);

     给学生表的zid添加外键约束:alter table xuesheng add constraint haha foreign key (zid) references zhuanye (id);

    当我们想学生表中插入数据一定要插入学生表中的zid外键,并且这个zid外键必须在专业表中的id存在,倘若不存在,也就是选了不存在的专业,可想而知,执行结果肯定不通过,没法进行插入操作

   ps:添加外键约束:lter table 想要添加外键的表名 add constraint 外键名称 foreign key (外键名称) references 外表表名 (外表对应的主键);

       外键名称可以随便起,但是不能和已经存在的外键的名称相同,应为要对外键进行删除等操作时,它是唯一标识

       删除外键:alter table 拥有外键的表名 drop foreign key 外键名称

                    例如:alter table xuesheng drop foreign key haha;

       查看外键:我们可以通过查看数据表的构成信息来查看该表添加了哪些外键约束

                      show create table 表名

八、update语句  修改数据表中的数据

   修改单行数据:   

     update table_name set col1 = val1 , col2 = val2......

      ps:如果要修改的数据值是数字,则可以直接用数据值,不用加引号,但是如果修改的是字符串或者其他任意类型的数据,则要把数据值用引号引住

  修改有外进约束的表数据

   修改加有外键约束的表数据时和插入操作时类似,只需要注意外键的值一定要在所关联的表格中的主键中存在,否则修改不成功

九、delete语句  删除语句使用delete

   删除满足条件的数据

          delete from table_name where condition   condition表示指定删除条件

  删除有外键约束的表数据

      要删除具有外键约束的表时,如例子中说的zhuanye数据表中的数据时,它的主键不能够和学生表中的数据有关系,否者删除失败。意思可以理解为某个学校的专业要撤销,但是该专业还有很多学生,所有在撤销专业之前需要把该专业的学生给处理掉,然后才能删除该专业

         






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值