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所在的文件 ...
随机推荐
- 进程间通讯:有名管道FIFO
接收端: #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #include < ...
- Android短信大全
使用ListView实现点击条目跳转短信界面,并将内容传至短信页面: 代码如下:activity_main.xml: <?xml version="1.0" encoding ...
- [HDU2065] "红色病毒"问题
传送门:>Here< 题意:现在有一长度为N的字符串,满足一下条件: (1) 字符串仅由A,B,C,D四个字母组成; (2) A出现偶数次(也可以不出现); (3) C出现偶数次(也可以不 ...
- centos6.8下安装破解quartus prime16.0以及modelsim ae安装
前言 装逼使用 流程 安装modelsim: 1.modelsim ae在linux下是32位的,对于64位系统需要安装32位库:yum install xulrunner.i686 2.给予权限: ...
- MySql的CURRENT_TIMESTAMP
在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间 ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候, ...
- 我的代码库-Java8实现FTP与SFTP文件上传下载
有网上的代码,也有自己的理解,代码备份 一般连接windows服务器使用FTP,连接linux服务器使用SFTP.linux都是通过SFTP上传文件,不需要额外安装,非要使用FTP的话,还得安装FTP ...
- 【CodeForces 717C】Potions Homework
BUPT 2017 summer training (for 16) #1G 题意 每个人有一个懒惰值,每个任务有个难度,一开始每个人的任务和懒惰值都为\(a_i\),完成任务时间是懒惰值乘以难度,现 ...
- Haproxy 优化
Haproxy 自身健康检查vi /usr/local/haproxy/sbin/check_haproxy.sh #!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/b ...
- 用keras实现基本的回归问题
数据集介绍 共有506个样本,拆分为404个训练样本和102个测试样本 该数据集包含 13 个不同的特征: 人均犯罪率. 占地面积超过 25000 平方英尺的住宅用地所占的比例. 非零售商业用地所占的 ...
- hdu 1238 Substrings(kmp+暴力枚举)
Problem Description You are given a number of case-sensitive strings of alphabetic characters, find ...