IT评测·应用市场-qidao123.com技术社区

标题: 【MySQL 保姆级教学】表结构的操作(4) [打印本页]

作者: 乌市泽哥    时间: 2024-10-20 07:35
标题: 【MySQL 保姆级教学】表结构的操作(4)
1. 定义和语法

在数据库中,表是用于存储和组织数据的基本结构。表由行(记录)和列(字段)组成,每一行代表一个数据记录,每一列代表一个特定的数据属性。表的定义包罗表的名称、列的定义、数据范例、约束和其他属性。
表的定义要素:

语法:
   CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  说明:
table: 表示列名。
datatype :表示列的范例。
character set :字符集,如果没有指定字符集,则以所在数据库的字符集为准。
collate: 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。
2. 创建表 CREATE

2.1 创建表的本质

创建一个study表
下令:create table study ( score int);
这个下令中,study是表名,score是列名,int是范例。

那么,创建表的本质是什么呢?
我是在Linux中,打开存储数据库test的目次:
下令:ls /var/lib/mysql/test

同砚们可以看到,有两个文件名和我创建的表名一样,所以,创建表的本质就是创建一个文件。
说明:
差别的存储引擎,创建表的文件不一样。
study 表存储引擎是 Innodb ,在数据目中有二个差别的文件,分别是:
study..frm:表的结构信息。
study.ibd:表的数据和索引。
2.2 表的存储引擎

Innodb 存储引擎:

MyISAM 存储引擎:

2.3 表的字符集和校验规则

表的时间,有字符集和校验集的设置:
数字存储的时会使用字符集,数据查找或者匹配,这样会举行数据比较,想要举行比较就需要先读取出来,读取使用校验集,支持数据库举行比较使用的校验集,本质也是一种读取数据库中数据的编码格式
举个简单的例子,如果你存储数据使用浮点范例,而取数据用字符串范例,这样取出来的数据肯定会乱套的。
总之,数据库无论对数据做任何操作,都必须保证操作和编码必须是一致的。
当创建数据库时不设置字符集和校验集,会默认使用mysql配置的字符集和校验集
示例:
创建一个表,同时设置字符集和校验集。
下令:
   create table study(
id int primary key,
name varchar(10),
score int
) charset utf8 collate utf8_general_ci;
  同砚们想更加深入的相识字符集和校验集,请看 数据库的操作(第三章)
2.4 创建表实例

3. 检察表结构 DESC

3.1 作用






3.2 示例

语法:desc 表名;
示例:
下令:desc test;
字段其实就是表
4. 修改表结构 ALTER

4.1 添加列 ADD

语法:
   ALTER TABLE table_name
ADD column_name datatype [constraints];
  示例:
4.2 修改列 MODIFY

语法:
   ALTER TABLE table_name
MODIFY column_name new_datatype [new_constraints];
  注意:modify 是把原来的字段属性覆盖,而不是想改什么属性就只改变什么属性。在修改表的时间需要检察创建表show create table 表名;
示例:
4.3 删除列 DROP

语法:
   ALTER TABLE table_name
DROP COLUMN column_name;
  注意:删除字段一定要小心,删除字段及其对应的列数据都没了
示例:
4.4 更改列名 CHANGE

语法:
   ALTER TABLE table_name
CHANGE old_column_name new_column_name new_datatype [new_constraints];
  注意:change 是把原来的字段属性覆盖,而不是想改什么属性就只改变什么属性。在修改表的时间需要检察创建表show create table 表名;
示例:
5. 修改表名 RENAME

语法:
ALTER TABLE old_table_name RENAME TO new_table_name;
示例:
6. 删除表 DROP

语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
示例:
下令:drop table test;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4