MySQL数据库基本语句

MySQL数据库系统是一个典型的C/S(客户端/服务器)架构的应用,要访问MySQL数据库需要使用专门的客户端软件。在Linux系统中,最简单、易用的MySQL客户端软件是其自带的mysql命令工具。

通过CentOS 7 编译安装MySQL数据库系统可以了解并掌握MySQL数据库的安装方式,作为一名合格的运维工程师,MySQL数据库的基本操作也是必须要掌握的。

MySQL是一套数据库管理系统,在每台MySQL服务器中,均支持运行多个库,每个库相当于一个容器,存放着许多表,表中的每行记录包含一条具体的数据关系信息,称为数据记录。如图:

登录到数据库
经过安装后的初始化过程,MySQL数据库的默认管理用户名为root,密码为空。

[[email protected] ~]# mysql -u root

mysql>           //表示登录成功

登录mysql选项的作用:
-u:表示用于指定认证用户;
-p:进行密码校验(没有密码需省略);
-h:远程登录时,需指定IP地址;
-P:远程登录是需指定端口号;

执行MySQL操作语句
MySQL操作语句与SQL server语句语法一模一样,对SQL语句不太了解的朋友可以参考博文SQL Server 语句操纵数据库。在MySQL数据库中,“;”表示结束,输入时不区分大小写。

mysql> show databases;                                      //查看当前服务器中有哪些数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql;                                  //切换到mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;                             //查看当前使用的库中有哪些表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
28 rows in set (0.00 sec)
mysql> select database();                         //查看当前处于哪个数据库
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”“.myd”和“.myi”。
.frm:表结构;
.myd:存放数据;
.myi:表中索引信息。

查看表结构
DESCRIBE语句:用于显示表的结构,即组成表的各字段(列)的信息,需要指定“库名.表名”作为参数。

mysql> desc mysql.user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(16)                          | NO   | PRI |                       |       |
| Password               | char(41)                          | NO   |     |                       |       |
| Select_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N                     |       |
| Insert_priv            | enum(‘N‘,‘Y‘)                     | NO   |     | N
                                               ………………    //省略部分内容

desc mysql.user;和describe user;作用一样。

 mysql> create database auth;                            //创建数据库名为auth
Query OK, 1 row affected (0.00 sec)

mysql> use auth;                                                 //切换到auth数据库
Database changed

mysql> create table test (id int,name varchar(10));        //在auth数据库创建test表(表列的参数自定义)
Query OK, 0 rows affected (0.10 sec)

mysql> insert into test values (1,‘xioazhang‘);              //向表中插入数据
Query OK, 1 row affected (0.00 sec)

mysql> alter table test add comment varchar(100) null;         //向表中添加一列
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values (1,‘xiaozhang‘,‘renshi‘);               //向表中插入一条数据记录
Query OK, 1 row affected (0.00 sec)

mysql> select * from auth.test;                                     //查看表中内容
+------+-----------+---------+
| id   | name      | comment |
+------+-----------+---------+
|    1 | xiaozhang | renshi  |
+------+-----------+---------+
1 row in set (0.00 sec)

mysql> update auth.test  set id=10
    -> where name=‘xiaozhang‘;                                       //修改表中数据,小张的ID改为10
Query OK, 1 row affected (0.00 sec)

mysql> select * from auth.test;                                      //再次查看表中内容
+------+-----------+---------+
| id   | name      | comment |
+------+-----------+---------+
|   10 | xiaozhang | renshi  |
+------+-----------+---------+
1 row in set (0.00 sec)

mysql> delete from auth.test
    -> where id=10;                                                      //删除表中ID等于10的用户
Query OK, 1 row affected (0.00 sec)

mysql> select * from auth.test;                                //再次查看表中已没有数据
Empty set (0.00 sec)

mysql> drop table auth.test;                                    //删除auth数据库中test表
Query OK, 0 rows affected (0.00 sec)

mysql> drop database auth;                                   //删除数据库auth
Query OK, 0 rows affected (0.00 sec)

数据库用户授权

GRANT语句:专门用于设置数据库用户的访问权限。当指定用户不存在时,GRANT语句将会自动创建新的用户;如果用户已经存在,则GRANT语句用于修改用户信息。
使用GRANT语句时,需要注意的事项:

mysql> grant all on mysql.* to ‘xiaoli‘@‘%‘ identified by ‘123456‘;
//创建名为xiaoli的数据库用户,密码为123456,并允许其在任何客户端登录访问,对mysql数据库有绝对权限。
Query OK, 0 rows affected (0.00 sec)

其中%表示所有,localhost表示本机。

mysql> show grants for ‘xiaoli‘@‘%‘;                            //查看用户xiaoli在所有客户端的权限
+-------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘xiaoli‘@‘%‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |
| GRANT ALL PRIVILEGES ON `mysql`.* TO ‘xiaoli‘@‘%‘                                                     |
+-------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

另一台客户机使用xiaoli访问
前提是CentOS 7客户端需安装MariaDB工具集,否则没有办法使用mysql工具。

[[email protected] ~]# rpm -ivh /mnt/Packages/mariadb-5.5.52-1.el7.x86_64.rpm 

[[email protected] ~]# mysql -u xiaoli -p -h 192.168.1.1
Enter password:
MySQL [(none)]>             //这样的标志表示客户端登录成功

撤销用户权限

mysql> revoke all on mysql.* from ‘xiaoli‘@‘%‘;       //撤销xiaoli对mysql数据库的所有权限
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for ‘xiaoli‘@‘%‘;                      //再次查看权限列表,确认用户已无权限
+-------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘xiaoli‘@‘%‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |
+-------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> exit                       //退出MySQL数据库系统
Bye

掌握上述MYsql管理命令的使用,已经可以满足大多数网络管理员(非专业数据库管理员)的工作需要。

原文地址:https://blog.51cto.com/14157628/2422015

时间: 2024-11-07 23:17:38

MySQL数据库基本语句的相关文章

mysql数据库sql语句调优 、

mysql数据库sql语句调优 . 索引设计原则: 索引列一般为where子句中的列或连接字句中的列 尽量不对基数小的列做索引,如性别列 尽可能使用短索引:如果对字符列索引尽量指定最小长度. (short Keys are better,Integer best) create index cityname on city(city(10)); 复合索引前缀特性,索引的顺序很重要. key(a,b,c)联合索引: 可以走索引的组合:key(a),key(a,b ),key(a,b,c) 下列索引

Mysql 数据库 操作语句

Mysql 数据库 操作语句 mysql 格式语句规范如何登陆你的数据库?举例! 如果你的是 编译安装的花 那就得去编译安装后的那个目录中去,我的是安装到/usr/local/mysql 下 登陆数据库: cd /usr/local/mysql bin/mysql -u root -p 然后输入密码mysql-> show databases: 察看数据库记住每执行一句要带: 一.mysql常用语句创建,删除和最基本查询: 显示数据库    mysql->showdatabases; 创建数据

常用的Mysql数据库操作语句大全

零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PASSWORD('fdddfd'); 3.权限管理 >SHOW GRANTS FOR name;    //查看name用户权限 >GRANT SELECT ON db_name.* TO name; //给name用户db_name数据库的所有权限 >REVOKE SELECT ON db_n

mysql数据库常用语句

关于mysql数据库常用命令的整理: 一:对于数据库的操作 show databases;显示当前用户下所有的数据库名称 use database_name;进入当前数据库 create database database_name;创建一个数据库 drop database database_name;删除一个数据库 二:对表的操作 DDL操作:数据定义语言 create table table_name( id int primary key auto_increment, name var

使用MySQL数据库 SQL语句

1.查看当前服务器数据库中有哪些库? SHOW   DATABASES;   ###查看有哪些库 2.查看当前使用的库有哪些表? USE +要查询的库名 SHOW   TABLES; ###查询库中有哪些表 3.查看标的结构? USE  +要使用的库名 DESCRIBE  +表名 ###查看表结构 4.创建新的库? CREATE   DATABASE +表名  ###创建库 5.创建新的表 CREATE   TABLE +表名 (字段1名称   类型 ,字段2名称   类型,...)  ###创

MySQL数据库sql语句的一些简单优化

1.查询条件的先后顺序 有多个查询条件时,要把效率高能更精确筛选记录的条件放在后边.因为MySQL解析sql语句是从后往前的(不知是否准确). 例: select a.*,b.* from UsrInf a,OrgInf b where LogNam='njnydx9' and b.OrgId=a.blnorg SQL语句从后往前解析,把LogNam='njnydx9'换到后边,避免了更多结果集的连接,提高了执行效率 2.in的效率问题 看网上都说in相当于多个条件的or.实际测试后发现in的执

mysql 数据库插入语句之insert into,replace into ,insert ignore

最近才发现mysql的插入语句居然有如此多的用法,这里拿来分享一下. ①关于insert into : insert into table_name values(); insert into table_name (column) values (); insert into table_name values(select (column) from table_name2); 这里的插入只需要注意一点的就是: 如果发生主键冲突,(也就是插入的主键已经在表中存在时),系统报错. ②repla

java下连接mysql数据库 ——查询语句——select

Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库. Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到jar库文件,然后在对应的项目中导入该库文件. 你可以下载本站提供的 jar 包:mysql-connector-java-5.1.39-bin.jar 本实例使用的是 Eclipse,导入 jar 包: MySQL 8.0 以上

MySQL数据库操作语句(cmd环境运行)

一.开启MySQL服务器 1,  通过windows提供的服务管理器来完成 windows键+R 输入: services.msc 2.在本地服务中打开其服务 3.在DOC命令行下 1 net stop mysql 2 net start mysql 4.利用bin目录的mysqld来开启 1 mysqld --defaults-file="G:/amp/mysql/my.ini" 二.客户端连接服务器 1 mysql -uroot -p 登录数据库之后 1 # 告诉MySQL服务器,