MySQL DML数据库操纵语言与DQL数据库查询语言

DML

DML(data manipulation language)
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

插入数据INSERT

完整插入:INSERT INTO 表名 VALUES (值1,值2,值3…值n);
部分插入:INSERT INTO 表名(列名,列名) VALUES (值1,值2);

mysql>insert into student_table values (zhangsan,18,'男');
>Query OK, 0 rows affected (0.15 sec)

mysql>insert into student_table  (name,age)  values  ("lisi",23);
>Query OK, 0 rows affected (0.15 sec)

更新数据UPDATE

语法:UPDATE 表名 SET 列名=值 WHERE CONDITION;

mysql>update student_table set age=40 where name="zhangsan"
>Query OK, 0 rows affected (0.15 sec)

修改root密码

>use mysql;
>alter user 'root'@'localhost' identified by 'Honglei@123456';
Query OK, 0 rows affected (0.15 sec)
>flush privileges;

删除数据DELETE

语法:DELETE FROM 表名 WHERE CONDITION;

mysql> delete from t6 where name="zhangsan";

DQL

DQL(Data Query Language )
DQL语句 数据库查询语言: 查询数据SELECT

简单查询

查看所有列:SELECT * FROM 表名;
查部分列:SELECT 列1,列2,列3 FROM 表名;

mysql> select * from student_table;
mysql> select name,age from student_table;

条件查询

单条件查询WHERE:SELECT 列名 FROM 表名 WHERE 条件

mysql> select * from student_table where name="zhangsan";

多条件查询AND/OR:SELECT 列名 FROM 表名 WHERE 条件 AND/OR 条件

mysql> select * from student_table from where age=18 and age=24;

mysql> select * from student_table from where age=18 or age=24;

关键字BETWEEN AND:SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值 AND 值

#查询年龄在18~24之间的所有列信息
mysql> select * from student_table where age between 18 and 24

关键字IN集合查询:SELECT 列名 FROM 表名 WHERE 列名 IN 集合

#查询年龄为18、20、24的所有列信息
mysql> select * from student_table where age IN (18,20,24)
#查询年龄不为18、20、24的所有列信息
mysql> select * from student_table where age NOT IN (18,20,24)

关键字IS NULL查询:SELECT 列名 FROM 表名 WHERE 列名 IS NULL

#查询名字为NULL的所有列信息
mysql> select * from student_table where name IS NULL
#查询名字不为NULL的所有列信息
mysql> select * from student_table where name IS NOT NULL

关键字LIKE模糊查询:SELECT 列名 FROM 表名 WHERE 列名 LIKE ‘范围’

#通配符’%’代表多个任意字符
mysql> select * from student_table where name LIKE 'zhang%'
#通配符’_’代表1个任意字符
mysql> select * from student_table where name LIKE 'zhang___'

查询排序

升序查询:SELECT 列名 FROM 表名 ORDER BY 列名 ASC;
降序查询:SELECT 列名 FROM 表名 ORDER BY 列名 DESC;

#按年龄升序排序
mysql> select * from student_table order by age ASC;
#按年龄降序排序
mysql> select * from student_table order by age ASC;

多表查询

在这里插入图片描述
交叉连接:生成笛卡尔积,它不使用任何匹配条件(全部组合(A表5行,B表7行,最后5*7=35行))

内连接

内连接:只连接匹配的行(两列相同时,才会显示)
SELECT 字段列表 FROM 表名1,表名2 WHERE 表名1.字段 =表名2.字段

#查询两表部门序号相同的所有列
mysql> select * from info,department where info.dep_num = department.dep_num;

外连接

外连接:两列相同时显示,并已左/右表为主。
语法:SELECT 字段 FROM 表1 LEFT/RIGHT JOIN ON 表2 WHERE 表1.字段 = 表2.字段;

select info.name,info.age,info.dep_num,department.dep_name from info left join on department on info.dep_num = department.dep_num;

在这里插入图片描述

select info.name,info.age,info.dep_num,department.dep_name from info right join department on info.dep_num = department.dep_num;

在这里插入图片描述

子查询

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弘雷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值