您的位置:首页 > 数据库 > MySQL

MySQL基本操作命令大全

2016-08-04 10:33 561 查看
yum list | grep mysql    //查看安装包

yum install -y mysql-server mysql mysql-devel   //安装

rpm -qi mysql-server  //查看安装的版本

/////////////////////////////////////////////////////////////////////

service mysqld start    //启动,第一次启动会进行初始化

mysqladmin -u root password 'mysql'   //给root设置密码

mysql -u root -p   //登陆 

quit   //退出

chkconfig mysqld on   //设置开机启动

vim /etc/my.cnf     //查看配置文件

cd /var/lib/mysql/     //保存数据文件的位置

vim /var/log/mysqld.log  //查看日志文件

mysql -h [ ip | localhost ] -u root -p   //连接 [ 远程 | 本地 ] 的mysql

//////////////////////////////////////////////////////////////////////////////////////

SELECT HOST,USER FROM mysql.user;    //查看mysql的用户

SELECT user();    查看当前登录的用户:

///////

CREATE USER 用户名 IDENTIFIED BY '密码';   //创建一个用户

举例:

CREATE USER wang IDENTFIED BY 'wang';     //创建一个用户,但还不能登陆。因为没有设置权限

///////

DROP USER 用户名;    //删除一个用户

举例:

DROP USER wang;

///////

RENAME USER 旧用户名 TO 新用户名;  //用户重命名

举例:

RENAME USER wang TO jian;

////////

SET PASSWORD = PASSWORD('新密码');   //修改当前用户密码

SET PASSWORD FOR 用户名 = PASSWORD('新密码');  //修改指定用户密码

//////////////////////////////////////////////////////////////////////////////////

MYSQL权限系统:

1.检查用户是否能够连接

2.检查用户是否具有所执行动作的权限

mysql授予权限可分为以下几个层级:

1.全局层级

2.数据库层级

3.表层级

4.列层级

5.子程序层级

mysql通过 GRANT 授予权限 , REVOKE 撤销权限

授予用户权限:

GRANT ALL PRIVILEGES ON 层级 to 用户名@主机 IDENTFIED BY '密码';

举例:

授予wang用户全局级全部权限:

GRANT ALL PRIVILEGES ON *.* to 'wang'@'%' IDENTFIED BY 'wang';

授予wang用户针对xsgl数据库全部权限:

GRANT ALL PRIVILEGES ON xsgl.* to 'wang'@'%' IDENTFIED BY 'wang';

删除一个用户权限:

REVOKE ALL PRIVILEGES FROM 用户名;

举例:

撤销wang用户的全部权限:

REVOKE ALL PRIVILEGES FROM wang;

////////////////////////////////////////////////////////

MYSQL连接认证

GRANT ALL PRIVILEGES ON *.* to 'wang'@'%' IDENTTIFIED BY 'wang';
                                     |             |                                  |
                        用户名      主机                           密码

这里的主机是指允许从那些主机进行连接,可以使用如下形式:

1.所有主机:  %

2.精确的主机名或IP地址: www.wang.com 或 192.168.1.1

3.使用“*”通配符:  *.wang.com

4.指定一个网段:  192.168.1.0/255.255.255.0

////////////////////////////////////////////////////////////////////////////////////////

SELECT VERSION();    //查询服务器版本

SELECT CURRENT_DATE;  //当前时间

SELECT VERSION(),CURRENT_DATE;  //联查

SELECT 4*4;     //计算

SHOW DATABASES;   //查看当前所有数据库

CREATE DATABASES xsg;   //创建数据库

DROP DATABASE xsgl;    //删除数据库

USE xsgl;     //切换当前数据库

SHOW TABLES;   //查看当前数据库中的表

SELECT * FROM student;   //查表

////////////////////////////////////////////////////////////////////////

数据类型:

integer(size), int(size),
smalint(size), tinyint(size)  
//存储整数数据

decimal(size,d), numeric(size,d)  
//存储浮点数据

char(size)           //存储固定长度字符串

varchar(size)       //存储可变长度字符串

date(yyyymmdd)          //存储日期

/////////////////////////////////////////////////////////////////////////////////////

CREATE TABLE table_name      //创建一个表

(
列名称1 数据类型,
列名称2 数据类型,
.....

);

举例:

CREATE TABLE course(
id int,
course_name varchar(50),
course_length  int(10),
teacher varchar(50),
category varchar(50)

);

[ DESCRIBE | DESC ] course;     //显示表的结构

DROP  TABLE course;   //删除表

ALTER TABLE course RENAME ic_course;    //修改表名

ALTER TABLE course ADD link varchar(100);   //向表中添加新的列

ALTER TABLE course DROP COLUMN link;       //删除一个列

ALTER TABLE course MODIFY teacher varchar(100);   //修改一个列的数据类型

ALTER TABLE course CHANGE COLUMN teacher lecture varchar(50);   //重命名一个列

/////////////////////////////////////////////////////////////////////////////////////////////

插入

INSERT INTO table_name VALUES(值1,值2,....);    //向表中插入一条记录

或:

INSERT INTO table_name(列1,列2) VALUES (值1,值2);  //指定列插入

举例:

INSERT INTO course VALUES(1,'C++',32,'wang','Basic');     //全部列插入

INSERT INTO course(id,course_name,category) VALUES(2,'MATH','Basic');  //指定列插入

/////////////////////////////////////////////////////////////////////////////////////////////////

查询

SELECT 列名称 FROM table_name WHERE 列 运算符 值;   

举例:

SELECT * FROM course;            //显示表中的全部数据

SELECT course_name,lecture FROM  course;   //显示表中的指定数据

SELECT * FROM course WHERE id = 1;      //显示指定列值的数据 

//////////////////////////////////////////////////////////////////////////////////////////////////////
运算符              功能

= 等于

<> 不等于

> 大于

< 小于

>= 大于等于

<= 小于等于

BETWEEN 在某范围内

LIKE 搜索某种模式     

/////////////////////////////////////////////////////////////////////////////////////////////

删除

DELETE FROM  tabel_name WHERE  列=值;             //删除某条记录

或:

DELETE * FROM table_name;                         //删除表中的所有数据

举例:

DELETE FROM course WHERE id = 1; 

//////////////////////////////////////////////////////////////////////////////////////////////////

更新某条记录的某个属性值

UPDATE table_name SET 列名称 = 新值 WHERE  列=值;  

举例:

UPDATE course SET lecture = 'jian' WHERE  id = 1;

////////////////////////////////////////////////////////////////////////////////////////

删除返回结果的重复项:

SELECT DISTINCT  列名称 FROM table_name;

举例:

SELECT DISTINCT lecture FROM  course;

//////////////////////////////////////////////////

WHERE 条件中使用逻辑组合:

SELECT * FROM 表名称 WHERE 条件1 AND  条件2;

SELECT * FROM 表名称 WHERE 条件1 OR   条件2;

举例:

SELECT * FROM course WHERE lecture = 'wang' AND category = 'Adv';

///////////////////////////////////////////////////

对查询结果按指定列进行排序:

SELECT * FROM 表名称 ORDER BY  列名称;    //升序

SELECT * FROM 表名称 ORDER BY 列名称 DESC;  //降序

举例:

SELECT * FROM course ORDER BY course_length;

SELECT * FROM course ORDER BY course_lenght DESC;

///////////////////////////////////////////////////

MYSQL简单的备份恢复:

备份:

mysqldump -u root -p 数据库名称 > 备份文件.sql;

举例:

mysqldump -u root -p xsgl > xsgl_db.sql;

恢复:

mysql -u root -p 数据库名称 < 备份文件.sql;

举例:

mysql -u root -p xsgl < xsgl_db.sql;

//////////////////////////////////////////////////

MYSQL数据库字符编码设置:

latin,Big5,GB2312,UTF8

编码影响两个方面:

1.数据库保存相同的内容所占的空间大小

2.数据库与客户端通信

MYSQL数据库的默认编码是:

character set : latin1

collation : latin1_swedish_ci

可以通过以下命令查看MYSQL支持的编码:

SHOW CHARACTER SET;

查看mysql当前使用的编码:

SHOW VARIABLES LIKE 'charater_set%';

SHOW VARIABLES LIKE 'collation%';

创建数据库的时候可以使用以下命令指定编码:

CREATE DATABASE xsgl
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

也可以通过一下命令修改一个数据库的编码:

ALTER DATABASE xsgl CHARACTER SET utf8 COLLATE utf8_general_ci;

或者可以通过修改MYSQL配置文件my.cnf设置mysql默认编码:

/etc/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

charater-set-server = utf8

修改之后重启mysql服务;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: