不是从事数据库职位的人员也要知道的SQL语句。
嗯!因为我也是初学,所以有问题的地方告诉我哈!
1.数据库操作
1.1.登录数据库
- 这条基本不用说,肯定必备
mysql -uroot -p123123
1.2.创建数据库
- 语法
CREATE DATABASE database_name
- 普通的创建方式,例如我需要为zabbix环境创建一个数据库
mysql> create database zabbix; Query OK, 1 row affected (0.01 sec)
- 还有一种创建数据库的方式,这种方式的含义是:如果不存在某数据库,则创建;如果存在,则忽略创建语句
mysql> create database if not exists zabbix; Query OK, 1 row affected, 1 warning (0.01 sec)
1.3.查看数据库
- 语法
SHOW DATABASES
- 可以从下列代码中看到除系统库之外我们额外创建的zabbix库
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | zabbix | +--------------------+ 5 rows in set (0.01 sec)
- 查看MySQL所在的数据库
mysql> select database(); +------------+ | database() | +------------+ | NULL | +------------+ 1 row in set (0.01 sec) mysql> use mysql; Database changed mysql> select database(); +------------+ | database() | +------------+ | mysql | +------------+ 1 row in set (0.00 sec)
- 查看数据库的创建信息
mysql> show create database zabbix \G *************************** 1. row *************************** Database: zabbix Create Database: CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ 1 row in set (0.00 sec)
以上信息为:创建zabbix数据库使用的字符集为utf8mb4,校对规则为utf8mb4_0900_ai_ci,DEFAULT ENCRYPTION='N'表示为未使用加密技术。
1.4.修改数据库
- 通过重命名数据表方式修改数据库名称
步骤如下:
1.创建一个test_old测试库,在库中创建table_test测试表 2.创建test_new数据库 3.将test_old中table_test表重命名到test_new数据库下 4.查看test_new下数据表 5.删除test_old数据库
SQL语句如下:
mysql> create database test_old; mysql> use test_old; mysql> create table table_test(id int); mysql> show tables; mysql> create database test_new; mysql> rename table test_old.table_test to test_new.table_test; mysql> use test_new; mysql> show tables; +--------------------+ | Tables_in_test_new | +--------------------+ | table_test | +--------------------+ 1 row in set (0.00 sec) mysql> drop database test_old;
- 通过导入/导出数据方式修改数据库名
步骤如下:
1.将test_old库中数据导出到本地 2.创建test_new数据库 3.将本地的数据导入到test_new库
SQL语句如下:
mysql> create database test_old; mysql> use test_old; mysql> create table table_test(id int); # mysqldump -uroot -p123123 test_old > test_old_dump.sql mysql> create database test_new; mysql> use test_new; mysql> source /root/test_old_dump.sql; mysql> show tables; +--------------------+ | Tables_in_test_new | +--------------------+ | table_test | +--------------------+ 1 row in set (0.00 sec) mysql> drop database test_old;
1.5.创建数据库指定字符编码
- 创建test_01数据库,指定字符编码为utf-8,校验规则为uft8_unicode_ci,不使用MySQL加密技术。
mysql> create database test_01 default character set utf8 collate utf8_unicode_ci default encryption='N'; Query OK, 1 row affected, 2 warnings (0.01 sec) mysql> show create database test_01 \G *************************** 1. row *************************** Database: test_01 Create Database: CREATE DATABASE `test_01` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ 1 row in set (0.00 sec)
- 修改数据库字符集,把create改为alter,接上已有的数据库名称,修改成想 要的字符集即可
mysql> alter database test_01 character set utf8bm4 collate utf8mb4_0900_ai_ci;
1.6.删除数据库
- 语法:
drop database [if exists] database_name;
- 删除test_01数据库
#首先查看所有数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test_01 | | test_new | | zabbix | +--------------------+ 7 rows in set (0.01 sec) #删除test_01数据库 mysql> drop database test_01; Query OK, 0 rows affected (0.01 sec) #再次查看数据库,发现test_01数据库已经被删除 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test_new | | zabbix | +--------------------+ 6 rows in set (0.00 sec)
- 也可以像创建一样使用另一种方法
mysql>drop database if exists test_01;
本文针对MySQL库的操作,包括创建、查询、修改、删除等方面的归纳,去除大量说明性的文字,以笔记的形式记录操作的SQL语句,方便使用时的查询。