二、大数据之MYSQL基础

本文详细介绍了MySQL数据库的基本操作,包括DQL、DML、DDL、TCL和DCL语句,如查询、插入、删除、更新和表操作。还讲解了如何使用INNER JOIN、LEFT JOIN和RIGHT JOIN进行表连接,以及UNION ALL操作。同时,阐述了分组、排序、数据导入导出的方法。此外,列举并解释了若干重要的MySQL函数,如CONCAT_WS、SUBSTRING、RAND等,这些函数在数据库管理和数据处理中非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、MYSQL

1、Mysql的分类
数据查询语言(DQL)select
数据操纵语言(DML)insert,delete,update
数据定义语言(DDL)create,drop,alter
事务控制语言(TCL)commit,rollback
数据控制语言(DCL)grank,revoke
2、Mysql的语法

1、创建数据库和表

create database 库名
create table 表名

2、查询数据

select 字段 from 表名

3、删除

drop database 库名
drop table 表名
delete from table_name [wherer Clause]

在这里插入图片描述

4、插入数据

insert into 表名 (字段1,字段2,……) values(value1,value2,……)

5、更新数据

update 表名 set field1=new-value1,field2=new-value2
[where Clause]

在这里插入图片描述

6、修改字段和数据

alter table 表名 drop 字段  #删除字段
alter table 表名 add  字段 int #添加字段
alter table 表名 change 旧字段 新字段 数据类型 #修改字段的名称及类型
alter table 旧表名 rename to 新表名
3、Mysql的表操作

1、inner join

SELECT 
a.runoob_id, a.runoob_author, b.runoob_count 
FROM runoob_tbl a 
INNER JOIN
tcount_tbl b
ON a.runoob_author = b.runoob_author;

可以等价于:

SELECT
a.runoob_id, a.runoob_author, b.runoob_count 
FROM runoob_tbl a, tcount_tbl b
WHERE a.runoob_author = b.runoob_author;

在这里插入图片描述

2、left join

SELECT 
a.runoob_id, a.runoob_author, b.runoob_count
FROM runoob_tbl a 
LEFT JOIN tcount_tbl b
ON a.runoob_author = b.runoob_author;

在这里插入图片描述

3、right join

 SELECT
 a.runoob_id, a.runoob_author, b.runoob_count
 FROM runoob_tbl a
 RIGHT JOIN tcount_tbl b
 ON a.runoob_author = b.runoob_author;

在这里插入图片描述

4.union all

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
# 语句使用 UNION ALL 从 "Websites" 和 "apps" 表中选取所有的country(也有重复的值)
4、Mysql的表字段操作
1、分组

使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录

SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name

另外,WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

在统计个数时,可以使用coalesce语法,来设置一个值代替NULL

select coalesce(a,b,c);

参数说明:如果anull,则选择b;如果bnull,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

2、排序

使用 ORDER BY 子句将查询数据排序后再返回数据(DESC为降序,ASC为升序)

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

在这里插入图片描述

3、Mysql数据的导入和导出

数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中:

mysql> SELECT * FROM runoob_tbl 
    -> INTO OUTFILE '/tmp/runoob.txt';

此外,也可以来设置参数,指定输出的格式,例如导出为CSV格式

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';

还可以指定生成文件的数据之间隔开符号,大多数人都指定为逗号和空格。

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

使用 LOAD DATA 导入数据,以读取dump.txt文件为例

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

另外,也可以使用命令 mysqlimport 进行数据的导入

$ mysqlimport -u root -p --local --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  mytbl dump.txt
password *****

mysqlimport 语句中使用 --columns 选项来设置列的顺序:

$ mysqlimport -u root -p --local --columns=b,c,a \
    mytbl dump.txt
password *****
5、Mysql的常用函数
函数描述
CONCAT_WS(x, s1,s2…sn)同 CONCAT(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符
CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串
SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
RAND()返回 0 到 1 的随机数
ADDDATE(d,n)计算起始日期 d 加上 n 天的日期
ADDTIME(t,n)n 是一个时间表达式,时间 t 加上时间表达式 n
CURDATE()返回当前日期
CURRENT_TIME返回当前时间
CURRENT_TIMESTAMP()返回当前日期和时间
CAST(x AS type)转换数据类型
CONNECTION_ID()返回唯一的连接 ID
IF(expr,v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2
IFNULL(,v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值