赞
踩
通过之前安装好的数据库,我们可以用来学习SQL
语句的一些用法,本文主要讲解增删改查数据库的一些使用的方法及格式。
注:SQL
语句的格式实际上还是比较容易理解的,它的语句完全就是由描述性很强的英语单词组成,一起来看下。
first 让我们先登录到数据库管理系统
在服务器中直接使用-u
与-p
参数即可登录数据库
mysql -u用户 -p密码
图中的意思是:
commands end with ;or \g 表示命令结尾需要加上;或者是\g。
version:数据库的版本信息是8.0.30
同时有显示一些帮助信息的查询:help ,\h等 ,当有语句写出来发现写错了,还可以使用\c使它不执行。
也可以使用SQL语句显示版本信息
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.30 |
+-----------+
1 row in set (0.00 sec)
MySQL8.0
默认是支持utf-8的字符集,若使用的是MySQL5.0
左右的数据库,需要在数据库中设置utf-8
格式才可以显示中文的内容。
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.23 sec)
如果在MySQL5.0
左右的版本,可以在创建数据库的时候就设置utf-8的字符集。
create database (数据库名) character set utf8 collate utf8_bin;
mysql8.0
以上默认使用的是innodb
存储引擎
mysql> show global variables like '%storage_engine%';
+---------------------------------+-----------+
| Variable_name | Value |
+---------------------------------+-----------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| disabled_storage_engines | |
| internal_tmp_mem_storage_engine | TempTable |
+---------------------------------+-----------+
4 rows in set (0.02 sec)
当然还可以查看mysql
数据库支持哪些存储引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
这几个数据库默认是安装好之后自带的库文件,一起来看下它们的具体作用
- information_schema主要是用来提供访问数据库元数据的方式,元数据是关于数据的数据,如数据库名和表名,列的数据类型或访问权限。这里保存着mysql管理系统中所有其他数据库的信息。
- performance_schema用于监控MySQL server在一个较低级别的运行过程中的资源消耗,资源等待等情况,可以看做是一个存储引擎。
- sys:视图,帮助开发,监控MySQL性能。
- mysql:主要用来存储MySQL用户账号,权限,存储的过程,事务的定义等信息。
还记得最开始说的,语句最后可以加分号,也可以加\g
,来看下\g
的效果是咋样的。
mysql> show databases \g
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
和分号显示的效果一样,那么换成\G再看看
mysql> show databases \G
*************************** 1. row ***************************
Database: information_schema
*************************** 2. row ***************************
Database: mysql
*************************** 3. row ***************************
Database: performance_schema
*************************** 4. row ***************************
Database: sys
4 rows in set (0.00 sec)
换成G显示的结果并没有前面的框框,而是以一行一行的横线形式显示的。
一般如果我们创建好数据库的时候,可以使用这条语法显示数据库的信息。
命令语法
show create database 数据库名称
实例:
mysql> show create database book;
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| book | CREATE DATABASE `book` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
能看到的信息有数据库的名称,字符集信息,或者是否要加密等等的一些信息。
创建数据库的语法
create database 数据库名;
实例
mysql> create database book;
Query OK, 1 row affected (0.00 sec)
输出Query OK.1 row affected(0.00 sec)表示是创建成功
假设要创建一个create数据库 ,是否能创建成功
mysql> create database create;
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 'create' at line 1
可以看到无法创建成功,这个是因为create是数据库中的保留字,因此若需要创建成功,需要加反引号``,继续来看下。
mysql> create database `create`;
Query OK, 1 row affected (0.01 sec)
创建数据库时有包含一些特殊字符的缘故,也会出现创建失败;
mysql> create database student!;
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 '!' at line 1
mysql> create database `student!`;
Query OK, 1 row affected (0.07 sec)
同理解决方法一样是加上反引号就可以创建成功。
删除数据库的语法
drop database 数据库名称
实例:
mysql> drop database book;
Query OK, 3 rows affected (0.05 sec)
由于删除数据库是一件特别严重的事情,建议非必要情况下请勿执行此操作。
以上的内容就是这么多了,预告下一篇内容讲数据库表的SQL语句,若觉得内容还行的,可以点赞支持一下!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。