【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> ...
相关推荐
时间售卖铺6 分钟前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw12 分钟前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社1 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙2 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3763 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02143 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川3 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组3 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
zhangjw344 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go4 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型