MySQL数据库SQL2——DML—DQL

开源数据库MySQL - SQL2

DML

目的

在MySQL管理软件中,DDL已经定义了数据库结构。
那么如何对其中的数据进行管理呢?
可以通过SQL语句中的DML语言来实现数据的操作,包括使用:

INSERT	实现数据的	插入
DELETE	实现数据的	删除
UPDATE	实现数据的	更新。

一、插入数据INSERT

完整插入

INSERT INTO 表名                          VALUES (值1,值2,值3…值n);

部分插入

INSERT INTO 表名(列名,列名)  VALUES (值1,值2);

二、更新数据UPDATE

语法

UPDATE   表名   SET   列名=值   WHERE   CONDITION;

示例1

准备一张表

mysql> create table t6(id int, name varchar(20));
mysql> insert into t6 values (1,'aa');
mysql> insert into t6 values (2,'bb');

更新数据

需求:把bb改成cc

mysql> update   t6   set   name='cc' where id=2;

查询结果

mysql> select * from t6;

示例2

修改mysql数据库管理员root账户的密码。

mysql> update mysql.user set authentication_string=password("QianFeng@123456") where user="root";

三、删除数据DELETE

语法:

DELETE   FROM    表名   WHERE   CONDITION;

示例:

需求:删除id为2 的用户记录。

mysql> delete from t6 where id=2;

DQL

目的

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

MySQL查询

一、简单查询

查看所有列

前提是需要进入数据库。不进入数据库,就请输入库名。
SELECT * FROM 表名;

查部分列

SELECT   列1,列2,列3    FROM     表名;

通过四则运算查询

看一看薪水

SELECT name, salary, salary*14 FROM employee5;

二、条件查询

单条件查询where

查询班级的学生姓名

SELECT name,post 
	FROM employee5
	WHERE post='hr';

多条件查询AND/OR
查询所有员工,并且交税大于1000

SELECT name,salary 
	FROM employee5
	WHERE post='hr' AND salary>1000;

查询所有分公司的员工,并且交税是6000或者8000的员工

SELECT name, salary FROM employee5 
	WHERE salary=6000 OR salary=8000

关键字BETWEEN AND 在什么之间

需求:查一查交税在5000到15000

SELECT name,salary FROM employee5 
	WHERE salary BETWEEN 5000 AND 15000;

需求:不在5000~15000呢?请使用NOT

SELECT name,salary FROM employee5 
	WHERE salary NOT BETWEEN 5000 AND 15000;

关键字IN集合查询

工资可能是4000,也可能是5000,还有可能是9000,怎么查

OR可以组合多条件,效率如何?
SELECT name, salary FROM employee5 
	WHERE salary=4000 OR salary=5000 OR salary=6000 OR salary=9000 ;

关键字IS NULL

没有岗位描述的

SELECT name,job_description FROM employee5 
	WHERE job_description IS NULL;
非空
SELECT name,job_description FROM employee5 
		WHERE job_description IS NOT NULL;
错误示范,空格''
SELECT name,job_description FROM employee5 
	WHERE job_description='';

关键字LIKE模糊查询

好像有个员工姓阿

SELECT * FROM employee5 
	WHERE name LIKE 'al%';

通配符’%’代表多个任意字符
注意不是shell的"*“星号。mysql使用”%"

好像有个员工姓阿

SELECT * FROM employee5 
	WHERE name LIKE 'al___';

注意不是shell的“?”问号。mysql使用""下划线
通配符’
’代表1个任意字符

三、查询排序

例如以交税升序排列

SELECT    *     FROM     表名   ORDER       BY     工资的列名     ASC;

例如以交税降序排列

SELECT    *     FROM     表名   ORDER BY    工资的列名     DESC;

交税最高的前五名

SELECT * FROM employee5 ORDER BY salary DESC 
LIMIT  5;	  

//默认初始位置为0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值