数据库操作:

 这里我们先修改一下windows下的my.ini文件,我的数据库安装在C:\ProgramData\MySQL\MySQL Server 8.0,配置文件在这里,编辑该文件增加下面的行:

auto-rehash #添加auto-rehash

 重新登录:mysql -u root -p --auto-rehash

 1)创建数据库和删除数据库(win+r进入dos,然后mysql -uroot -p密码进入数据库操作窗口)

  使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库,root用户拥有最高权限,可以使用 mysqladmin 命令来创建数据库:

mysqladmin -u root -p create mytest#创建一个名字为mytest的数据库
#此时/usr/local/mysql/data/mytest目录就是创建的新的数据库
#该mytest目录下便存在一个文件:db.opt #或者登录mysql后执行
CREATE DATABASE 数据库名; #如果想删除这个创建的数据库,有三种方法可选择
#一:在bash下直接执行rm
sudo rm -rf /usr/local/mysql/data/mytest#找到创建的数据库所在路径 #二:使用mysqladmin命令
mysqladmin -u root -p drop mytest
#需要输入密码,然后弹出:Do you really want to drop the 'mytest' database [y/N]
#输入y确认即可drop 掉mytest #三,登录mysql后
mysql > drop database mytest;

 2)显示数据库信息

#先执行mysql登录用户mysql
SHOW DATABASES; #使用某一数据库,USE 数据库名字
USE RUNOOB;

数据表操作

 1)查看某数据库下面的数据表

#要先use db_name,进行目标数据库,然后查看某个数据库下的数据表
USE DATABASE_NAME;
SHOW TABLES;

 

 2)查看某个数据表的结构

DESC TABLE_NAME;

 3)创建数据表

mysql> create table runoob_table(
runoob_id INT NOT NULL AUTO_INCREMENT,
runoob_title VARCHAR(100) NOT NULL,
runoob_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY (runoob_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; show tables;
  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码

 4)查看数据表内容

select * from runoob2_tbl;

  

  

select submission_date from runoob_tbl_clone where runoob_title='learn R' and runoob_name='xiaoyang';

  

 5)删除数据表

#直接删除数据表
drop table runoob_table; #删除数据表中的某条记录
select * from runoob2_tbl; delete from runoob2_tbl where runoob_title='learn jsp'; select * from runoob2_tbl; #清空表,保持表结构
truncate runoob2_tbl; select * from runoob2_tbl;

  

  

  1、当你不再需要该表时, 用 drop;

  2、当你仍要保留该表,但要删除所有记录时, 用 truncate;

  3、当你要删除部分记录时, 用 delete。

 6)插入数据

#INSERT INTO table_name ( field1, field2,...fieldN ) VALUES( value1, value2,...valueN );
#如果数据是字符型,必须使用单引号或者双引号,如:"value" insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES(8, NULL, 'learn ML', 'xiaohong'); insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES(7, NOW(), 'learn PERL', 'xiaoxiao'); #当然也可以一次插入多条数据
insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES (9, NOW(), 'learn hadoop', 'xiaoli'), (10, NULL, 'learn AI', 'HH') ;

  

 

 7)从文件直接导入数据库

  如有一文件input:

  

load data local infile '/path/input' into table runoob_tbl_clone  FIELDS TERMINATED BY ',' ;

#如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。

load data local infile '/path/input' into table runoob_tbl_clone  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';

#两个命令的 FIELDS 和 LINES 子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,FIELDS 子句必须出现在 LINES 子句之前。

  

  如果load本地文件提示: The used command is not allowed with this MySQL version,则我们先执行: mysql> SET GLOBAL local_infile = true;

  或者:mysql -u root -p --local-infile somedatabase

  另外插入本地文件之前,要插入的表必须先存在,这样就必须先创建表,但是如果表列数特别多,比如几百行,如何快速load呢?

 8)存储过程

  a)一种用来处理数据的方式,存储过程是一种没有返回值的函数

  b)存储过程和函数是事先经过编译并存储在数据库的一段SQL语句的集合,调用存储过程和函数可以简化开发人员的许多工作,减少时间在数据库和应用服务器直接的传输,能够提高数据处理的效率

  c)和函数的区别在于存储函数必须有返回值,而存储过程没有返回值,但是存储过程的参数可以使用IN,OUT,INOUT类型(可以通过OUT和INOUT向外传出数据),而存储函数的参数只能是IN类型的,如果有函数从其他类型的数据库迁移到MySQL,那么就可能需要将函数改为存储过程
  实例:向t_copy表插入100个用户(总不能调用insert into 100次吧?)
创建表
CREATE TABLE t_pro(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(50)
)CHARSET utf8;

  我们先插入三条数据:

insert into t_pro (id, NAME) VALUES(1, 'user1'),(2,'user2'),(,us3,'user3');

  

  定义存储过程:

DELIMITER $$
CREATE PROCEDURE pro_copy()
BEGIN
SET @i=4;
WHILE @i<=100 DO
INSERT INTO t_pro(NAME) VALUES(CONCAT("user",@i)); --拼接USER 和i值
SET @i=@i+1; --防止成为死循环
END WHILE; --结束循环
END $$ --结束自定义结束符
DELIMITER ;

  查询存储过程:

show create procedure pro_copy\G

  

  调用存储过程:

call pro_copy();

  再次查询表:

select * from t_pro;

  

 9)查询一个数据表的记录总数

  首先desc我们可以看看字段名,然后使用count来查询记录总数

select count(field_name) from table_name;

  

  

mysql的使用的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. Ubuntu 16.04配置Java Web开发环境

    说明:在Linux下无论是开发还是服务器配置,我个人建议都安装二进制包版本的,优点:配置清晰,容易发现问题,性能调优方便等.缺点:配置太复杂.而其余平台的建议是一键安装版本,毕竟都是用于测试的,不会实 ...

  2. BZOJ2040[2009国家集训队]拯救Protoss的故乡——模拟费用流+线段树+树链剖分

    题目描述 在星历2012年,星灵英雄Zeratul预测到他所在的Aiur行星在M天后会发生持续性暴雨灾害,尤其是他们的首都.而Zeratul作为星灵族的英雄,当然是要尽自己最大的努力帮助星灵族渡过这场 ...

  3. Cetos 中添加bbr服务

    说明:此方法只适用于KVM架构的,OpenVZ平台无法使用: 一:安装bbr服务: # wget --no-check-certificate https://github.com/teddysun/ ...

  4. B - I Hate It HDU - 1754 线段树区间最大值板子(单点更新,区间最大)

    第一次打 改了半天  各种小错误 难受 #include<cstdio> #include<iostream> using namespace std; +; int a[ma ...

  5. re 正则表达式

    简介: 1.一堆带有特殊意思的符号组成的式子它的作用 处理(匹配 查找 替换) 字符串 2.在爬虫中大量使用 其实有框架帮你封装了这些复杂的正则 3.在网站和手机APP注册功能中大量使用,例如判断你的 ...

  6. 关于2-sat的建图方法及解决方案

    转载增减: https://blog.csdn.net/qq_24451605/article/details/47126143 https://blog.csdn.net/u012915516/ar ...

  7. Vijos P1459 车展 (treap 任意区间中位数)

    题面: 描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,…,n,每辆车都有一个展台.刚开始每个展台都有一个唯一的高度h[i] ...

  8. 微信小程序API 文档快速参考索引

    内容那么多,这个页面到底做了什么? 第一:解决微信文档APi文档使用不便: 第二:解决了内容搜索与索引:—— 最好是写成全文索引文档,但是比较需要时间,而且更新是一件麻烦的事:所以以下是直接 连接官网 ...

  9. crawlspider_房多多

    框架写起来代码是真的简洁多了,还有就是在requests爬取房多多的时候,无法爬取所有地区,而这个就不受影响 代码请查看码云 运行结果:

  10. 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan)

    [BZOJ4331][JSOI2012]越狱老虎桥(Tarjan) 题面 BZOJ 然而BZOJ是权限题QwQ 洛谷 题解 先求出所有割边,那么显然要割掉一条割边. 如果要加入一条边,那么显然是把若干 ...