MySQL备注不熟悉的DML|DDL 语句

1.<> 、!= 不等于的两种写法。

SELECT * FROM table1 WHERE col <> value;

2.拷贝一个表结构的数据。

-- 首先使用Like 拷贝表结构  
CREATE TABLE employees_bak LIKE employees;  
-- 使用insertselect 拷贝表数据 
INSERT  INTO employees_bak SELECT * FROM employees;

第二种方法:

CREATE TABLE 新表 SELECT * FROM 旧表 

注意:这种拷贝数据的方式只是单纯的把内容复制,而不会把旧表的primary key、Extra(auto_increment)等属性。需要自己用"ALTER"添加,而且容易搞错。

3.使用ON DUPLICATE KEY UPDATE避免INSERT时出现的违法主键或UNIQUE约束的冲突。

INSERT INTO tasks(task_id,subject,start_date,end_date,description)
VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority')
-- 如果没有冲突,则直接插入此记录,若冲突,则按下边的修改,更新原来的记录。
ON DUPLICATE KEY UPDATE 
   task_id = task_id + 1, 
   subject = 'Test ON DUPLICATE KEY UPDATE';

4.更新数据的修饰符

UPDATE [LOW_PRIORITY] [IGNORE] table_name 
SET 
    column_name1 = expr1,
    column_name2 = expr2,
    ...
WHERE
    condition;

MySQL在UPDATE语句中支持两个修饰符。

  • LOW_PRIORITY:指示UPDATE语句延迟更新,直到没有从表中读取数据的连接。
  • LOW_PRIORITY:对仅使用表级锁定的存储引擎(例如MyISAM,MERGE,MEMORY)生效。
  • IGNORE修饰符,可以使UPDATE语句发生错误时(如重复键冲突)跳过错误,继续更新后面的行。

5.DELETE 搭配LIMIT ,删除指定数量的记录

DELETE FROM customers
WHERE country = 'France'
ORDER BY creditLimit   --通常搭配ORDER 来删除想要的结果
LIMIT 5;

6.MySQL NULL 值处理
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值