我爱编程

MySQL数据操作语句

2018-08-03  本文已影响0人  LannisterWF

MySQL的数据操作语句包括增删改查四种,insert,delete,update,select,其中select最为重要也最为复杂。MySQL对关键字不区分大小写,一个词用大写或小写都行。

1. insert

语法格式

CREATE TABLE IF NOT EXISTS tasks (

    task_id INT(11) AUTO_INCREMENT,

    subject VARCHAR(45) DEFAULT NULL,

    start_date DATE DEFAULT NULL,

    end_date DATE DEFAULT NULL,

    description VARCHAR(200) DEFAULT NULL,

    PRIMARY KEY (task_id)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入单行

INSERT INTO tasks(subject,start_date,end_date,description) VALUES('Learn MySQL INSERT','2018-08-02','2018-08-03','Start learning..');

插入多行

insert into tasks(subject,start_date,end_date,description)

VALUES('hadoop','2018-07-02','2018-07-22','difficult'),

('hdfs','2018-07-02','2018-07-22','difficult'),

('mapreduce','2018-07-02','2018-07-22','difficult');

不必为自动递增列(例如taskid列)指定值,因为MySQL会自动为自动递增列生成值。

具有SELECT子句的MySQL INSERT

CREATE TABLE tasks_bak LIKE tasks;

INSERT INTO tasks_bak SELECT * FROM tasks;

2.update

UPDATE语句来更新表中的现有数据。也可以使用UPDATE语句来更改表中单个行,一组行或所有行的列值。

UPDATE [LOW_PRIORITY] [IGNORE] table_name

SET

    column_name1 = expr1,

    column_name2 = expr2,

    ...

WHERE

    condition;

更新单列,将名叫LISA的人的最后更新时间改为现在

update actor set last_update='2018-08-02 15:06:06' where first_name='LISA';

更新多列,将id号为7的人改名叫LANNISTER,时间改为现在

update actor set first_name='LANNISTER',last_update='2018-08-02 15:13:13' where actor_id='7';

可以使用SELECT语句查询来自其他表的数据来提供给SET子句的值

3.delete

要删除表中的所有行,而不需要知道删除了多少行,那么应该使用TRUNCATE TABLE语句来获得更好的执行性能。

DELETE FROM table_name

WHERE condition;

删除某一行

delete from tasks where subject='hadoop';

删除表中全部行

delete from tasks;

排序后删除前十行,一次顺序删除多行一定要和order by连用

delete from actor order by actor_id limit 10;

4.select

select查询语句

SELECT语句由以下列表中所述的几个子句组成:

SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。

FROM指定要查询数据的表或视图。

JOIN根据某些连接条件从其他表中获取数据。

WHERE过滤结果集中的行。

GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。

HAVING过滤器基于GROUP BY子句定义的小分组。

ORDER BY指定用于排序的列的列表。

LIMIT限制返回行的数量。

语句中的SELECT和FROM语句是必须的,其他部分是可选的。

SELECT

    column_1, column_2, ...

FROM

    table_1

[INNER | LEFT |RIGHT] JOIN table_2 ON conditions

WHERE

    conditions

GROUP BY column_1

HAVING group_conditions

ORDER BY column_1

LIMIT offset, length;

select actor_id,first_name,last_name from actor where last_name='MARY' or actor_id='180';

select actor_id,first_name,last_name from actor where actor_id>100;

下表列出了可用于在WHERE子句中形成过滤表达式的比较运算符。

操作符 描述

= 等于,几乎任何数据类型都可以使用它。

<> 或 != 不等于

< 小于,通常使用数字和日期/时间数据类型。

> 大于,

<= 小于或等于

>= 大于或等于

还有一些有用的运算符可以在WHERE子句中使用来形成复杂的条件,例如:

BETWEEN选择在给定范围值内的值。

LIKE匹配基于模式匹配的值。

IN指定值是否匹配列表中的任何值。

IS NULL检查该值是否为NULL。

上一篇 下一篇

猜你喜欢

热点阅读