码迷,mamicode.com
首页 > 数据库 > 详细

Mysql数据操作语言DML(data management language)

时间:2015-11-29 19:48:51      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:mysql   dml   数据操作语言   

增加操作:insert into


    一条 insert into 语句可以插入多条记录

insert into insert_student values
(11,‘Jet Lee‘,‘male‘,23),
(34,‘Buruce Lee‘,male‘,23),
(44,‘Jacky Chen‘,‘male‘,25),
(45,‘crystal‘,‘famale‘,26);


   insert into 支持判断主键(唯一)是否冲突,从而执行更新

insert into inert_student values (44,‘Dragon girl‘,‘female‘,23);

技术分享


insert into 表名 (字段列表) values (值列表) on duplicate key update 字段=值,字段=值;

insert into insert_student values(44,‘Dragon girl‘,‘female‘,23) on duplicate key update stu_name=‘Dragon girl‘,gender=‘female‘,class_id=23;

技术分享

注意:update后面没有 set !


    insert into 表名 select 语句

insert into insert_student select * from foreign_student;

    //插入与表 foreign_student 一样的全部数据

insert into insert_student select null,sut_name,gender,class_id from foreign_student;

    //从表 foreign_student 复制部分字段数据

技术分享

注意:并不是一定要字段数一致才可以完成操作,只要是字段数量与字段类型一致就可以完成插入!


查询 select 的用法:


基本的查询语句的结构:

    select 字段表达式列表 [from 子句] [where 子句] [group by 子句] [order by 子句] [limit 子句];


字段表达式:

1:如果为字段名,那么字段名就是一个变量的概念,可以参与运算

select md5(class_id) from insert_student;

技术分享

因此,可以利用各种运算符,来形成sql中的表达式!


可以是一个列表:

技术分享

每一个表达式,都可以有一个别名:

    select 结果内以表达式本身来命名的!

技术分享

    但是有两个典型的问题:

        1:表达式直接做名字不容易识别

        2:如果名字冲突,不能区分

select 1+1 as a, now() as b,abs(-10) as c,1+1 as d;

技术分享

        as 关键字可以省略,但不建议省略!


from子句:

    表示查询的来源,就是表!


可以写表名列表,使用逗号分割!

select * from select_student,select_class;

技术分享


如果此时没有条件,相当于形成了一个笛卡尔积!

笛卡尔积:A集合的每个元素,都与B集合的每个元素之间有个关联!

          A表记录所有记录,都与B表的所有记录之间存在关联!

此时结果中会将所有的字段都列出来,包括重名的(如上图中的 id 字段)


可以为相应的字段名起别名:

此时访问到某个字段需要使用 表名.字段名的形式!

select select_student.id as s_id,select_class.* from select_student, select_class;

技术分享

select select_student.id as s_id,stu_name,gender,class_id,select_class.*from select_student,select_class;

如查多次出现 表名.字段名的情况,可以为表名起别名!

技术分享


dual的问题:

    虚拟表名问题,使语法更加规范而已!

技术分享


where子句,查询条件子句

    where 条件表达式

where找到每条记录并依次执行条件表达式,根据条件结果返回数据!

形成条件表达式的基本要素:数据,(变量),运算符,函数调用!

技术分享

典型的运算符:

    关系:>,<,=,>=,<=,<>,!=

    关系运算符 like: 模糊查询

               not like : like取反


    between 3 and 5 : 在3与5之间 (包含3与5)


    in / not in : 在/不在 某个集合之内(有限的元素在一起叫集合)

    留心:在做批量操作时,in / not in 的出镜率很高!

    

    null值的判断:不能使用普通的运算符,因为运算的结果都是null,而且不能作为运算条件!

                  应该使用 is null 或者  is not null 来判断!

                  函数 isnull() 也可以完成判断

select * from select_student where isnull(class_id);

 

Mysql数据操作语言DML(data management language)

标签:mysql   dml   数据操作语言   

原文地址:http://ginvip.blog.51cto.com/8092345/1717907

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!