《MySQL必知必会》——插入、更新、删除

插入数据

用INSERT语句把数据插入到行中。
INSERT语句一般都不会产生输出。

INSERT INTO tables VALUES ('1001','LINING','18');

如果表的定义允许,可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件:

  • 该列定义为允许null的值
  • 在表定义中给出默认值,如果不给出值,将使用默认值

由于INSERT操作可能非常耗时,而且它可能降低等待处理的SELECT语句的性能。如果检索数据是最重要的,则可以通过在INSERT和INTO之间添加关键字LOW_PRIORITY,指示MySQL降低INSERT语句的优先级。

如果想插入多行数据到表中,可以使用多条INSERT语句,一次提交它们,每条语句用一个分号结束。

如果想将一条SELECT语句的结果插入表中,可以使用INSERT SELECT语句,它不要求列名必须匹配,它使用的是列的位置。

INSERT INTO  tables(id, name,addr) SELECT id nick_name,address FROM new_table;

更新数据

为了更新(修改)表中的数据,可采用UPDATE语句更新表中的特定行和表中所有的行。

在表中使用UPDATE时要注意,如果省略了WHERE子句,就会更新表中所有行。

 UPDATE tables 
 SET name = 'LINING',addr='home' 
 WHERE id='1001'

如果使用UPDATE语句更新多行,并且在更新这些行中的一行或多行时出现了错误,则整个UPDATE操作被取消,错误发生前更新的所有行被恢复到它们原来的值。如果需要继续更新,则可以使用关键字IGNORE:

UPDATE INGRORE customer 
SET name = 'zhangsan' 
WHERE id='1002';

也可以使用UPDATE语句删除某列的值,通过将该列的值设为NULL值:

 UPDATE tables 
 SET addr=null 
 WHERE id='1005';

删除数据

为了从表中删除数据,可以使用DELETE语句。

在使用DELETE语句时如果没有WHERE子句则会删除表中所有的行。

DELETE不需要列名或通配符,DELETE删除整行而不是删除列,如果要删除指定的列,使用UPDATE语句

DELETE语句从表中删除行,甚至是删除表中所有的行,但是DELETE不删除表本身。

创建表

一般创建表的方式有两种:

  • 使用具有交互式创建和管理表的工具
  • 表也可以直接用MySQL语句操作
  • 其实在使用交互式工具时,实际上使用的是MySQL语句。

在创建新表时,指定的表名必须不存在,否则将出错。如果仅想在一个表不存在时创建它,应该在表名前给出IF NOT EXISTS,它只是查看表名是否存在,并且仅在表名不存在时创建它。

使用NULL值

NULL值就是没有值或缺值,允许NULL值的列也允许在插入行时不给出该列的值。

CREATE TABLE orders 
(order_id int NOT NULL AUTO_INCREATE,
order_name int NOT NULL,
order_num varchar )
ENGINE=InnoDB;

NULL值为默认设置,如果不指定NOT NULL,则认为指定的是NULL。主键值只能使用不允许NULL值的列,允许NULL值的列不能作为唯一标识。

引擎类型

MySQL具有多种引擎,这些引擎都隐藏在MySQL服务器内.

  • INNODB 是一个可靠的事物处理引擎,它不支持全文本搜索;

  • MEMORY在功能等同于MyISAM,但由于数据存储在内存中,速度很快

  • MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事物处理。

外键不能跨引擎!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值