设为首页 收藏本站
查看: 724|回复: 0

[经验分享] Mysql基本命令总结

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-10-22 08:53:49 | 显示全部楼层 |阅读模式
一、用户管理类命令
创建用户
1
2
3
4
5
6
7
8
mysql> CREATE USER 'wlw'@'192.168.0.22' IDENTIFIED BY 'wlw';
mysql> use mysql;
mysql> SELECT User,Host,Password FROM user WHERE User='wlw';
+------+--------------+-------------------------------------------+
| User | Host         | Password                                  |
+------+--------------+-------------------------------------------+
| wlw  | 192.168.0.22 | *9A3A20395B8C68934181EE113D46B8056580904B |
+------+--------------+-------------------------------------------+




删除用户
1
2
3
4
mysql> DROP USER 'wlw'@'192.168.0.22';
mysql>  DROP USER ''@'localhost';
mysql>  DROP USER ''@'c6node1.wlw.com'
#刚安装的数据库存在两个匿名用户,建议删除




修改用户密码
1
2
3
4
5
6
7
mysql> SET PASSWORD FOR 'wlw'@'192.168.0.22' = PASSWORD('test');
mysql> SELECT User,Host,Password FROM user WHERE User='wlw';
+------+--------------+-------------------------------------------+
| User | Host         | Password                                  |
+------+--------------+-------------------------------------------+
| wlw  | 192.168.0.22 | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
+------+--------------+-------------------------------------------+




'wlw'@'192.168.0.22'授权可以管理Mysql中的所有数据库所有表。相当于管理员权限
1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'wlw'@'192.168.0.22';



'wlw'@'192.168.0.22'授权可以查询、插入、更新、删除 wlwdb数据库中所有表数据的权利
1
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON wlwdb.* TO 'wlw'@'192.168.0.22';



'wlw'@'192.168.0.22'授权创建、修改、删除 MySQL wlwdb数据库中所有数据表结构权限。
1
mysql> GRANT CREATE,ALTER,DROP ON wlwdb.* TO 'wlw'@'192.168.0.22';



创建wlw用户只能192.168.0.0/16网段访问并授权wlwdb数据库中所有表的所有权限

1
mysql> GRANT ALL PRIVILEGES ON wlwdb.* TO 'wlw'@'192.168.%.%' IDENTIFIED BY 'wlw';



注意:Mysql/MariaDB服务进程启动时会读取mysql库中的所有授权表至内存中;
(1) GRANT或REVOKE等执行权限操作会保存于表中,MariaDB的服务进程会自动重读授权表;
(2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表:
1
mysql> FLUSH PRIVILEGES;




查看授权信息
1
2
3
mysql> SHOW GRANTs FOR 'wlw'@'192.168.0.22';
GRANT ALL PRIVILEGES ON *.* TO 'wlw'@'192.168.0.22' IDENTIFIED BY PASSWORD '*
7EA8DEE3D73216C0A2468C8EC6E41A0733888AA3'




回收授权
1
2
3
4
5
mysql> REVOKE SELECT,INSERT,UPDATE,DELETE ON wlwdb.* FROM 'wlw'@'192.168.0.22';
mysql> SHOW GRANTs FOR 'wlw'@'192.168.0.22';
GRANT ALL PRIVILEGES ON *.* TO 'wlw'@'192.168.0.22' IDENTIFIED BY PASSWORD '*
7EA8DEE3D73216C0A2468C8EC6E41A0733888AA3'
GRANT CREATE, DROP, ALTER ON `wlwdb`.* TO 'wlw'@'192.168.0.22'




二、数据库管理类命令
创建数据库

1
mysql> CREATE DATABASE wlwdb;




删除数据库
1
mysql> DROP DATABASE wlwdb;




进入数据库,建立表和对表进行操作都需要先进入数据库,或者指定数据库
1
2
mysql> use wlwdb;
Database changed




查看可以管理的数据库
1
2
3
4
5
6
7
8
9
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| wlwdb              |
+--------------------+




三、表管理类命令

主键:能够惟一标识表中每一个记录的字段或字段的组合
主键约束:对一张表来讲,主键只能有一个。惟一,不能为NULL
惟一键约束:对一张表来讲 ,惟一键 可以有多个。惟一,可能为NULL
检查式约束:用户自定义有效取值范围。通常用布尔表达式
外键约束:被定义为外键的字段在参照其他表的时候不能填入其他表没有的信息。
表是由行和列组成的二维关系
字段:字段名,约束,字段类型

数据类型的作用:比较方式。存储空间(取值范围)。参与的运算
①、字符型
   不区分大小写:char(#)。varchar(#)可变化的字符。尽量使用char,虽然可能浪费空间,但是性能要好得多得多
   区分大小写:binary(#)。varbinary(#)
大段文本,基于对象的存储,对象存储在其他文件系统中,只存放对象的指针
   不区分大小写(text)
   区分大小写(blob)
②、数值型
   精确数值型
     整形 int:tinyint 1字节(-128~127)。smallint 2字节。mediumint 3字节。int 4字节。bigint 8字节。
     十进制 decimal(在金融领域中使用)
   近似数值型:单精度浮点型:float。双精度浮点型:double
   日期时间型:date 3字节。time 3字节。datetime 8字节。timestamp:时间戳( 1970年01月01日00时00分00秒
   布尔型:0,1,NULL
   内置类型(mysql独有的字符型):ENUM(枚举,只能填我们事先定义好的字符)。SET(集合,可以拼凑组合事先定义好的字符)


字段或字段类型还可以有修饰符
   NOT NULL 不能为空
   NULL 可以为空
   UNSIGNED 数值为无符号
   DEFAULT 给定默认值。字符要加引号,数字不能加引号
   AUTO_INCREMENT 自动增长类型的字段必须为主键或唯一键

   PRIMARY KEY:定义主键
   UNIQ KEY 唯一键


创建表
1
2
3
mysql> CREATE TABLE IF NOT EXISTS wlw_tb (Name char(30),Age tinyint,Gender ENUM('F','M'));
mysql> CREATE TABLE IF NOT EXISTS wlw_tb1(StuID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name char(30) NOT NULL,Age tinyint UNSIGNED NOT NULL,Gender ENUM('F','M') DEFAULT 'F');




删除表
1
mysql> DROP TABLE IF EXISTS wlw_tb;




查看表结构
1
2
3
4
5
6
7
8
9
mysql> DESC wlw_tb1;
+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| StuID  | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| Name   | char(30)            | NO   |     | NULL    |                |
| Age    | tinyint(3) unsigned | NO   |     | NULL    |                |
| Gender | enum('F','M')       | YES  |     | F       |                |
+--------+---------------------+------+-----+---------+----------------+




查看创建表所用的语句信息
1
2
3
4
5
6
7
8
mysql> SHOW CREATE TABLE wlw_tb1;
wlw_tb | CREATE TABLE `wlw_tb` (
  `StuID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Name` char(30) NOT NULL,
  `Age` tinyint(3) unsigned NOT NULL,
  `Gender` enum('F','M') DEFAULT 'F',
  PRIMARY KEY (`StuID`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1




查看表状态,\G 以行的形式列出来,当字段太多的时候可以使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> show table status like 'wlw_tb1'\G;
*************************** 1. row ***************************
           Name: wlw_tb1
         Engine: MyISAM
        Version: 10
     Row_format: Fixed
           Rows: 0
Avg_row_length: 0
    Data_length: 0
Max_data_length: 10414574138294271
   Index_length: 1024
      Data_free: 0
Auto_increment: 1
    Create_time: 2015-10-21 15:51:49
    Update_time: 2015-10-21 15:51:49
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
Create_options:
        Comment:




表中添加字段
1
ALTER TABLE wlw_tb1 ADD (test INT,test1 char(10));




表中删除字段
1
mysql> ALTER TABLE wlw_tb1 DROP test1;




表中修改字段,MODIFY和CHANGE修改语句有所不同
1
2
3
mysql> ALTER TABLE wlw_tb1 MODIFY test tinyint;
mysql> ALTER TABLE wlw_tb1 CHANGE test num tinyint;
#CHANGE关键字后的名称是要修改的列,然后指定新的定义,其中包括新的名称,一般用来修改字段名




重命名表
1
mysql> ALTER TABLE wlw_tb1 RENAME TO wlw_tb;




索引:索引是特殊数据结构;定义在查找时作为查找条件的字段;定义索引需要指定索引名称;
创建索引
1
mysql> CREATE INDEX wlw_index ON wlw_tb (Name,Age);




删除索引
1
mysql> DROP INDEX wlw_index ON wlw_tb;




查看定义的索引
1
mysql> SHOW INDEXES FROM wlw_tb\G




四、数据管理类命令

插入数据

1
mysql> INSERT INTO wlw_tb(Name,Age,Gender) VALUES('wlw',25,'F'),('wu',25,'M');




字段表示法:*,所有字段;as,字段别名,col1 AS alias1;

WHERE clase:操作符:=,>,<,>=,<=
       LIKE,通配符:%(任意长度的任意字符),_(匹配任意单个字符)
       RLIKE:正则表达式模式匹配
       组合条件:and。or。not
       IS NULL,IS NOT NULL

查询数据
1
2
3
4
5
6
mysql> SELECT Name,Age FROM wlw_tb WHERE Age >20 and Name='wlw';
+------+-----+
| Name | Age |
+------+-----+
| wlw  |  25 |
+------+-----+




更改数据
1
2
mysql> UPDATE wlw_tb SET Age = 24 WHERE Name='wlw';
#如果不做条件判断,则表中所有行的Age都会更改为24,谨慎操作




删除数据,删除操作都需要谨慎

1
2
DELETE FROM wlw_tb1 WHERE StuID = 2;             #删除WHERE限制的某行
DELETE FROM wlw_tb1;                             #清空表中的所有行




五、比较常用的一些系统查询命令
SELECT查询语句大小写非常重要,它决定你的查询缓存是否能被命中
SELECT * FROM user\g     当不知道结束符是什么的时候(;),用\g让他直接发往服务器端
SELECT  * FROM user\G     以行的形式列出来,但字段太多的时候可以使用
SELECT  * FROM user\c      终止命令执行,相当于bash中的CTRL+C
SELECT  current_time();     mysql提供的内置函数可供调用返回结果,调用时间,查看当前表
SELECT  database();    查看当前所在哪个数据库下
SELECT  user();       查看当前所在哪个用户下

SHOW {GLOBAL | SESSION} VARIABLES [LIKE clause];
SHOW VARIABLES LIKE 'data%'\G     查看数据库存放位置
SHOW variables            查看服务器变量
SHOW global variables         查看全局变量
SHOW session variables         查看会话的变量

MySQL服务器运行中的状态是通过状态变量输出的
SHOW status              服务器运行状态
SHOW STATUS LIKE 'Com_select'     查看运行的查看语句次数
SHOW global status            查看全局变量
SHOW session status             查看会话的变量



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-129375-1-1.html 上篇帖子: 用rpm安装mysql5.6,C++如何连接上mysql,/usr/lib -lmysqlclient找不到的解决办法 下篇帖子: 数据导数据工具xtrabackup之xtrabackup_binlog_pos_innodb和xtrabackup_binlog_info区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表