【Navicat+MySQL】 在Navicat内创建管理数据库、数据库表。

一、数据库

1.创建数据库

使用CREATE命令可以创建一个数据库。

复制代码
CREATE DATABASE <数据库名>  
[[DEFAULT] CHARACTER SET <字符集名>] 
[DEFAULT] COLLATE <校对准则名>];

--DEFAULT:指定默认值

--CHARACTER SET:指定数据库字符集(charset),其后的_字符集名_要用MySQL具体支持的字符集名称代替,如utf-8

--COLLATE:指定字符集的校对规则,其后的_校对规则名_要用MySQL具体支持的字符集名称代替,如gb2312_chinese_ci

例如:

创建一个名为Bookstore的数据库,字符集为gb2312,校对规则为gb2312_chinese_ci

复制代码
CREATE DATABASE bookstore
    DEFAULT CHARACTER SET gb2312
        COLLATE gb2312_chinese_ci;

2.管理数据库

1).指定当前数据库

在创建了数据库以后,使用USE命令可以将其指定为当前数据库。

复制代码
USE <数据库名>;

这个语句可以用来从一个数据库"跳转"到另一个数据库,在用 CREATE DATABASE 语句创建了数据库以后,该数据库不会自动成为当前数据库,需要用 USE 语句来制定。

2).修改数据库

数据库创建后,如果需要修改数据库的参数,可以使用 ALTER DATABASE 命令。

复制代码
ALTER DATABASE <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[DEFAULT] COLLATE <校对准则名>];

ALTER DATABASE 用于更改数据库的全局特性,这些特性存储在数据库目录的db.opt文件内。

用户必须有对数据库进行修改的权限,才可以使用 ALTER DATABASE命令。

例如:

修改数据库Petstore,字符集为utf8mb4,校对规则为utf8mb4_0900_ai_ci。

复制代码
ALTER DATABASE petstore
    DEFAULT CHARACTER SET utf8mb4
        COLLATE uft8mb4_0900_ai_ci;

3).删除数据库

如果需要删除已经创建的数据库,可以使用 DROP DATABASE 命令。

复制代码
DROP DATABASE <数据库名>;

4).显示数据库

如果需要显示已经创建的数据库,可以使用 SHOW DATABASE 命令。

复制代码
SHOW DATABASE;

二、数据库表

1.创建表

使用 CREATE TABLE 命令可以创建表。

复制代码
CREATE TABLE <表名>(
    <列名> <数据类型> [NOT NULL | NULL] [DEFAULT <列默认值>]
    ...
    PRIMARY KEY (<主键列>)
)ENGINE = <存储类型>;

-<表名> :要创建的表的名称。如果有MySQL关键字(保留字),必须用单引号引起来。

-<列名>:表中列的名字,长度不能超过64字符。如果有MySQL关键字(保留字),必须用单引号引起来。

-<数据类型>:列的数据类型,有的数据类型需要指明长度_n_并用括号括起来。

-NULL | NOT NULL:指定列是否允许为空。如不指定,则默认为NULL。

-DEFUALT <列默认值>:为列指定默认值,默认值必须为一个常数。如果列可以取NULL值,那么默认值就是NULL。如果列被声明为 NOT NULL ,则默认值取决于列类型。

-ENGINE = <存储引擎>:MySQL 支持多个存储引擎,可为不同表设定不同的存储引擎,使用是要用具体的存储引擎名称代替,如 ENGINE = InnoDB。InnoDB是MySQL8.0在Windows平台的默认存储引擎,所以 "ENGINE = InnoDB" 可以省略。

-PRIMARY KEY (<主键列>):使用 PRIMARY KEY ,可以将括号内的字段定义为主键。

例子

复制代码
CREATE TABLE Store(
    id char(10) NOT NULL,
    bookname varchar(20) NOT NULL DEFAULT 'bookname',
    PRIMARY KEY (id)
);

2.管理数据库表

1).修改表结构

ALTER TABLE 命令可以用于更改原有表的结构。

复制代码
ALTER TABLE <要修改的表名>
    ADD [COLUMN] <列名> <数据类型> [NOT NULL | NULL] [DEFAULT <列默认值>]   /*添加列*/
    ALTER [COLUMN] <列名> {SET DEFAULT <默认值> | DROP DEFAULT}            /*修改默认值*/
    CHANGE [COLUMN] <旧列名> <新列名> {NULL | NOT NULL}                    /*重命名列*/
    MODIFY [COLUMN] <列名> <新的数据类型> {NULL | NOT NULL}                /*修改列类型*/
    DROP [COLUMN] <列名>                                                  /*删除列*/
    RENAME [to] <新表名>                                         /*重命名表*/

例子1

在数据库Bookstore 中已经创建了表book,表中存在"bookname"列。在表book中增加"viewtimes"列,并将表中的"bookname"列删除。

复制代码
USE Bookstore;
ALTER TABLE book
    ADD viewtimes tinyint null,
    DORP COLUMN bookname;

例子2

在数据库Bookstore 中已经创建了表book,将表book重名为mybook。

复制代码
USE Bookstore;
ALTER TABLE book
    RENAME TO mybook;

修改表名除了可以用ALTER TABLE 命令,还可以直接用RENAME TABLE 语句来实现。

复制代码
RENAME TABLE <旧表名> <新表名>;

例子3

在数据库Bookstore 中已经存在表mybook 和 members ,将表 mybook 重命名为booklist,将表members 重命名为 memberlist。

复制代码
USE Bookstore;
RENAME TABLE mybook TO booklist,
    members TO memberlist;

2).复制表

当需要建立的数据库表与已有的数据库结构相同时,可以通过复制表的结构与数据的方法新建数据库表。

复制代码
CREATE TABLES <新表名>  [LIKE <被复制的表名>]  [AS (select语句)]

例子1

数据库Bookstore中有一个表book,创建book表的一个名为book_copy1的副本

复制代码
CREATE TABLE book_copy1 LIKE book;

例子2

数据库Bookstore中有一个表book,创建book表的一个名为book_copy2的副本,并复制其内容。

复制代码
CREATE TABLE book_copy2
    AS 
        (SELECT * FROM book)

3).删除表

需要删除一个表时,可以用DROP TABLE语句。

复制代码
DROP TABLE <表名1> <表名2> ...
相关推荐
Database_Cool_1 小时前
阿里云 RDS MySQL 降本增效实战:从规格选型到成本优化,月成本降低64%全攻略
mysql·阿里云·云计算
java_logo1 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司9 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒11 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手11 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学11 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh13 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户713335851562414 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z1234567898614 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD14 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关