首页 > 数据库 >MySql 增、删、改、查数据库

MySql 增、删、改、查数据库

时间:2024-06-12 10:32:24浏览次数:15  
标签:exists database study MySql dbs create 数据库

前言

之前几天写了MySql 的GROUP BY 语句和 JOIN 语句,今天补一下创建数据库、表的语句。首先假设已经暗转好MySQL 数据库,然后创建数据库、表。

创建数据库

create database [if not exists] 数据库名;
    [CHARACTER SET charset_name]
    [COLLATE collation_name];
  • if not exists 表示如果数据库不存在则创建,如果存在则不创建
  • charset_name 表示字符集,比如 utf8,gbk,latin1
  • collation_name 表示排序规则,比如 utf8_general_ci,gbk_chinese_ci

简单创建数据库

create database study_dbs;
mysql> show databases;

+--------------------+
| Database            |
+--------------------+
| information_schema |
| mysql                |
| performance_schema |
| study_dbs             |
| sys                  |
+--------------------+
  • 再次通过 create database study_dbs 创建数据库 会抛出错误

    ERROR 1007 (HY000): Can't create database 'study_dbs'; database exists
    
  • 原因:数据库已存在

解决办法有两种

  • 直接删除数据库,再重新新建,这种方法个人理解只适合新建数据库时使用,一旦数据库已经存在并保存了数据,这种方法不适用,想要删除需要确认数据已经备份或者不在需要
  • 使用 if not exists 判断数据库是否存在,如果存在则不创建,如果不存在则创建,这种方法适合数据库已经存在的情况
CREATE DATABASE IF NOT EXISTS study_dbs;
  • if not exists 表示数据不存在创建,存在则不创建
Query OK, 1 row affected (0.00 sec)

含有设置字符集的创建数据库语法

create database if not exists study_dbs
    character set utf8mb4
    collate utf8mb4_general_ci;

查看数据库字符集和排序规则

mysql> show create database study_dbs;

删除数据库

  • drop database [if exists] 数据库名;
drop database study_dbs;
  • 删除数据库后,再次查询数据库,发现数据库已经不存在
mysql> show databases;
+--------------------+
| Database            |
+--------------------+
| information_schema |
| mysql                |
| performance_schema |
| sys                  |
+--------------------+

为了避免再删除数据库时抛出错误 可以加上 if exists 判断数据库是否存在

drop database if exists study_dbs;

修改数据库字符集和排序规则

alter database study_dbs
    character set GBK
    collate gbk_chinese_ci;
  • 再次查看数据库字符集和排序规则
mysql> show create database study_dbs;

可以看到数据库的字符集和排序规则已经修改

使用数据库

use study_dbs;

标签:exists,database,study,MySql,dbs,create,数据库
From: https://www.cnblogs.com/yidejiyi/p/18243443

相关文章

  • MySQL 分页优化
    不需要担心数据库性能优化问题的日子已经一去不复返了。随着时代的进步,随着野心勃勃的企业想要变成下一个Facebook,随着为机器学习预测收集尽可能多数据的想法的出现。作为开发人员,我们要不断地打磨我们的API,让它们提供可靠和有效的端点,从而毫不费力地浏览海量数据。如果你......
  • MySQL 中的 INSERT 是怎么加锁的?
    在之前的博客中,我写了一系列的文章,比较系统的学习了MySQL的事务、隔离级别、加锁流程以及死锁,我自认为对常见SQL语句的加锁原理已经掌握的足够了,但看到热心网友在评论中提出的一个问题,我还是彻底被问蒙了。他的问题是这样的:加了插入意向锁后,插入数据之前,此时执行了select…lo......
  • windows系统下,每天定时做mysql数据库备份
    一.备份数据库命令 格式化当前日期setTIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2% 将现在的日期格式化为yyyyMMdd  备份mysql指定数据库mysqldump-uroot-p123456dbname>"E:\DBbackups\mydb_%TIMESTAMP%.sql" -uroot:root是用户名 -p123456:123456是数据库......
  • Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)
    目录专栏导读1、下载MySQLCommunityServer2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法26、创建一张表方法1:准备一个test文件方法2:Navicat到期解决总结专栏导读课程连接Python办公MySQL(一):安装MySQL以及Navicathttps://blog.csdn.net......
  • scopus数据库收录论文快吗
    scopus数据库收录论文快吗scopus是国际知名的数据库,收录文献类型包含期刊,会议论文,丛书,专利等,那么scopus数据库收录论文快吗?scopus检索收录时间是浮动的,有的论文可能需要2个月左右,有的可能需要3-4个月。论文录用见刊到能够被scopus数据库检索时间,取决于出版社和期刊稿源情况,......
  • Mybatis 实体类中字段使用 ZonedDateTime,但达梦数据库使用无时区的 Timestamp 时发生
    背景开发的应用运行在东八区,无国际化需求,也无时区相关要求。后端使用SpringBoot和Mybatis,数据库使用达梦数据库,数据库中存储时间的类型为Timestamp(不存储时区信息)其中实体如下publicclassStudent{Stringid;ZonedDateTimeentryTime;}前端和后端约定时......
  • 深度解读数据库引入LLVM技术后如何提升性能
    GaussDB作为企业级的数据库,经过了多年的技术发展,具备丰富的技术特性,使用LLVM技术后提升了系统的查询性能,使得开发者在OLAP和OLTP多场景中均受益。Hi,别急!让技术触达每一个角落,赋能更多的人,GaussTech第3期《LLVM技术在GaussDB等数据库中的应用》,不仅带来满满的技术干货,还推出【分......
  • 高校教师信息管理系统(数据库课设)
     1.课设要求描述 ●实现部门、职称、职务的基本信息的管理;●实现教师信息的管理;●实现教师家庭关系和教育经历的管理;●实现教师的奖惩管理;●创建规则使得教师的E-Mail必须符合电子邮箱的格式;●创建触发器,实现修改教师所在部门时自动修改相应部门的教师人数:●......
  • 自助餐管理系统(数据库课设)
    1.课设要求描述语义如下:某公司为了提高职工的福利待遇,规定每个员工每天可以在职工食堂用餐两次,可以中午用餐一次,下午用餐一次;也可以集中到中午或下午一次用餐两次。月底进行核算,如果用餐次数不足,餐费不退还职工。公司根据实际的用餐次数支付食堂餐费。要求如下:●创建一个......
  • MySQL之高级特性(一)
    高级特性外键约束InnoDB是目前MySQL中唯一支持外键的内置存储引擎,所以如果需要外键支持那选择就不多了。使用外键是有成本的。比如外键通常都要求每次在修改数据时都要在另一张表中多执行一次查找操作。虽然InnoDB强制外键使用索引,但还是无法消除这种约束检查的开销。如果......