mysql创建数据库,创建数据库表导入xlsxtxt文本,查询删除插入数据语句的使用
mysql创建数据库,创建数据库表导入xlsx、txt文本,查询、删除、插入数据语句的使用
**用 MySQL 创建数据库和数据库表
(
仅针对已经安装好
mysql)**
**win+R 以管理员身份运行命令行
cmd**
输入mysql -h localhost -u root -p 然后输入
mysql password
①设置 SQL语句的编码格式
②删除数据库test
③创建 数据库 test,指定存储数据所用的编码
④进入数据库
⑤创建表 dd_category(cid, cname, count)//count为书籍数量
⑥添加三行记录,三个书籍 分类 (10/20/30)
⑦查询出所有的书籍分类
⑧创建表 dd_book(bid,title,pic,price,pubDate,isOnsale,categoryId)
⑨为每种分类添加两三条记录
⑩查询出所有的书籍
⑪查询 出所有的 “category1”类书籍
⑫删除10号分类及其下所有的书籍
⑬删除 编号为 6的书籍,需要修改对应分类的书籍数量
查看当前有哪些数据库:show databases;( 以分号结尾表示一个
sql
语句
)
这四个数据库是mysql 自带的数据库,与
mysql
的功能有关,建议不要轻易修改。
创建一个数据库 dbone ,输入
sql
语句:
create database dbone;
创建完后用 show databases; 查看数据库发现创建成功。
进入刚才创建的数据库dbone ,对数据库进行管理:
use dbone;
查看数据库dbone 中的数据库表:
shoe tables;
显示为 empty set; 无数据库表
为数据库 dbone 创建数据库表
create table stu(sno varchar(20),sname varchar(20));
查看数据库dbone 的数据库 表:show tables;
查看数据库表stu 的结构:
describe stu;
查看 stu 数据库表中的数据
:select * from stu;
stu 为空
empty
的表格
往表格中添加内容: insert into stu values(‘2099001001001’,’cjf’);
数据库表 stu 成功添加两个数据。
但是每次往数据库表添加一个记录就要执行一个 sql 语句,当数据非常大的时候这种往数据库表添加数据的方法根本行不通,可以通过文本方式将数据添加到数据库表:
创建文本 stu.txt 用
tab
隔开数据,一行代表一个数据,数据元素要按照数据库表的结构排列:
记住文本stu.txt 的绝对路径(
D:\stu.txt
)
执行 sql 语句:
load data local infile “d:\stu.txt” into table stu;
文本 stu.txt 五个数据顺利添加到数据库表
stu
;
当然现在大部分数据都是用excel 编写,如何将后缀名为
xlsx
文件导入
sql
数据库表?
首先打开 excel 写入数据:
因为 excel 编码格式为
ANSI
右击文件名- 另存为,如下图:
点击文件类型选择csv( 逗号分隔
)
,保存在
d:\stu.csv
执行sql 语句
:load data local infile “d:\stu.csv” into table stu fields terminated by ‘,’;
fields terminated by ‘,’; 表示以逗号分隔数据值,从刚才选的文件类型
csv(
逗号分隔
)
可知数据值是以 ’,’分隔的。
查看数据表:可以看到数据库表 stu 又添加了三个数据。
查询数据库表stu 中 学号为2099001001001 的数据
删除数据库表stu 中 学号为2099001001001 的数据
如图,表中存在重复的数据,如果想要仅仅列出不同的值,可以使用关键字distinct
select distinct 列名
from stu;
如图,输出的列sno 没有出现重复的值。
以上是适应于在一条命令执行完后再执行下一条命令,当有多条命令需要连续执行时,或者有些命令动作是连续的并且多次用到,每次重复输入显得相当麻烦,这个时候可以将命令写在sql文本里面,然后直接在mysql执行sql文本。
①在D盘下sql文件夹创建sql文件TEST.SQL(D:\SQL\TEST.SQL),写入要执行的多条sql语句
#1. 设置SQL语句的编码格式
set names utf8;
#2. 删除数据库test
drop database if exists test;
#3. 创建数据库test,指定存储数据所用的编码
create database test charset=utf8;
#4. 进入数据库
use test
#5. 创建表 dd_category(cid, cname, count)//count为书籍数量
create table dd_category(
cid int primary key,
cname varchar(32),
count int
);
#6. 添加三行记录,三个书籍分类(10/20/30)
insert into dd_category values
(‘10’,’category1’,’2’),
(‘20’,’category2’,’2’),
(‘30’,’category3’,’2’);
#7. 查询出所有的书籍分类
select * from dd_category;
#8. 创建表 dd_book(bid,title,pic,price,pubDate,isOnsale,categoryId)
create table dd_book(
bid int primary key,
title varchar(32),
pic varchar(32),
price float(6,2),
pubDate date,
isOnsale boolean,
categoryId int
);
#9. 为每种分类添加两三条记录
insert into dd_book values
(‘1’,’title1’,’img/pic1.jpg’,’11.11’,’2017-10-10’,’1’,’10’),
(‘2’,’title2’,’img/pic2.jpg’,’1912’,’2017-10-11’,’1’,’10’),
(‘3’,’title3’,’img/pic3.jpg’,’18.13’,’2017-10-11’,’1’,’20’),
(‘4’,’title4’,’img/pic4.jpg’,’17.14’,’2017-10-9’,’1’,’20’),
(‘5’,’title5’,’img/pic5.jpg’,’7.15’,’2017-10-6’,’1’,’30’),
(‘6’,’title6’,’img/pic6.jpg’,’9.14’,’2017-10-7’,’0’,’30’);
#10. 查询出所有的书籍
select * from dd_book;
#11. 查询出所有的“计算机”类书籍
select * from dd_book where categoryId = (
select cid from dd_category where cname=’计算机’
);
#12. 删除10号分类及其下所有的书籍
delete from dd_category where cid = 10;
delete from dd_book where categoryId=10;
#13. 删除编号为6的书籍,需要修改对应分类的书籍数量
update dd_category set count=count-1 where cid = (
select categoryId from dd_book where bid=6
);
delete from dd_book where bid =6;
除了设置sql语句编码格式以及存储数据所用的编码格式,还需要设置sql脚本的编码格式,否则会出现中文乱码等问题,方式如下:
点击左上方文件选择另存为
编码格式选择UTF-8 ,再点击保存,替换掉源文件
在DOS中如果出现中文乱码等,需要设置DOS的编码格式:chcp 936(简体中文字符集)
运行sql脚本文件有两种方式:
①在未登录mysql之前:mysql -uroot -p < e:/x.sql
②在登录mysql 之后:
source e:/x.sql
sql脚本运行成功。