《MySQL 数据库入门:从登录到删库,新手必学的核心操作指南》

数据库操作

数据库的登录及退出

登陆格式

mysql  -u用户名  -h服务器的主机地址 -p密码 -A  -P 端口 -D 数据库名 -e sql语句
[root@Light ~]# mysql -uroot -pMysql@123 -hlocalhost -A -P 3306 -D haha
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.6 MySQL Community Server - GPL
#带上-e参数直接执行sql语句 报警告是因为没有使用交互模式写密码
[root@Light ~]# mysql -uroot -pMysql@123 -hlocst -A -P 3306 -D haha -e "select * from xixi1";
mysql: [Warning] Using a password on the command line interface can be insecure.
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
+------+----------+

分析:

  • -u 后面跟登录数据库的用户名,这里使用root

  • -h 后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或者 IP 地址

  • -p 后面是用户登录密码,注意:-p 和密码之间没有空格。如果出现空格,系统将不会把后面的字符串当成密码来对待,没有密码时不写

  • -A参数:不预读数据库信息,加上该参数则不预读数据库中的表等信息,不会有表名及列名的补全,但读取速度会加快,不加该参数可能使用数据库时出现下列提示(不影响使用)

  • Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    

图示例

在这里插入图片描述

显示信息解释:

  • Commands end with; or\g:mysql 命令是以分号(;)或“\g”来结束的,遇到这个结束符就开始执行命令
  • Your MySQL connection id is 22:数据库的连接次数
  • Server version: 8.0.37 Source distribution : 版本
  • Type ‘help;’ or ‘\h’ for help:输入”help;“或者”\h“可以看到帮助信息
  • Type ‘\c’ to clear the current input statement:表示遇到”\c“就清除前面的命令,注意不是清屏

退出:exit quit \q

查看数据库

格式:like 模糊匹配 %任意长度的任意字符 _任意单个字符

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| haha               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
18 rows in set (0.00 sec)
mysql> show databases like "%in%";
+--------------------+
| Database (%in%)    |
+--------------------+
| information_schema |
| suoyin             |
+--------------------+
2 rows in set (0.00 sec)

MySQL自带数据库

  • nformation_schema:提供 MySQL 服务器中所有数据库对象的元数据信息,相当于数据库的 “数据字典”。
    存放内容:
    数据库、表、列、索引、视图、存储过程、触发器等的定义信息;表的存储引擎、数据类型、权限信息、字符集等。
  • performance_schema:主要存储数据库服务器的性能参数
  • mysql: 存储了系统的用户权限信息及帮助信息
  • sys: 5.7新增,之前版本需要手工导入。这个库是通过视图的形式把information_schema 和performance_schema结合起来,查询出更加令人容易理解的数据

带有 通配符的条件

%:匹配任意0个或多个字符

_:匹配仁义单个字符

ysql> show databases like "s%";
+---------------+
| Database (s%) |
+---------------+
| suoyin        |
| sys           |
+---------------+
2 rows in set (0.00 sec)

#_只能匹配一个字符
mysql> show databases like "sy_";
+----------------+
| Database (sy_) |
+----------------+
| sys            |
+----------------+
1 row in set (0.00 sec)
mysql> show databases like "s__";
+----------------+
| Database (s__) |
+----------------+
| sys            |
+----------------+
1 row in set (0.00 sec)

创建数据库

create database [库名];

示例

mysql> create database demodb;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| demodb             |
| haha               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
19 rows in set (0.00 sec)

若数据库存在,就报错

mysql> create database demodb;
ERROR 1007 (HY000): Can't create database 'demodb'; database exists

查看数据库的语句

show create database [数据库名];
mysql> show create database demodb;
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                  |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| demodb   | CREATE DATABASE `demodb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

# 分析:
# 上述显示创建数据库语句的内容可看做3段内容
	# CREATE DATABASE `testdb` :表示创建数据库testdb
	# /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ :表示注释内容,显示字符集采用utf8mb4方案,一个字符需要 1 ~ 4 个字节。可以存储一些 emoji 表情; utf8mb4_0900_ai_ci表示字符比较规则即ai为不区分重音,ci为不区分大小写
	# /*!80016 DEFAULT ENCRYPTION='N' */ 表示数据库未加密

mysql中的反引号

  • 上例中查看的sql语句有反引号,其作用可以避免一些与SQL语法冲突的问题,同时可以使代码更加规范化和易读性更强
  • 如 select name, address from table; 其中table若当做表名但其为关键字回报错,加上反引号可以避免与SQL关键字的冲突
#在这里博主那table做示范,table是关键字,这里直接创建名为table表会报错
mysql> create table table (id int);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table (id int)' at line 1
#加了反引号之后就创建成功了
mysql> create table `table` (id int);
Query OK, 0 rows affected (0.01 sec)

注意

只有保留关键字和特殊字符需要使用反引号,普通的表名和列名不需要

数据类型之间可以加或者不加反引号,但为了代码规范化,建议加上

切换数据库

查看当前使用的数据库,格式:

#显示空说明没有是由数据库
mysql> select database();
+------------+
| database() |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)

进入数据库格式:

use [数据库名]  #这个语句后面加不加分号都可以
mysql> use demodb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
#出现上述两行是因为登录数据库的时候没有加-A选项
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| demodb     |
+------------+
1 row in set (0.00 sec)

查看当前用户

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

删除数据库

格式

drop database [数据库名];

示例

mysql> drop database demodb;
Query OK, 2 rows affected (0.04 sec)

小结

#新建数据库
create database [数据库名];
#使用数据库
use [数据库名];
#查看当前使用数据库
select database();
#显示所有数据库
show databases;
#删除数据库
drop database [数据库名];
#查看当前登录的用户和主机名
select user();

删除的注意事项

1.删除数据库表之前,一定要备份数据,以免数据丢失。
2.在删除数据库表之前,要确保该表没有被其他的表所引用,否则可能会破坏外键约束。
3.在删除数据库表之前,要确保该表的数据已经备份,并且不再需要使用。
4.在删除数据库表之前,要确保该表的数据已经被清空,否则会破坏外键约束。
5.在删除数据库表之前,要确保该表的所有索引都已经被删除。如果还存在索引,可能会导致删除失败。
6.在删除数据库表之前,要确保该表的所有相关程序已经停止运行,以免影响其他程序的正常运行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值