本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • MySQL基础教程(4)DML语句的基本使用

MySQL基础教程(4)DML语句的基本使用

发布:TangLu2019-1-3 12:46分类: MySQL 标签: mysql

一、什么是DML语句

DML语句是在日常工作中使用最多的语句,包含了insert、delete、update、select,也就是对每列字段中的数据进行增删改查。也有把select单独划为DQL的,因为它的使用最为复杂,会配合许多子句和函数一起使用。


二、MySQL的增删改语句

1、实现MySQL数据的插入——INSERT语句

# INSERT INTO table1 VALUES <字段1>=值1,<字段2>=值2,<字段n>=值n ;  #插入单行数据
# INSERT INTO table2 [(字段1,字段2,字段3)] values (值1,值2,值3),(值1,值2,值3) ;  #插入多行数据,每行数据需用括号分隔
# INSERT INTO table4 VALUES (3,'Lee',18)  #没有指定列名,需要把每列数据都填入
INSERT INTO table3 (id,name,age) VALUES (11,'tom',20),(15,'jerry',25)  #指定了3列要插入的字段,所以要插入对应三列数据
INSERT INTO table_new SELECT * FROM table_old;  #复制table_old表数据到table_new
insert into table1 (id,name,age) select id,name,age from table2 [where age>20];  #将查询结果插入到表中


2、实现MySQL数据的删除——DELETE语句。相比drop table和truncate两种物理清除方式,delete是逻辑方式的逐行删除,磁盘空间和自增的值不会立即释放。delete语法格式如下:
# DELETE FROM 表名称 WHERE 列=值;
DELETE FROM student WHERE age=10; #删除student表中age列值为10的数据 
DELETE FROM student ;#删除student表中所有数据 ,危险操作

3、实现MySQL数据的更新——UPDATE语句

#UPDATE table1 SET 字段1=值1,[字段2=值2] WHERE 条件判断
UPDATE student SET age=21 WHERE age=10;  #where条件切记跟上,不然就全表更新了

三、MySQL查询语句

1、SELECT单表查询语法示例

SELECT * FROM table1  #查询table1这张表中所有数据
SELECT * FROM table1 table2;  #同时从2个表中进行查询,然后实现比较等操作
SELCET name,age FROM student;   #从表中查询指定列的数据,可以按列名先后顺序实现排序
SELECT name,LENGTH(name) FROM student  #显示name列以及LENGTH函数统计到的长度列

SELECT * FROM family WHERE name = 'tanglu';  #使用where实现条件查询
SELECT * FROM family WHERE name like '%lu%';  #使用like实现模糊查询
SELECT salary FROM employee WHERE salary in (4000,5000,6000)  #使用in实现集合查询
SELECT salary FROM employee WHERE salary BETWEEN 5000 AND 10000;  #使用between实现范围查询
SELECT distinct name FROM zhangsan;  #搜索结果去重,类似系统的uniq命令,只对单字段查询有效
SELECT name,salary FROM employee ORDER BY salary;  #对搜索结果进行升序,降序的话是order by desc
SELECT * FROM student limit 0,1000  #使用limit限制搜索条数
SELECT name,salary,salary*14 AS annual_salary FROM employee;  #AS用于定义别名,让查询结果显示更易懂,as关键词可以省略不写,由于执行顺序的问题as定义的别名不能用于where过滤
SELECT * FROM student WHERE age>10 AND height > 100;  #条件查询中的逻辑组合
SELECT name,sex,salary FROM employee WHERE salary=(select max(salary) from employee);  #子查询,可以理解为子查询的结果是一个值

2、SELECT多表连接查询示例

当需要的数据来自于多张表中、单个表无法满足查询需求时就需要使用多表连接查询。使用多表查询的效果就是把多个表中的数据按需查询出来然后拼接成一个单表,然后再进行其他的过滤等操作。在MySQL中用join语句进行多表连接,多表连接又分内连接、外连接。效果如图:

join1.png


多表连接示例:

SELECT TABLE_A.name,TABLE_B.address FROM TABLE_A JOIN  TABLE_B ON TABLE_A.id=TABLE_B.id WHERE TABLE_A.name='zhangsan'  #在两张表中查询张三的地址
SELECT student.sname,course,cname FROM student JOIN sc ON student.sno = sc.sno JOIN course ON sc.cno = course.cno where student.sname='zhangsan'  #三张表的多表连接,适用于A表和C表没有直接关系时,用B表做中间表



温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《MySQL基础教程(4)DML语句的基本使用
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-127.html  [生成短网址]

已有 0/3306 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~