• MySQL——数据库、表的操作


    数据库的操作

    创建数据库

    语法:

    create database [if not exists] db_name [create_specification] [create_specifation];
    create_specifation:
    [default] character set charset_name
    [default] collate collation_name
    
    • 1
    • 2
    • 3
    • 4

    说明:

    • 大小写并不是特别区分,标准建议关键字采用大写,但是小写的辨识度更高
    • [ ]方括号是可选项
    • character set:指定数据库采用的字符集
    • collate:指定数据库字符集采用的校验规则

    创建数据库例子

    如果修改了/etc/my.cnf下的文件,我们是不用带上默认选项的,他会自动默认使用字符集utf8,校验规则utf8_general_ci

    字符集和校验规则

    查看字符集和校验规则:

    show variables like 'character_set_database'; 
    show variables like 'collation_database';
    
    • 1
    • 2

    结果演示:
    在这里插入图片描述

    查看数据库支持的字符集

    show charset;
    
    • 1

    结果展示:
    在这里插入图片描述
    字符集主要控制用什么语言,比如utf8可以适配中文,不会出现报错。

    查看默认的字符校验规则

    show collation
    
    • 1

    结果展示:
    在这里插入图片描述

    校验规则对数据库的影响

    例子:建立两个数据库,在里面分别见两张表,然后查询

    utf8_general_ci不区分大小写:

    mysql> create database utf8_test collate utf8_general_ci;
    Query OK, 1 row affected (0.00 sec)
    mysql> use utf8_test;
    Database changed
    mysql> create table person (name varchar(20));
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> desc person;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(20) | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    1 row in set (0.01 sec)
    
    mysql> insert into person values ('a');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into person values ('A');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into person values ('b');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into person values ('B');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select *  from person where name='a';
    +------+
    | name |
    +------+
    | a    |
    | A    |
    +------+
    2 rows in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    utf8_bin区分大小写:

    mysql> use utf8_bin_test;
    Database changed
    mysql> show tables;
    Empty set (0.00 sec)
    
    mysql> create table person(name varchar(20));
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> insert into person values ('a');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into person values ('A');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into person values ('b');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into person values ('B');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from person where name ='a';
    +------+
    | name |
    +------+
    | a    |
    +------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    查看数据库

    show databases;
    
    • 1

    注意带s,表示复数。
    在这里插入图片描述

    显示详细的创建数据库语句

    show create database name;
    
    • 1

    在这里插入图片描述
    说明:

    • 数据库名字采用反引号,是为了防止使用的数据库名字刚好是关键字。
    • /* !40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin * /这不是注释!!这表示当前数据库版本大于4.01,就执行这句话。

    修改数据库

    语法:

    alter database db_name [alter_specification] [alter_specification];
    alter_specification:
    [default] character set charset_name
    [default] collate collate_name
    
    • 1
    • 2
    • 3
    • 4

    说明:对于数据库的修改主要是指修改数据库的字符集、校验规则

    在这里插入图片描述
    注意:我们一般强烈不建议修改数据库名字以及属性!

    删除数据库

    在这里插入图片描述
    注意:不要随意删除数据库!
    执行删除之后的结果:数据库内部看不到对应的数据库。
    对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

    查看连接情况

    show processlist;
    
    • 1

    在这里插入图片描述
    可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

    表的操作

    创建表

    语法:

    create table [if not exists] table_name(
    	field1 datatype,
    	field2 datatype,
    	field3 datatype
    ) charset set 字符集 collate 校验规则 engine 存储引擎;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    说明:

    • 先是列,再是类型;先是名字,再是类型。语义优先!
    • 其他见名知意。

    实例:
    在这里插入图片描述

    显示创建表的详细过程

    通过show create table table_name \G;
    \G去除一些格式,方便查看
    在这里插入图片描述

    不同的数据库引擎

    默认采用InnoDB,stu表在数据库中对应2个文件
    在这里插入图片描述
    而我们可以看一下采用MyISAM,它对应的表下面有3个文件
    在这里插入图片描述

    • users.frm表结构
    • users.MYD表数据
    • users.MYI表索引

    查看表结构

    desc table_name;
    在这里插入图片描述

    修改表

    我们可以对于某表的结构、字段名字、字段大小、字段类型等等作后续修改,但是强烈不建议修改,在创建的时候最好声明定义好表的结构。
    语法:

    alter table table_name add(column datatype );
    alter table table_name modify(column datatype );
    alter table table_name drop(column);
    
    • 1
    • 2
    • 3

    现在有这样一张表:
    在这里插入图片描述

    我们在其基础上进行修改:

    1️⃣在表中增加一个字段,用于保存图片路径。
    在这里插入图片描述
    如果你的表中已经有了数据了,那么新增加的字段默认就是NULL。

    还可以控制新增列的位置:
    在这里插入图片描述
    注意:只能有after,没有before的说法!我们特别不建议,将一个字段往前插入,最好还是在末位插入新字段。

    2️⃣删除一个字段,直接删除名字即可
    在这里插入图片描述
    注意:删除的时候,如果某列有数据的,那么数据也会没有。

    3️⃣调整一个字段
    在这里插入图片描述
    4️⃣修改名字

    • rename修改表名字

    在这里插入图片描述

    • change修改列名字

    在这里插入图片描述

    删除表

    语法:

    drop table table_name;
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    Cholesterol-PEG-DBCO,CLS-PEG-DBCO,胆固醇-聚乙二醇-二苯基环辛炔PEG衍生物
    【云原生 中间件】Netty是干什么的?
    MHA高可用配置及故障切换
    【Javascript】弹出框
    关于化工行业如何报警
    【linux基础】6. 日志,日志管理服务,自定义日志等
    Linux Shell入门常用命令使用
    Vue(Vuex插件)
    Day10-Java进阶-泛型&数据结构(树)&TreeSet 集合
    山东大学项目实训十——Android开发环境搭建
  • 原文地址:https://blog.csdn.net/weixin_57675461/article/details/127715260