Mysql安装方式
MySQL安装方式有三种,一种是RPM方式安装,一种是源码编译安装,一种是通用二进制格式包安装。
RPM方式安装,可以直接使用yum命令安装或者下载RPM包后再安装
yum安装命令:
yum -y install mysql-server
系统会自动解决依赖关系,并将mysql客户端也安装上。
mysql交互模式中的命令类别:
客户端命令:在客户端执行的命令
服务器命令:在服务器上执行,并将结果返回给客户端。必须使用语句结束符,默认为封号“;”
MySQL数据库:
<a href="http://s1.51cto.com/wyfs02/M00/83/A0/wKiom1d4vJSyirHlAACTLBqTWRg313.png" target="_blank"></a>
mysql安装完成后,默认有3个数据库
information_schema:是mysql运行过程中位于内存中的信息,保存mysql运行时数据,只有mysql启动时才有数据,平时是空的。
test:测试时才用到的数据库
mysql:mysql 的数据库
MySQL数据库目录:
1
2
<code>[root@host2 ~]</code><code># ls /var/lib/mysql/</code>
<code>ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock </code><code>test</code>
可以看到没有information_schema数据库,因为它是存在内存中的。
MySQL常用命令:
DDL:定义数据库对象:
CREATE:
ALTER:
DROP:
DML:数据操纵语言
INSERT
UPDATE
DELETE
DCL数据控制语言
GRANT:
REVOKE:
创建数据库:
CREATE DATABASE db_name;
CREATE DATABASES IF NOT EXISTS testdb;
3
4
5
6
7
8
9
10
11
12
<code>mysql> CREATE DATABASE test_db;</code>
<code>Query OK, 1 row affected (0.00 sec)</code>
<code>mysql> SHOW DATABASES;</code>
<code>+--------------------+</code>
<code>| Database |</code>
<code>| information_schema |</code>
<code>| mysql |</code>
<code>| </code><code>test</code> <code>|</code>
<code>| test_db |</code>
<code>4 rows </code><code>in</code> <code>set</code> <code>(0.01 sec)</code>
删除数据库:
DROP DATABASE db_name;
<code>mysql> DROP DATABASE test_db;</code>
<code>Query OK, 0 rows affected (0.00 sec)</code>
<code>3 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
创建表:
CREATE TABLE tb_name(col1,col2,...) col1,col2为字段名
注意:表是依赖于数据库的,所以在创建表之前,一定要指定默认数据库,使用命令
USER DATABASE; 来指定数据库
创建一个表,名为student,包含三个字段,Name、Age、Gender
<code>mysql> CREATE TABLE students(Name CHAR(20) NOT NULL, Age TINYINT UNSIGNED,Gender CHAR(1) NOT NULL);</code>
<code>Query OK, 0 rows affected (0.01 sec)</code>
<code>mysql> SHOW TABLES;</code>
<code>+-------------------+</code>
<code>| Tables_in_test_db |</code>
<code>| students |</code>
<code>1 row </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
查看某个数据库中的表:
SHOW TABLES FROM db_name;
查看表结构:
DESC table_name;
<code>mysql> DESC students;</code>
<code>+--------+---------------------+------+-----+---------+-------+</code>
<code>| Field | Type | Null | Key | Default | Extra |</code>
<code>| Name | char(20) | NO | | NULL | |</code>
<code>| Age | tinyint(3) unsigned | YES | | NULL | |</code>
<code>| Gender | char(1) | NO | | NULL | |</code>
删除表:
DROP TABLE tb_name;
修改表:
ALTER TABLE tb_name;
MODIFY:修改某个字段,修改字段属性,字段名不改
CHANGE:改变某个字段,改变字段名称
ADD:添加字段
DROP:删除字段
可以通过help命令查询帮助信息:
help CREATE TABLE;
增加一个字段
例如:修改前面创建的student表,增加一个字段课程course,
13
<code>mysql> ALTER TABLE students ADD course VARCHAR(100);</code>
<code>Records: 0 Duplicates: 0 Warnings: 0</code>
<code>| course | varchar(100) | YES | | NULL | |</code>
<code>4 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
修改字段名称,例如将上面添加的course字段名改为Course
<code>mysql> ALTER TABLE students CHANGE course Course VARCHAR(100);</code>
<code>| Course | varchar(100) | YES | | NULL | |</code>
删除一个字段:
DROP col_name;
插入数据:
<code>INSERT INTO tb_name (col1,col2,...) VALUES|VALUE (</code><code>'STRING'</code><code>,NUM...);</code>
上面命令意思是:往某个表中插入数据,字段名为col1,col2,... 插入的值为字符串则,用引号引起来,如果为数值,则直接用数字。如果每一个字段都给值,则不用写字段名称
例如:在students表中插入两条数据,张三和李四
mysql> INSERT INTO students (Name,Gender) VALUE ('ZhangSan','M'),('LiSi','F');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
查看数据
<code>mysql> SELECT * FROM students;</code>
<code>+----------+------+--------+--------+</code>
<code>| Name | Age | Gender | Course |</code>
<code>| ZhangSan | NULL | M | NULL |</code>
<code>| LiSi | NULL | F | NULL |</code>
<code>2 rows </code><code>in</code> <code>set</code> <code>(0.01 sec)</code>
插入一个用户,所有字段都有值:
注意,所有字段都有值,就不需要指定字段名
<code>mysql> INSERT INTO students VALUES (</code><code>'ZengChengpeng'</code><code>,28,</code><code>'M'</code><code>,</code><code>'IT'</code><code>);</code>
<code>mysql> SELECT * FROM students WHERE Name=</code><code>'ZengChengpeng'</code><code>;</code>
<code>+---------------+------+--------+--------+</code>
<code>| Name | Age | Gender | Course |</code>
<code>| ZengChengpeng | 28 | M | IT |</code>
修改数据:
UPDATE tb_name SET column=value WHERE 条件
例如:将ZengChengpeng的Course课程名称改为Develop
<code>mysql> UPDATE students SET Course=</code><code>'Develop'</code> <code>WHERE Name=</code><code>'ZengChengpeng'</code><code>;</code>
<code>Rows matched: 1 Changed: 1 Warnings: 0</code>
<code>+---------------+------+--------+---------+</code>
<code>| Name | Age | Gender | Course |</code>
<code>| ZengChengpeng | 28 | M | Develop |</code>
SELETE语句:
selete语句分为两种情况,
<code>选择:指定以某字段作为搜索码,做逻辑比较,筛选符合条件的行。WHERE指定选择条件</code>
<code> </code>
<code>投影:指定以某字段作为搜索码,做逻辑比较,筛选符合条件的字段。</code>
<code>mysql> SELECT Name,Course FROM students WHERE Gender=</code><code>'M'</code><code>; </code>
<code>+---------------+---------+</code>
<code>| Name | Course |</code>
<code>| ZhangSan | NULL |</code>
<code>| ZengChengpeng | Develop |</code>
删除数据:
DELECT FROM tb_name WHERE 条件;
创建用户:
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD';
删除用户:
DROP USER 'USERNAME'@'HOST';
HOST:
IP:
HOSTNAME:
NETWORK:
通配符: 通配符用引号引起来
_:下划线匹配任意单个字符:例如172.16.0._
%:匹配任意字符:
jerry@'%'
用户权限:
添加权限:
GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];
pri1 pri2表示权限名称,所有权限用ALL PRIVILEGES表示
取消权限:
REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
创建用户示例:
<code>mysql> CREATE USER </code><code>'jerry'</code><code>@</code><code>'%'</code> <code>IDENTIFIED BY </code><code>'jerry'</code><code>;</code>
查看用户授权:
SHOW GRANTS FOR 'USERNAME'@'HOST';
<code>mysql> SHOW GRANTS FOR jerry@</code><code>'%'</code><code>;</code>
<code>+------------------------------------------------------------------------------------------------------+</code>
<code>| Grants </code><code>for</code> <code>jerry@% |</code>
<code>| GRANT USAGE ON *.* TO </code><code>'jerry'</code><code>@</code><code>'%'</code> <code>IDENTIFIED BY PASSWORD </code><code>'*09FB9E6E2AA0750E9D8A8D22B6AA8D86C85BF3D0'</code> <code>|</code>
示例:给jerry用户test_db这个数据库所有表的所有权限
<code>mysql> GRANT ALL PRIVILEGES ON test_db.* TO </code><code>'jerry'</code><code>@</code><code>'%'</code><code>;</code>
<code>mysql> SHOW GRANTS FOR </code><code>'jerry'</code><code>@</code><code>'%'</code><code>;</code>
<code>| GRANT ALL PRIVILEGES ON `test_db`.* TO </code><code>'jerry'</code><code>@</code><code>'%'</code> <code>|</code>
<code>2 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
取消所有权限:
<code>mysql> REVOKE ALL PRIVILEGES ON test_db.* FROM jerry@</code><code>'%'</code><code>;</code>
<code>mysql> SHOW GRANTS FOR </code><code>'jerry'</code><code>@</code><code>'%'</code><code>; </code>
本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1795352,如需转载请自行联系原作者