数据库 --- mysql(03)-- mysql字符集、表操作(01)

这篇具有很好参考价值的文章主要介绍了数据库 --- mysql(03)-- mysql字符集、表操作(01)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MYSQL

1、mysql字符集

(1)简介:

MySQL字符集包括字符集(CHARACTER)校对规则(COLLATION)两个概念:

  • 字符集(CHARACTER)是一套编码
  • 校对规则(COLLATION)是在字符集内用于比较字符的一套规则。
mysql字符集:
	latin1支持西欧字符、希腊字符等
	gbk支持中文简体字符
	big5支持中文繁体字符
	utf8几乎支持世界所有国家的字符。
	utf8mb4是真正意义上的utf-8

(2)命令:

<1> 查看字符集
mysql8.0 [(none)]>show variables like 'character%';
-- 查看所有像character..的变量

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | gbk                            |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | gbk                            |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
<2> 修改默认字符集
mysql8.0 [(none)]>set character_set_server = utf8mb4;

mysql8.0 [(none)]>set character_set_database = utf8mb4;

mysql8.0 [(none)]>show variables like 'character%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

附:utf8和utf8mb4的区别

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。

utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。


2、数据库对象

命名规则:

  • 必须以字母开头
  • 可包括数字和特殊字符(_和$)
  • 不要使用MySQL的保留字
  • 同一Schema下的对象不能同名

数据库 --- mysql(03)-- mysql字符集、表操作(01),MYSQL,数据库,mysql,网络协议,http,安全

3、表的基本操作

数据表的每行称为一条记录(record);每一列称为一个字段(field)

(1)数据类型

MYSQL中,有三种主要的类型:文本、数值日期/时间类型

常用数据类型:

数据库 --- mysql(03)-- mysql字符集、表操作(01),MYSQL,数据库,mysql,网络协议,http,安全

(2)创建表

语法:

CREATE TABLE 表名(
    列名 列数据类型,
    列名 列数据类型
);

例:

mysql8.0 [student]>create table t1(id int,name char(20)); -- 单行创建

mysql8.0 [student]>create table t1(
    -> id int,name char(20)
    -> ,address char(50));
/* 多行创建 */

mysql8.0 [student]>show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| t1                |
| t2                |
+-------------------+

(2)查看表

<1> 查看数据库中的所有表

语法SHOW TABLES[FROM 数据库名][LIKE wild];

例:

mysql8.0 [student]>show tables from mysql like '%server%'; -- 查看mysql数据库中含server字段的tables
+----------------------------+
| Tables_in_mysql (%server%) |
+----------------------------+
| server_cost                |
| servers                    |
+----------------------------+
<2> 显示当前数据库中已有的数据表信息

[1] 语法{DESCRIBE|DESC}  表名 [列名];

mysql8.0 [student]>describe student.t2;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id      | int      | YES  |     | NULL    |       |
| name    | char(20) | YES  |     | NULL    |       |
| address | char(50) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+

[2] 语法show columns from 表名称;

mysql8.0 [student]>show columns from student.t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+

(3)删除表

语法DROP TABLE [IF EXISTS] 表名;

mysql8.0 [student]>drop table t1; -- 当前处在数据库中,不指定数据库默认删除本数据库内的表

mysql8.0 [student]>drop table student.t2;

mysql8.0 [student]>show tables;

(4)修改表结构 --- ALTER

mysql8.0 [student]>desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | YES  |     | NULL    |       |
| name  | char(20) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+

#修改列类型:ALTER TABLE 表名 MODIFY 列名 列类型;
mysql8.0 [student]>alter table t1 modify name varchar(30);

mysql8.0 [student]>desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

#增加列:ALTER TABLE 表名 ADD 列名 列类型;
mysql8.0 [student]>alter table t1 add birthdar date;

mysql8.0 [student]>desc t1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int         | YES  |     | NULL    |       |
| name     | varchar(30) | YES  |     | NULL    |       |
| birthdar | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

#删除列:ALTER TABLE 表名 DROP 列名;
mysql8.0 [student]>alter table t1 drop birthdar;

mysql8.0 [student]>desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

#修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
mysql8.0 [student]>alter table t1 change id score int;

mysql8.0 [student]>desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| score | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

#修改表名
方式1:ALTER TABLE 表名 RENAME 新表名;
方式2:RENAME TABLE 表名 TO 新表名;
mysql8.0 [student]>alter table t1 rename sss;

mysql8.0 [student]>rename table t2 to aaa;

mysql8.0 [student]>show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| aaa               |
| sss               |
+-------------------+

(5)复制表结构

<1> 语法create table 新表名 like 源表
-- 将源表的表结构复制到新表
mysql8.0 [student]>create table qqq like aaa;

mysql8.0 [student]>desc qqq;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id      | int      | YES  |     | NULL    |       |
| name    | char(20) | YES  |     | NULL    |       |
| address | char(50) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
<2> 语法create table 新表名 select * from 源表
-- 实现表结构的复制,甚至可以将源表的表记录拷贝到新表中
mysql8.0 [student]>select * from sss;
+-------+---------+
| score | name    |
+-------+---------+
|    34 | mmm     |
|    35 | wangwei |
+-------+---------+

mysql8.0 [student]>create table ttt select * from sss;

mysql8.0 [student]>desc ttt;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| score | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

mysql8.0 [student]>select * from ttt;
+-------+---------+
| score | name    |
+-------+---------+
|    34 | mmm     |
|    35 | wangwei |
+-------+---------+
<3> 语法insert into 表名 select * from 原表;
仅复制数据
mysql8.0 [student]>select * from qqq;

mysql8.0 [student]>insert into qqq select * from aaa;

mysql8.0 [student]>select * from qqq;
+------+-------+----------+
| id   | name  | address  |
+------+-------+----------+
|   11 | smith | nework   |
|   22 | wang  | shanghai |
+------+-------+----------+

例1:将student数据库中的aaa表的表结构复制到stuinfo数据库中的mm表中

mysql8.0 [student]>create database stuinfo;
mysql8.0 [stuinfo]>create table mm like student.aaa;

mysql8.0 [stuinfo]>desc mm;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id      | int      | YES  |     | NULL    |       |
| name    | char(20) | YES  |     | NULL    |       |
| address | char(50) | YES  |     | NULL    |       |
+---------+----------+------+-----+---------+-------+

例2:在stuinfo中创建msd表,将student的sss表结构和数据复制过去文章来源地址https://www.toymoban.com/news/detail-569097.html

mysql8.0 [(none)]>create table stuinfo.msd select * from student.sss;

mysql8.0 [(none)]>use stuinfo;
mysql8.0 [stuinfo]>desc msd;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| score | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

mysql8.0 [stuinfo]>select * from msd;
+-------+---------+
| score | name    |
+-------+---------+
|    34 | mmm     |
|    35 | wangwei |
+-------+---------+

到了这里,关于数据库 --- mysql(03)-- mysql字符集、表操作(01)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 达梦数据库如何查看字符集

     0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR select SF_GET_UNICODE_FLAG(); select  UNICODE (); 字符集在安装初始化库的时候指定,设定后不可更改,请在安装时按照需求设置好 后期如果想修改就只能重新初始库! 注意中文字符的长度问题:数据库初始化参数  LENGTH_IN_CHAR=0  时,unicode 编

    2023年04月09日
    浏览(28)
  • Oracle数据库字符集概述及修改方式

    Oracle语言环境的描述包括三部分:language、territory、characterset(语言、地域、字符集) language:主要指定服务器消息的语言,提示信息显示中文还是英文 territory:主要指定服务器的数字和日期的格式 characterset:是指字符集,一般国内数据库实际使用的字符集主要是ZHS16GBK、AL32

    2024年02月11日
    浏览(38)
  • 达梦数据库支持GB18030-2022中文编码字符集证明方法

    既然是证明就要做到有图有真相。 证明途径1:系统概览法 查看达梦数据库“管理工具”-“对象导航”-“管理服务器”-“系统概览”-“字符集编码”-”GB18030”. 看见”GB18030”字样就是证据之一。如果你没有看见这个字样,而是UTF8等其他字样,请重新安装产品吧,安装向导

    2023年04月18日
    浏览(46)
  • GBASE南大通用数据库GBase 8s常见问题讲堂 -- 字符集的设置

    本文摘自GBASE南大通用社区,by:wty,原文请点击:GBase 8s常见问题 -- 字符集相关问题|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 23103   Code-set conversion function failed due to an illegal sequence or invalid value. 字符集转换失败,字符串中

    2024年01月24日
    浏览(50)
  • 如何配置达梦数据库使其支持GB18030-2022中文编码字符集

    达梦版本要求,要求使用2023年4月及之后的达梦月度版版本,补丁版、临时版等不可以。 正确安装windows操作系统,windows10以下的版本未做过测试,可能系统不支持导致各种显示错误,建议用windows10及以上版本,本人亲测过window10和windows11支持. 安装一个字体覆盖全的字库,w

    2024年02月09日
    浏览(49)
  • Mysql之安装-字符集设置-用户及权限操作-sqlmode设置

    MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。使用标准的SQL数据语言形式。 (1)检查是否已安装:rpm -qa|grep mysql (2)卸载命令:rpm -e --nodeps mysql-libs (3)给/tmp赋权:chmod -R 777 /tmp (4)rpm安装:rpm -iv

    2024年02月13日
    浏览(33)
  • 【MySQL】——数据类型及字符集

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年02月03日
    浏览(40)
  • MySQL 字符集概念与原理及如何配置字符集 - 超详细图文详解

    目录 一、字符集概念 1、字符(Character) 2、字符编码 3、字符集(Character set) 二、字符集原理 1、ASCII字符集 2、GB2312 3、GBK 4、GB18030 5、BIG5 6、Unicode 编码 三、字符序 四、MySQL字符集 字符序 1、mysql 字符集 2、mysql 字符序 3、字符集与字符序的关系 五、MySQL 数据存储字符集

    2024年02月04日
    浏览(42)
  • (三) MySQL字符集

    MySQL字符集包括 基字符集 (CHARACTER)与 校对规则 (COLLATION)这两个概念: latin1支持西欧字符、希腊字符等 gbk支持中文简体字符 big5支持中文繁体字符 utf8几乎支持世界所有国家的字符 utf8mb4是真正意义上的utf-8 查看当前数据库默认的字符集: SHOW VARIABLES like \\\'character%\\\'; MySQL在

    2024年01月24日
    浏览(50)
  • MySQL——命令行客户端的字符集问题

      原因:服务器端认为你的客户端的字符集是 utf-8 ,而实际上你的客户端的字符集是 GBK 。     查看所有字符集: SHOW VARIABLES LIKE \\\'character_set_%\\\';   解决方案,设置当前连接的客户端字符集 “SET NAMES GBK;”

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包