SQL语句
大约 1 分钟
SQL语句
目录
DML数据操作语言
insert
delete
updata
增删改查CRUD(Create Retrieve Updata Delete)
INSERT(插入)
语法
insert into 表名 (字段名1,字段名2,字段名3,...) values(值1,值2,值3,...);
- 其中字段数量和值数量相同、数据类型要对应相同
- 字段名可省略,默认为所有字段名的意思
标准示例
INSERT INTO customers (first_name, last_name, birth_date, address, city, state) -- 小括号可选 VALUES (DEFAULT, 'John', 'Smith', '1990-01-01', NULL) -- 自动增加的id给DEFAULT。设置默认NULL的可空值给DEFAULT或NULL都行
插入多行
INSERT INTO products (name, quantity) VALUES ('Product1', 10),('Product2', 15),('Product3', 20) -- 插入多行记录
指定表插入
INSERT INTO orders_archived SELECT * FROM orders WHERE order_date < '2019-01-01'
其他——最末插入查询
SELECT LAST_INSERT_ID() -- 最末插入查询
UPDATE(更新,更改值)
语法
update 表名 set 字段名1=值1,字段名2=值2... where 条件;
示例
UPDATE invoices SET payment_total = 10, payment_date = '2019-03-01' WHERE invoice_id = 1
DELETE(删除)
语法
delete from 表名 where 条件;
示例
DELETE FROM invoices WHERE invoice_id = 1
怎么删除大表?(几亿)
- 删除时间非常长,因为没有释放数据所占空间
truncate table demotable;
,表的截断- 与
delete from demotable
比较:特点是速度快,但表被截断、不可回滚(即无法恢复,需慎重,要再三问清楚) - 与
drop table demotable;
比较,truncate直接截断表中的数据而非删除表
- 与