mysql的使用
数据库操作:
这里我们先修改一下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语句的集合,调用存储过程和函数可以简化开发人员的许多工作,减少时间在数据库和应用服务器直接的传输,能够提高数据处理的效率
创建表
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的使用的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
随机推荐
- CentOS安装GIt、上传项目到git仓库
上传项目 登录服务器后安装git yum install git 新建文件夹(仓库) mkdir *.git 初始化仓库 git init --bare *.git 在本地初始化仓库 git init ...
- BZOJ1208[HNOI2004]宠物收养场——treap
凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...
- Sublime Text ——3200破解补丁
声明 该资源来源于网络,只为学习交流使用,侵权联系删除.长期使用和觉得sublime text 不错的话,还望购买授权码,多多支持正版!!! 重要的事情说三遍 请支持正版!!! 请支持正版!!! 请支 ...
- B - I Hate It HDU - 1754 线段树区间最大值板子(单点更新,区间最大)
第一次打 改了半天 各种小错误 难受 #include<cstdio> #include<iostream> using namespace std; +; int a[ma ...
- Android路径之Javascript基础-笔记
一.Javascript概述(知道) a.一种基于对象和事件驱动的脚本语言 b.作用: 给页面添加动态效果 c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt. d.特 ...
- IDEA+Maven+多个Module模块(创建多模块SpringBoot整合项目)
最近在学习springboot,先从创建项目开始,一般项目都是一个项目下会有多个模块,这里先创建一个最简单的实例,一个项目下有一个springboot模块项目提供web服务,引用另一个java项目(相 ...
- python中的replace()方法的使用
python中的replace()方法的使用 需求是这样的:需要将字符串的某些字符替换成其他字符 str.replace(old,new,max) 第一个参数是要进行更换的旧字符,第二个参数是新的子串 ...
- Apache Ignite上的TensorFlow
任何深度学习都是从数据开始的,这是关键点.没有数据,就无法训练模型,也无法评估模型质量,更无法做出预测,因此,数据源非常重要.在做研究.构建新的神经网络架构.以及做实验时,会习惯于使用最简单的本地数据 ...
- 【Luogu4916】魔力环(Burnside引理,组合计数)
考虑\(Burside\)引理,设\(f(x)\)表示置换拆成循环的个数为\(x\)时的答案,那么最终的结果就是\(\displaystyle \frac{\sum_{i=1}^n f(gcd(i,n ...
- OpenLayers学习笔记(四)— QML显示html中openlayers地图的坐标
GitHub:八至 作者:狐狸家的鱼 本文链接:实现QML中显示html中地图的坐标 如何QML与HTML通信已经在这篇文章 QML与HTML通信之画图 详细讲述了 1.HTML var coord; ...