数据库基本操作 DML DQL DDL

时间:2022-06-11 18:44:27

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 表名 --删除表