mysql--15000增删改
来源:互联网 发布:空间绑定域名 编辑:程序博客网 时间:2024/05/15 13:45
插入
insert
INSERT [INTO] tbl_name
[(col_name,…)]
{VALUES|VALUE}
({expr|DEFAULT},…),(…)
省略书写列名的话,表示将输入全部的
对于自动编号的值,可以使用null或者DEFAULT作为值
对于有默认值的值,可以使用DEFAULT作为值
多列输入
insert set
可以使用子查询
INSERT [INTO] tbl_name SET col_name = {DEFAULT|}
insert select
查找插入
插入完整行
INSERT INTO Persons
VALUES (‘Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’)
参数的数量和顺序应该和列中的定义一致
插入指定行
INSERT INTO Persons
(LastName, Address) VALUES (‘Wilson’, ‘Champs-Elysees’)
对于未指定的参数,实际的插入值为默认值或者null或者自增的下一个值
批量插入
INSERT INTO Persons
(LastName, Address) VALUES (‘Wilson’, ‘Champs-Elysees’), (‘Wilson’, ‘Champs-Elysees’)
使用批量插入比多次使用单条会更
查询插入
完整插入
insert into table_name_new select * from table_name_old where 1 =1
选择插入
insert into t_fee_arbitration (name ,website)
select dname,dremark from t_cmmon_dictionaries
CREATE SELECT
update
单表更新
UPDATE
[LOW_PRIORITY][IGNORE] tbl_name
SET col_name = {expr1|DEFAULT},[col_name = {expr1|DEFAULT}]
[WHERE where_define]
返回
连表修改
UPDATE items,month
SET items.price=month.price
WHERE items.id=month.id;
假设有两个表,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格
update tab1 set tab1.产品价格 = (select tab2.产品价格 from tab2 where tab2.产品名称 = tab1.产品名称)
SQL语句是不支持多表同时更新的
单表更新
UPDATE Person SET FirstName = ‘Fred’ WHERE LastName = ‘Wilson’
UPDATE Person SET Address = ‘Zhongshan 23’, City = ‘Nanjing’ WHERE LastName = ‘Wilson’
多表更新
UPDATE product p INNER JOIN productPrice pp ON p.productId = pp.productId
SET pp.price = pp.price * 0.8, p.dateUpdate = CURDATE()
WHERE p.dateCreated < ‘2004-01-01’
update table1 set filed1= (select filed from table2 where table2.a)
delete
删除被选中的数据
将SELECT 换成DELETE
单表删除
DELETE FROM tbl_name [WHERE ]
delete from tablename where
truncate tablename
完全删除数据
drop tablename
完全删除数据,表结构
- delete 语句是数据库操作语言(dml),
这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
truncate、drop 是数据库定义语言(ddl),
操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。
3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动
drop 语句将表所占用的空间全部释放。
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。
多表删除
SELECT * FROM tdb_goods AS t1
LEFT JOIN (SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING COUNT(goods_name)>=2) AS t2
ON t1.goods_name=t2.goods_name
WHERE t1.goods_id>t2.goods_id
将SELECT 换成DELETE
- mysql--15000增删改
- mysql增删改查
- Mysql 字段增删改
- MySQL增删改查
- mysql增删改
- MYSQL增删改查
- MySQL增删改查
- mysql增删改查
- MySQL---增删改查
- MySQL增删改查
- MySQL中的增删改
- mysql 增删改查
- MySql 之增删改
- MySQL 触发器 增删改
- mysql 增删改查
- mysql增删改查
- mysql增删查改
- mysql 增删改操作
- 分享点自己搜集的前端有用的链接
- Android studio NDK开发 从入门到实践二
- scp 将数据从一台linux服务器复制到另一台linux服务器
- 【安全牛学习笔记】 w3af
- zookeeper实战一
- mysql--15000增删改
- Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录
- maven关闭jdoclint文档检查
- Threejs 的前世今生及基本概念
- Python验证RSA非对称加密
- MYSQL 插入/更新
- 【广告】前端小白到30K月薪的路径有哪些
- 99999
- CentOS下git与gitosis 安装