一、表中插入数据
1、insert into语法
1.insert into 语句输入数据
语法: insert into 表名(字段1,字段2,…) values ……
注:输入一行数据的话,用value
-- 创建表
create table fruit(f_id char(10) not null,
s_id int not null ,
f_name varchar(255) not null,
f_price decimal(8,2) not null,
primary key(f_id));
-- insert into 输入数据
insert into fruits(f_id,s_id,f_name,f_price)
values('a1',101,'apple',5.2),
('b1',101,'blackberry',10.2),
('bs1',102,'orange',11.2),
('bs2',105,'melon',8.2)
数据导入后要进行检验,称其为检验三部曲:
a.检验导入的内容
select * from 表名;
b.检验总行数
select count(*) from 表名;
c.检验表的结构
desc 表名 ;
insert into语法的简洁写法
2、导入外部数据
Mysql5.0及之前的写法
导入外部数据(此方式在mysql8.0版本后就不适用啦)
load data local infile '文件路径' # 注意不能有中文
into table 表名
fields terminated by ',' # ,表示以逗号作为分隔符,初次此外还有以tab键作为分隔符,表示为 \t ,通常是这两种情况。
ignore 1 lines; #忽略第一行
Mysql8.0的写法
-- 查看数据存储的安全路径
show variables like '%secure%';
-- C:\ProgramData\MySQL\MySQL Server 8.0\Uploads #存储数据的起安全路径
导入外部数据的语法:
load data infile "C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\Sales.csv"
into table Sales
fields terminated by ','
ignore 1 lines;
3、 将csv文件快捷导入数据的方法
数据库中有能够将csv文件导入数据库的快捷方式:
具体步骤:
1.选取数据库
2.选中数据库的tables,右键,选取Table Data Import Wizard
3.
4.
5.
6.
7.
8.完成
二、如何将查询好的数据导出到excel等文件
1、直接简单粗暴的方式是,将查询结果通过mysql设置的按钮导出,导出的格式默认是csv格式且没有别的选择。
2、第二种是写语法
SELECT * FROM 表
WHERE 字段=字段值
INTO OUTFILE '(路径)'
FIELDS TERMINATED BY ',' #终止形式(一行一什么结尾)
ESCAPED BY '"' #过滤
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'; #终止行
小案例:
select * from
(select a.id,a.dates,a.temp from weather a cross join weather b
on timestampdiff(day,a.dates,b.dates)=-1 where a.temp>b.temp) m
where m.temp>25
into outfile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\121.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
3、第三种 数据中存在中文内容
一、单表导出
#from后面如果是查询得到的表,需要一个名字
SELECT 字段1,CONVERT((字段2) USING gbk) AS '字段1别名 ',
CONVERT((字段3) USING gbk) AS ‘字段3别名’ FROM 表名 [筛选条件] INTO OUTFILE ‘路径’ …;
解释:SELECT 表头别名1,表头别名2 UNION SELECT 字段1,字段2 FROM 表格 筛选条件
1.SELECT 表头别名1,表头别名2 #手动写表头字段别名
2.UNION:联合
3.SELECT 字段1,字段2 FROM 表格 筛选条件 : 筛选数据
二、多表同时导出
SELECT * INTO OUTFILE '路径' 导出条件1 导出条件2
FROM (SELECT '表头别名1','表头别名2' UNION SELECT 字段1,字段2 FROM 表格 筛选条件) b;
注释:
1、解决中文乱码的方式是使用代码: CONVERT((字段) USING gbk)
2、即左表头 右数据,中间union
小案例:
SELECT * INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\125.csv'
FIELDS TERMINATED BY ',' #以逗号分隔,还可以再添加其他条件
FROM (SELECT CONVERT(('学生姓名') USING gbk),CONVERT(('科目名称') USING gbk),CONVERT(('成绩') USING gbk)
UNION
SELECT CONVERT((s_name) USING gbk),CONVERT((c_name) USING gbk),CONVERT((score) USING gbk) FROM stu) b;
4、小节:导出数据的三种方式的应用场景
(1)、如果数据中存在中文,建议选择第三种方式 涉及CONVERT((s_name) USING gbk)函数
(2)、如果数据中不存在中文,可以选择直接导出或第二种方式