DML DQL DDL
DML: 数据库操作语言 : INSERT UPDATE DELETE
INSERT INTO DEPT (DEPTNO,DNAME,LOC) VALUES (50,'教育部','北京');
UPDATE DEPT SET DNAME = 'XUEXI部',LOC = '上海' WHERE DEPTNO = 50;
DELETE DEPT WHERE DEPTNO = 50;
备注:删除表数据,第一种:delete dept;第二种:truncate table dept; 不能回滚
DQL: 数据库查询语言 :SELECT
SELECT EMPNO,ENAME,SAL FROM EMP
DDL: 数据库定义语言 : CREATE DROP
DROP TABLE IF EXISTS `cart`; CREATE TABLE `cart` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `product_id` int(11) DEFAULT NULL COMMENT '商品id', `quantity` int(11) DEFAULT NULL COMMENT '数量', `checked` int(11) DEFAULT NULL COMMENT '是否选择,1=已勾选,0=未勾选', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `user_id_index` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8;
查询结果的插入
一次插入多行数据(将查询的结果插入到表中) --备份
(1)新表不存在时,创建一个表
CREATE TABLE EMP1 AS SELECT * FROM EMP;(2)只要表结构,不要数据
CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1>2; ---当条件不成立的时候,只复制表结构 只能执行一次
(3)创建表emp3,有两个列,数据从emp表中来
CREATE TABLE EMP3(编号,姓名) AS SELECT EMPNO, ENAME FROM EMP;
(4)新表存在
INSERT INTO EMP2 SELECT * FROM EMP;
--可以执行多次,数据叠加
DROP TABLE EMP1;
小结:
【1】select... from ... [where]...[group by]...[having] ...[order by]...
【2】insert into 表名 (列名1,列名2)values (值1,值2...)
【3】create table 新表名 as select 列名1,....from 表名-》只能执行一次,要求新表不能存在
insert into 新表名 select 列名...from 表名 --》可执行多次,要求新表必须存在
【4】update 表名 set 列名1= 值1, 列名2= 值2 [where] ...
【5】delete 表名 [where].. --删除数据
TRUNCATE TABLE 表名; --删除数据,不能回滚
drop table 表名 --删除表