mysql运用

Excel表格数据导入MySQL数据库



有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下:

1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直接使用.csv格式。

2.使用notepad++编辑工具,打开.csv文件,将字符编码格式改为utf-8(不修改的话导入数据库后,中文会出现乱码)保存。

notepad++打开文件--编码--转为UTF-8编码格式--保存

3.按照excel数据格式新建数据库表,匹配字段(或者根据数据库要求的表格字段调整excel表格数据)


4.导入数据。

打开数据库--选择导入的数据库表--右键(导入向导)--CSV文件--选择要导入的文件--根据表格设计,修改字段名行和第一个数据行的数字--选择表的源字段(一一对应)--开始导入。

附上两个自己参考导入的链接:

https://blog.csdn.net/weixin_38437243/article/details/78974346

https://jingyan.baidu.com/article/fc07f9891cb56412ffe5199a.html


数据库的5个基本单位

数据库服务器

数据库

数据表

数据字段

数据行


登录数据库的命令(要记住)

Mysql –h localhost

–u root -p

写出数据库创建、查看、数据库表操作命令

(1)创建数据库:create database 数据库名字

(2)查看:show databases;

(3)查看表:show tables;

(4)删除表:drop table 表名


表创建及字段结构查看命令

(1)创建表:create table 表名

(2)查看表字段结构:desc 表名

说出MyISAM、nnoDB引擎区别

1、事务的支持不同(innodb支持事务,myisam不支持事务)

2、锁粒度(innodb行锁应用,myisam表锁)

3、存储空间(innodb既缓存索引文件又缓存数据文件,myisam只能缓存索引文件)

4、存储结构

 (myisam:数据文件的扩展名为.MYD

myData ,索引文件的扩展名是.MYI myIndex)

(innodb:所有的表都保存在同一个数据文件里面 即为.Ibd)

列出Mysql数据字段操作常用命令

(1)、查看表结构:desc表名

(2)、修改表字段类型 modify :alter table 表名 modify 字段名varchar(20);

(3)、增加表字段:alter

table 表名 add column 字段名类型

(4)、增加字段时控制字段顺序:alter

table 表名add 字段名字段类型after 字段名;

(5)、删除表字段:alter table 表名 drop column 字段名;

(6)、表字段改名:alter table 表名 change 字段原名字段新名字段类型;

(7)、修改表字段排列顺序:alter table 表名modify 字段名 first;

(8)、修改表名:alter table 旧表名 rename 新的表名;


目前我们常用 的数据库编码有那2个

GBK  UTF -8

写一条mysql普通索引命令

基本语法        alter table表  add index(字段)

示例    alter table usres  add index(id)


写出mysql数据库增删改查之插入语句命令

插入基本语法一

基本语法        insert into表 values(值1,值2,值n);


插入基本语法二

基本语法        insert into表(字段1,字段2,字段n) values(值1,值2,值n);

基本语法1和基本语法2的区别是:

         基本语法1的插入语句,表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。

         基本语法2中,除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值。


1、 完成结果集分组排序

基本语法        select字段 from 表order  by字段排序关键词

示例         select id,username,balance from money order by balance desc;

示例说明        查询money表中的id,username,balance字段,按照余额进行降序排序

排序用到的关键词:

asc   升序排列,从小到大(默认)

desc 降序排列,从大到小

在 select 出来之后的结果集中排序使用 order by ,其中 desc 和 asc 是排序顺序中的关键字。desc 表示按照字段进行降序排列,asc 表示升序排列,如果不写关键字默认升序排列。

2、 分别写出sum、count、max、min、avg等sql应用语句

基本语法     select函数(字段) from 表

1例如查询总金额:select sum(balance) from money;


2.查询money表的id总数

mysql> select count(uid) from money;


3.查询最大金额

mysql>select max(balance)from money;


4查询最小金额

mysql> select min(balance) from money;


5. 查询平均金额

mysql> select avg(balance) from money;


完成2个表的联合查询操作

mysql> select u.uid ,u.username as username,o.oid,o.uid,o.name as shopname from user u,order_goods o  where u.uid = o.uid;

外连接

基本语法        select表1.字段 [as 别名],表n.字段  from表1 LEFT JOIN 表n on  条件;

示例         select *  from user left join order_goods  on user.uid = order_goods.uid;

示例说明        以左边为主,查询哪些用户未购买过商品,并将用户信息显示出来外连接又分为左连接和右链接,具体定义如下。


左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录

mysql> select *  from user left join order_goods  on user.uid = order_goods.uid;


右连接:包含所有的右边表中的记录甚至是右边表中没有和它匹配的记录

基本语法        select表1.字段 [as 别名],表n.字段  from表1 right JOIN 表n on  条件;

示例         select *  from user right join order_goods  on user.uid = order_goods.uid;

示例说明        查询商品表中哪些用户购买过商品,并将用户信息显示出来

mysql> select *  from user right join order_goods  on user.uid = order_goods.uid;


子查询

         有时候,当我们查询的时候,需要的条件是另外一个select语句的结果,这时就需要使用子查询。用于子查询的关键字包括in、not in、=、!=、exists、not exists等。


基本语法        select字段  from表 where 字段 in(条件)

示例1     select *  from user where uid in (1,3,4);

示例1说明    按照id 查询指定用户

示例2     select *  from user where uid in (select uid fromorder_goods);

示例2说明    将购买过商品的用户信息显示出来

示例1:

mysql> select *  from user where uid in (1,3,4);


示例2:

mysql> select *  from user where uid in (select uid fromorder_goods);


记录联合

         使用 union 和 union all 关键字,将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示。两者主要的区别是把结果直接合并在一起,而 union 是将 union all 后的结果进行一次distinct,去除重复记录后的结果。

基本语法        select语句1

union[all] select语句2

示例         select *  from user where uid in (1,3,4);

示例说明        将商品表中的用户信息和用户表中的用户信息的结果组合在一起

mysql> select uid from user union select

uid from order_goods;


Mysql增删改查之更新记录

更新记录

         更新数据我们已经说过。需要修改内容,修改银行卡余额,修改装备信息的时候都需要使用到update,修改语句。

money表数据结构:

CREATE TABLE IF NOT EXISTS money (

  uid int(11) NOT NULL,

  username varchar(30) NOT NULL,

  balance DECIMAL(9,2) NOT NULL

 )ENGINE=InnoDB DEFAULT CHARSET=utf8;


money表数据:

INSERT INTO money(uid,username,balance)

values('1','zhangsai','15000.22');

INSERT INTO money(uid,username,balance)

values('2','zhangsa','16000.22');

INSERT INTO money(uid,username,balance)

values('3','lisi','17000.22');

INSERT INTO money(uid,username,balance)

values('4','wangwu','18000.22');


修改(也叫更新)语句的基本语语法如下:

基本语法        update表名 set 字段1=值1,字段2=值2,字段n=值n where 条件

示例         update money set  balance=balance-500 where userid = 15;

示例说明        修改money表,将balance余额减500。要求userid为15

假设我们有下面这一个表,表结构如下:

mysql> select * from money where username='lisi';

使用 update 语句进行记录更新

mysql> update money set balance=balance-500 where uid = 15;

同时对两个表进行更新

基本语法        update表1,表2 set 字段1=值1,字段2=值2,字段n=值n where 条件

示例         update money m,user um.balance=m.balance*u.age where m.userid=u.id;

示例说明        修改money,将money表的别名设置为m;user表的别名设置为u;将m表的余额改为m表的balance*用户表的age。执行条件是:m.userid

= u.id

mysql> update money m,user u

m.balance=m.balance*u.password where m.uid=u.uid;


使用 delete 删除记录

基本语法        DELETE FROM表 [where 条件];

示例         DELETE FROM user whereid > 10;

示例说明        删除掉用户表中id大于10的所有用户

mysql> DELETE FROM money where uid='1';

 Query OK, 1 row affected (0.08 sec)

删除掉了id为1的记录。


清空表记录

         delete和truncate是一样的,但它们有一点不同,那就是DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。

         如果一个表中有自增字段,使用truncate table 这个自增字段将起始值恢复成1.

基本语法        TRUNCATE TABLE表名;

示例         TRUNCATE TABLE user;

示例说明        清空表的数据,并且让自增的id从1开始自增

【切记】

删除时一定要记住加上where条件,不然会清空掉整个表的记录。

删除重要数据前一定要备份、备份、备份。


[if !supportLists]2.1.4.2           [endif]Mysql 权限操作

添加权限

类别         详细解示

基本语法        grant权限 on 库.表 to '用户'@'主机'

identified by '密码';

示例         grant select, inserton test.* to 'liwenkai'@'localhost' identified by '4311';

示例说明        给予liwenkai用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限

注:可以针对一个用户增加多条权限。


删除权限

基本语法        revoke权限 on 库.表 from '用户'@'主机';

示例         revoke select, insert ontest.* to 'liwenkai'@'localhost' identified by '4311';

示例说明        给予liwenkai用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限。


参数说明

grant all   在grant后接all说明给予所有权限

revoke all         在revoke后接all说明删除所有权限

权限on .        .所明给予所有库所有表的操作权限

'用户'@'主机' 主机里面若为%。任意来源的主机均可以使用这个用户来访问

创建数据库用户liwenkai ,具有对test数据库中所有标的 select / insert 权限


示例:增加权限

mysql> grant select, insert on test.* to

'liwenkai'@'localhost' identified by '4311';

 Query OK, 0 rows affected (0.00 sec)


示例:移除权限

mysql> revoke insert on test.* from

'liwenkai'@'localhost';

 Query OK, 0 rows affected (0.30 sec)


注:

上面的一些语句用的较少。你可以将知识点的掌握级别设置为了解级别。

更多的时候,权限设置项特别多,人们往往记不住具体的命令。更多的时候人们使用专门的工具来操作权限。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,641评论 6 525
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,754评论 3 408
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,075评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,369评论 1 303
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,386评论 6 402
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,800评论 1 317
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,122评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,130评论 0 281
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,689评论 1 327
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,693评论 3 348
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,804评论 1 356
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,399评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,128评论 3 341
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,528评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,705评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,409评论 3 383
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,878评论 2 368

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,045评论 0 19
  • MSSQL 跨库查询(臭要饭的!黑夜) 榨干MS SQL最后一滴血 SQL语句参考及记录集对象详解 关于SQL S...
    碧海生曲阅读 5,619评论 0 1
  • 1.MySQL数据库 2.SQL语句 第一节课 ###1(MySQL数据库)数据库概念.avi 5...
    码了个农啵阅读 1,218评论 1 16
  • 人的聪明与否,就看你有没有好的悟性。一件事情,一句话,一个眼神,有些人一悟就明白,而有些人呢却怎么也不明白...
    吾在历劫阅读 319评论 0 1
  • 玄机就藏在大千世界里,茫茫人海里,在花草虫鱼,日月龙虎的深处。 世人总想走捷径,渴望有本秘籍,就像武痴渴望得到《九...
    楚汉留香阅读 257评论 0 0