DML/DQL

DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DQL语句 数据库查询语言:查询数据SELECT
DML

INSERT 实现数据的 插入
语法:完整插入 INSERT INTO ___表名___ VALUES(值1,值2,值3...值n);
部分插入 INSERT INTO ___表名___ (列名,列名) VALUES(值1,值2);
 
DELETE 实现数据的 删除
语法:DELETE FROM ___表名____ WHERE CONDITION;

UPDATE 实现数据的 更新
语法:UPDATE 表名 SET 列名=值 WHERE CONDITION;

DQL
在MySQL管理软件中,可以通过SQL语句中的DQL语言来实现数据的

实例:
1.首先创建一个表
mysql> create database company; 
mysql> CREATE TABLE company.employee5(
     id int primary key AUTO_INCREMENT not null,
    name varchar(30) not null,
    sex enum('male','female') default 'male' not null,
     hire_date date not null,
     post varchar(50) not null,
     job_description varchar(100),
     salary double(15,2) not null,
     office int,
     dep_id int
     ); 
插入数据
mysql> insert into company.employee5(name,sex,hire_date,post,job_description,salary,office,dep_id) values 
     ('jack','male','20180202','instructor','teach',5000,501,100),
     ('tom','male','20180203','instructor','teach',5500,501,100),
     ('robin','male','20180202','instructor','teach',8000,501,100),
     ('alice','female','20180202','instructor','teach',7200,501,100),
     ('aofa','male','20180202','hr','hrcc',600,502,101),
     ('harry','male','20180202','hr',NULL,6000,502,101),
     ('emma','female','20180206','sale','salecc',20000,503,102),
     ('christine','female','20180205','sale','salecc',2200,503,102),
     ('zhuzhu','male','20180205','sale',NULL,2200,503,102),
     ('gougou','male','20180205','sale','',2200,503,102); 
 
2.简单查询
#查看所有列
SELECT    *    FROM   表名;
#查部分列
SELECT   列1,列2,列3    FROM     表名;
 
 
#通过四则运算查询(查看年薪)
 SELECT name, salary, salary*14 FROM employee5; 
3.条件查询
4.排序查询

5.多表查询

创建员工信息表:
#创建表结构
create table info(
name char(50),
age int,
dep_num int,
level_num int);
#查询表结构
desc info;
#插入数据
insert into info values 
('zhangsan',23,101,1),
('lisi',25,102,2),
('wangwu',30,102,3),
('zhaosi',30,103,4),
('sunba',35,NULL,NULL);
#查询表
select * from info; 
创建部门信息表:
#创建表结构
create table department(
dep_num int,
dep_name varchar(50),
dep_des varchar(100));
#插入数据
insert into department values
(101,'hr','recruit,training'),
(102,'tec','system,network,service'),
(103,'exp','C++,python,php'),
(104,'admin','administrator');
#查看表结构
desc department;
#查看表
select * from department; 
示图:

多表的连接查询:
a.交叉连接
特点:全部组合(A表5行,B表7行,最后5*7=35行)
生成笛卡尔积,它不使用任何匹配条件
b.内连接
特点:两列相同时,才会显示
语法:SELECT 字段列表 FROM 表1 , 表2 WHERE 表1.字段 = 表2.字段;
c.外连接
特点:两列相同时显示,并,已左/右表为主。
语法:A表 left join B表 on 条件是
子查询:
子查询是指:父查询 需要 依赖  子查询的结果。
 子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
 还可以包含比较运算符:= 、 !=、> 、<等
EXISTS关字键字表示存在。在使用EXISTS关键字时,内层查询语句不返回查询的记录,而是返回一个真假值。
 Ture或False,当返回Ture时,外层查询语句将进行查询;当返回值为False时,外层查询语句不进行查询










