加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

【数据库专题2】MYSQL常用操作命令大全

发布时间:2022-10-14 13:31:54 所属栏目:MySql教程 来源:互联网
导读: mysql>?alter?user?'root'@'localhost'?password?expire?never;Query?OK,?0?rows?affected?(0.00?sec)mysql>?
最后刷新:
mysql>?flush?privileges;Query?OK,?0?rows?affected?(0.00?sec)m

mysql>?alter?user?'root'@'localhost'?password?expire?never;
Query?OK,?0?rows?affected?(0.00?sec)

mysql>
?

最后刷新:

mysql>?flush?privileges;
Query?OK,?0?rows?affected?(0.00?sec)

mysql>
?

3.增加新用户及授权3.1使用CREATE USER语句创建新用户

mysql>?CREATE?USER?'moonrong'@'localhost'?IDENTIFIED?BY?'QHDbjheb123';
Query?OK,?0?rows?affected?(0.01?sec)

mysql>
?

3.2 使用GRANT 语句创建新用户

使用CREATE USER语句创建账户后在USER表中新增一条记录,但是新创建的用户没有任何权限,还需要通过GRANT语句进行赋权。而使用GRANT语句不仅可以创建新用户,还可以在创建的同时对用户授权。

比如mysql命令,上面moonrong用户,它可以在任意主机上登录,同时有查询和插入权限:

mysql>?grant?select,insert?on?*.*?to?'moonrong'@'localhost'?identified?by?'QHDbjheb123';
Query?OK,?0?rows?affected,?1?warning?(0.00?sec)

mysql>
?

创建并授权用户权限,grant是推荐的用法,一般格式为:

grant?select?on?数据库.*?to?用户名@登录主机?identified?by?“密码”;

3.3几个grant应用的例子

Example01:

增加一个用户test1密码为abc123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

mysql>?grant?select,insert,update,delete?on?*.*?to?test1@"%"?Identified?by?"abc123";
Query?OK,?0?rows?affected,?1?warning?(0.01?sec)

mysql>
?

这个例子权限放的有点大,再看下面的例子。

Example02:

增加一个用户test2密码为abc123,让它只可以在localhost上登录,并可以对数据库odoodb进行查询、插入、修改、删除的操作。

mysql> grant select,insert,update,delete on odoodb.* to test2@localhost identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

Example03:

取消test2密码,进行无密码登录:

mysql> grant select,insert,update,delete on odoodb.* to test2@localhost identified by '';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

Example04:

给一个用户test3授予访问odoodb数据库的所有权限,并且仅允许test3在192.168.250.250这个客户端ip登录访问。

mysql>?grant?all?on?odoodb.*?to?test3@192.168.250.250?identified?by?'abc123';
Query?OK,?0?rows?affected,?1?warning?(0.00?sec)

mysql>?

4.MYSQL数据库基础操作4.1创建数据库

一般格式:

create??database??<数据库名>;

下面创建一个odoodb的数据库:

mysql>?create?database?odoodb;
Query?OK,?1?row?affected?(0.01?sec)

mysql>
?

4.2显示数据库

一般格式:

show databases;

比如,查询当前登录的数据库:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| odoodb |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)

mysql>

4.3删除数据库

一般格式:

drop database <数据库名>;

比如,删除上面刚建的odoodb数据库:

mysql> drop database odoodb;
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

mysql>

当然,在删除之前,可以做判断:

mysql> drop database if exists odoodb;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

4.4连接数据库

一般格式:

?use?<数据库名>;

比如,打开odoodb数据库:

mysql> use odoodb;
Database changed
mysql>

5.MYSQL数据表操作5.1创建表

命令格式:

create table 表名称(
列名称 类型,
列名称 类型,
列名称 类型
)default charset=utf8;

下面创建一个名字为MyClass的表:

mysql> create table MyClass(
-> id int(4) not null primary key auto_increment,
-> name char(20) not null,
-> sex int(4) not null default '0',
-> degree double(16,2)
-> )default charset=utf8;
Query OK, 0 rows affected (0.19 sec)

mysql>

5.2删除数据表

命令格式:

drop table 表名;

比如,删除刚才新建的表:

mysql> drop table MyClass;
Query OK, 0 rows affected (0.14 sec)

mysql>

5.3查看表

mysql> show tables;
+------------------+
| Tables_in_odoodb |
+------------------+
| MyClass |
+------------------+
1 row in set (0.00 sec)

mysql>

5.4表插入数据

命令格式:

insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

Eample:

在表MyClass中插入二条记录, 这二条记录表示:

编号姓名成绩

1

Tom

90.45

2

Joan

88.99

3

Moon

99.5

mysql> insert into MyClass values(1,'Tom',0,90.45),(2,'Joan',0,88.99), (3,'Moon',0, 99.5);
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql>

5.5查询表中的数据

一种方法:查询表中的所有行一般命令:

select <字段1,字段2,...> from < 表名 > where < 表达式 >

比如,查询上述表中的所有数据:

mysql> select * from MyClass;
+----+------+-----+--------+
| id | name | sex | degree |
+----+------+-----+--------+
| 1 | Tom | 0 | 90.45 |
| 2 | Joan | 0 | 88.99 |
| 3 | Moon | 0 | 99.50 |
+----+------+-----+--------+
3 rows in set (0.00 sec)

mysql>

第二种方法:查询前几行数据

比如,上面的例子,要查询前2行的数据:

mysql> select * from MyClass order by id limit 0,2;
+----+------+-----+--------+
| id | name | sex | degree |
+----+------+-----+--------+
| 1 | Tom | 0 | 90.45 |
| 2 | Joan | 0 | 88.99 |
+----+------+-----+--------+
2 rows in set (0.00 sec)

mysql>

5.6删除表中的数据

命令格式:

delete from 表名 where 表达式;

比如,删除上面表中id=2的编号的记录:

mysql> delete from MyClass where id=2;
Query OK, 1 row affected (0.07 sec)

mysql>

然后,查看表:

mysql> select * from MyClass;
+----+------+-----+--------+
| id | name | sex | degree |
+----+------+-----+--------+
| 1 | Tom | 0 | 90.45 |
| 3 | Moon | 0 | 99.50 |
+----+------+-----+--------+
2 rows in set (0.00 sec)

mysql>

5.7修改表中数据

命令格式:

update 表名 set 字段=新值,… where 条件;

比如,将moon用户名修改为moonrong:

mysql> update MyClass set name='moonrong' where id=3;
Query OK, 1 row affected (0.13 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql>

5.8增加字段

命令格式:

alter table 表名 add 字段  类型 其他;

比如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:

mysql> alter table MyClass add passtest int(4) default '0';
Query OK, 0 rows affected (0.31 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql>

5.9修改表名

命令格式:

rename table 原表名 to 新表名;

比如,在表MyClass名字更改为YouBetterClass:

mysql> rename table MyClass to YouBetterClass;
Query OK, 0 rows affected (0.09 sec)

mysql>

6.备份数据库操作

这里主要用到MYSQL自带的工具mysqldump:

[root@localhost?bin]#?./mysqldump
Usage:?mysqldump?[OPTIONS]?database?[tables]
OR?????mysqldump?[OPTIONS]?--databases?[OPTIONS]?DB1?[DB2?DB3...]
OR?????mysqldump?[OPTIONS]?--all-databases?[OPTIONS]
For?more?options,?use?mysqldump?--help
[root@localhost?bin]#?

mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert语句,即可将对应的数据还原。

6.1导出整个数据库

命令格式:

mysqldump?-u?用户名?-p?数据库名?>?导出的文件名

例:将上面数据库odoodb导出:

[root@localhost?bin]#?./mysqldump?-uroot?-p?odoodb?>?odoodb.sql
Enter?password:?root@QHDbjheb123
[root@localhost?bin]#?

6.2导出全部数据库

使用–all-databases 或-A导出全部数据库:

[root@localhost?bin]#?./mysqldump?-uroot?-p?-A?>?all.sql
Enter?password:?
[root@localhost?bin]#?

6.3导出单张表

命令格式:

?mysqldump?-u?用户名?-p?数据库名?表名>?导出的文件名

比如,前面odoodb数据库中导出MyClass表,这个表后来已改名为:YouBetterClass:

[root@localhost?bin]#?./mysqldump?-uroot?-p?odoodb?YouBetterClass?>?odoodb.youbetterclass.sql
Enter?password:?
[root@localhost?bin]#

6.4导出数据库结构

这里只导了一个数据库结构:

mysqldump?-u?user_name?-p?-d??--add-drop-table?database_name?>?outfile_name.sql

含义:

-d 没有数据

--add-drop-table在每个create语句之前增加一个drop table

[root@localhost?bin]#?./mysqldump?-uroot?-p?-d?--add-drop-table?odoodb?>?odoodbstru.sql
Enter?password:?
[root@localhost?bin]#?

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!