原标题:MySQL常用操作及基础知识

1、启动和关闭mysql服务器:

service mysql start

service mysql stop

2、重启MySQL服务:

service mysql restart

3、确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:

sudo netstat -tap | grep mysql

4、进入mysql shell界面:

mysql -u root -p

5、连接MYSQL:

格式: mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)

1、连接到本机上的MYSQL

找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了.

2、连接到远程主机上的MYSQL

假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:

mysql -h10.0.0.1 -uroot -p123

6、退出MYSQL命令 :

exit (回车)

7、查询mysql正在执行的进程:

show processlist;

8、查看用户:

usemysql;

select * from user;

9、新建用户:

CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';

user_name:要创建用户的名字。

host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’

password:新创建用户的登陆数据库密码,如果没密码可以不写。

例:

CREATE USER ‘aaa’@‘localhost’ IDENTIFED BY ‘123456’; //表示创建的新用户,名为aaa,这个新用户密码为123456,

只允许本机登陆

CREATE USER 'bbb'@'%' IDENTIFED BY '123456';//表示新创建的用户,名为bbb,这个用户密码为123456,

可以从其他电脑远程登陆mysql所在服务器

CREATE USER ‘ccc’@‘%’ ;//表示新创建的用户ccc,没有密码,可以从其他电脑远程登陆mysql服务器

10、授权用户:

GRANT privileges ON databasename.tablename TO ‘username’@‘host’

privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL

databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 * . *,*是一个通配符,表示全部。

’username‘@‘host’:表示授权给哪个用户。

例如:

grant all on *.* to 'test'@'localhost'; #给test用户授权,让test用户能给所有库所有表实行所有的权力

GRANT select,insert ON zje.zje TO ‘aaa’@‘%’;//表示给用户aaa授权,让aaa能给zje库中的zje表 实行 insert

和 select。

注意:

用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上 WITH GRANT OPTION

如: GRANT ALL ON *.* TO ’aaa‘@'%' WITH GRANT OPTION;

11、限制ip登录:

例如,设置mysql只有172.29.8.72和192.168.3.39可以连接上

GRANT ALL ON *.* TO 'username'@'172.29.8.72' IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL ON *.* TO 'username'@'192.168.3.39' IDENTIFIED BY 'password' WITH GRANT OPTION;

flush privileges;

12、删除用户:

命令:DROP USER ‘user_name’@‘host’

例:

drop user 'test'@'%'; #删除用户test

13、显示数据表模式:

use 数据库名;

show columns from 表名;

14、mysql数据类型:

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

MySQL支持所有标准SQL数值数据类型。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT

15、插入数据:

INSERT INTO table_name ( field1, field2,...fieldN )

VALUES

( value1, value2,...valueN );

如果数据是字符型,必须使用单引号或者双引号,如:“value”。

16、查询数据:

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N][ OFFSET M]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

SELECT 命令可以读取一条或者多条记录。

你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

你可以使用 WHERE 语句来包含任何条件。

你可以使用 LIMIT 属性来设定返回的记录数。

你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

17、limit和offset用法

mysql里分页一般用limit来实现

1、select* from article LIMIT 1,3

2、select * from article LIMIT 3 OFFSET 1

上面两种写法都表示取2,3,4三条条数据

当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量,例如

select* from article LIMIT 1,3 就是跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据

当 limit后面跟一个参数的时候,该参数表示要取的数据的数量

例如 select* from article LIMIT 3 表示直接取前三条数据,类似sqlserver里的top语法。

当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。

例如select * from article LIMIT 3 OFFSET 1 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据

18、更新数据:

UPDATE table_name SET field1=new-value1, field2=new-value2

[WHERE Clause]

你可以同时更新一个或多个字段。

你可以在 WHERE 子句中指定任何条件。

你可以在一个单独表中同时更新数据。

19、模糊查询:

select c field1,field2,…fieldN

from table_name

where field1 like condition1 [and[or]] field2=‘somevalue’;

通配符的分类:

%百分号通配符: 表示任何字符出现任意次数 (可以是0次).

_下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。

20、排序

SELECT field1, field2,...fieldN FROM table_name1, table_name2...

ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

可以添加 WHERE…LIKE 子句来设置条件

21、分组

GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG等函数。

SELECT column_name, function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

例子:

SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;

22、null值处理

MySQL 中处理 NULL 使用 IS NULL 、 IS NOT NULL 、<=>运算符。

IS NULL: 当列的值是 NULL,此运算符返回 true。

IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。

<=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。

23、in

in常用于where表达式中,其作用是查询某个范围内的数据。

用法:select * from table where field in (value1,value2,value3,…);

例子:

查询book表中id为2和4的所有数据:

select * from book where id in(2,4)

24、not in

not in与in作用相反,用法和示例如下:

用法:select * from where field not in (value1,value2,value3,…);

25、exists

本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:

SELECT title

FROM titles

WHERE EXISTS

(SELECT *

FROM publishers

WHERE pub_id = titles.pub_id

AND city LIKE 'B%')

用IN:

SELECT title

FROM titles

WHERE pub_id IN

(SELECT pub_id

FROM publishers

WHERE city LIKE 'B%')

26、导入数据:

mysql 命令导入

使用 mysql 命令导入语法格式为:

mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql)

实例:

# mysql -uroot -p123456 < runoob.sql

以上命令将将备份的整个数据库 runoob.sql 导入。

source 命令导入

source 命令导入数据库需要先登录到数库终端:

mysql> create database abc; # 创建数据库

mysql> useabc; # 使用已创建的数据库

mysql> set names utf8; # 设置编码

mysql> source /home/abc/abc.sql # 导入备份数据库

使用 LOAD DATA 导入数据

MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

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

你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。

使用 mysqlimport 导入数据

mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。

从文件 dump.txt 中将数据导入到 mytbl 数据表中, 可以使用以下命令:

$ mysqlimport -u root -p --local mytbl dump.txt

password *****

27、导出数据:

使用SELECT…INTO OUTFILE语句来简单的导出数据到文本文件上。

#将数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中:

mysql> SELECT * FROM runoob_tbl

-> INTO OUTFILE '/tmp/runoob.txt';

#通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'

-> FIELDS TERMINATED BY ',' ENCLOSED BY '"'

-> LINES TERMINATED BY '\r\n';

#生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用。

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY '\n'

FROM test_table;

SELECT … INTO OUTFILE 语句有以下属性:

LOAD DATA INFILE是SELECT … INTO

OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT … INTO

OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。

SELECT…INTO OUTFILE

'file_name’形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法。

输出不能是一个已存在的文件。防止文件数据被篡改。

你需要有一个登陆服务器的账号来检索文件。否则 SELECT … INTO OUTFILE 不会起任何作用。

导出表作为原始数据

mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。

使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。

以下实例将数据表 runoob_tbl 导出到 /tmp 目录中:

$ mysqldump -u root -p --no-create-info

–tab=/tmp RUNOOB runoob_tbl

password ******

导出 SQL 格式的数据

导出 SQL 格式的数据到指定文件,如下所示:

$ mysqldump -u root -p RUNOOB runoob_tbl > dump.txt

password ******

如果你需要将数据拷贝至其他的 MySQL 服务器上, 你可以在 mysqldump 命令中指定数据库名及数据表。

在源主机上执行以下命令,将数据备份至 dump.txt 文件中:

$ mysqldump -u root -p database_name table_name > dump.txt

password *****

如果完整备份数据库,则无需使用特定的表名称。

如果你需要将备份的数据库导入到MySQL服务器中,可以使用以下命令,使用以下命令你需要确认数据库已经创建:

$ mysql -u root -p database_name < dump.txt

password *****

你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:

$ mysqldump -u root -p database_name

| mysql -h other-host.com database_name

以上命令中使用了管道来将导出的数据导入到指定的远程主机上。

28、 MySQL 事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

事务用来管理 insert,update,delete 语句

一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

MYSQL 事务处理主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现

BEGIN 开始一个事务

ROLLBACK 事务回滚

COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:

SET AUTOCOMMIT=0 禁止自动提交

SET AUTOCOMMIT=1 开启自动提交返回搜狐,查看更多

责任编辑:

mysql中需要提交的操作_MySQL常用操作及基础知识相关推荐

  1. mysql一些常用操作_MySQL常用操作

    库的基本结构:库 --> 表 --> 行 --> 字段 1.查看有哪些库 mysql> show databases; 2.进入某个库mysql> use discuz ...

  2. mysql中一般用什么字符集_MySql常用字符集

    常用字符集 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数. 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,1B(byte,字节) ...

  3. 常用的传感器基础知识扫盲

    传感器的定义是:"能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成".传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息, ...

  4. mysql cascade的用法_MySQL常用操作笔记

    1.创建root用户的密码 mysqladmin -u root password "new_password"; 2.连接到Mysql服务器 mysql -u root -p 1 ...

  5. mysql操作总结_mysql常用操作总结大全

    一.总结一下: 1.Linux系统下启动MySQL的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mys ...

  6. mysql中distinct走索引吗_MySQL中索引优化distinct语句及distinct的多字段操作

    MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用 ...

  7. mysql中存储引擎是啥_mysql中的存储引擎

    mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. ...

  8. mysql中只运行一部分数据_MySQL(一)——MySQL基础和部分面试题

    MySQL基础: 数据库的创建与删除 CREATE DATABASE ;//创建数据库 DROP DATABASE ;//删除数据库 数据库表的创建与删除 CREATE TABLE (column_n ...

  9. mysql中怎么查询单行单列_MySql中的子查询-结果单行单列

    MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...

最新文章

  1. iPhone音频播放后台控制
  2. 使用idea编写代码作为生产者,Kafka接收其发来的信息【小案例】(一)
  3. As Simple as One and Two(思维)
  4. vue图片懒加载插件vue-lazyload
  5. bootcmd 和bootargs
  6. Silverlight 全屏显示
  7. apache httpclient 工具类_使用HttpClient进行服务的远程调用
  8. 手撕前端面试之经典排序算法
  9. js打印到控制台_前端JS,8个问题测试你真的懂吗(高频面试题,附答案)
  10. 2022最新短视频去水印解析API接口支持各大小程序平台分享
  11. 文件与Base64的互转
  12. CAD的dwg格式转换为PDF
  13. 2021-04-11
  14. Amaze UI貌似挂了。。。附上amaze UI框架的图标
  15. 【美团面经】后台研发一面
  16. rk3399 typec鼠标及滑鼠问题
  17. csv文件用excel打开乱码问题
  18. Java实现QQ邮件发送
  19. Web测试所涉及的主要测试点
  20. mySQL 事物提交成功不等于数据保存成功

热门文章

  1. 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素
  2. 多径传播matlab仿真·信号分析处理
  3. python的盈利模式_八大盈利模式是什么?一篇文教会你盈利模式分析!
  4. SAP UI5 应用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)试读版
  5. SAP 电商云 Spartacus Maintenance branch
  6. Angular单元测试遇到的错误消息:Uncaught Error - Cannot find module tslib
  7. 如何处理Angular应用的错误消息: No pipe found with name async
  8. service请求处理逻辑
  9. sap.ui.core.ComponentContainer
  10. How to use price determination in Quotation scenario