数据库原理及应用_数据库基础_第2章关系数据库标准语言SQL_数据类型&表操作(定义、操作和修改)

发布于:2025-08-20 ⋅ 阅读:(18) ⋅ 点赞:(0)

前言

        "<数据库原理及应用>(MySQL版)".以下称为"本书"中2.2.2,2.2.3小节

2.2.2数据类型

        前面分析过:怎样认识数据库中的数据?数据库是数据库服务器的数据单元,表是数据库的数据单元,属性是表的数据单元."数据类型",研究的是属性的类型.与之对应:数据指属性.

1.字符串类型

        常用字符类型有CHAR和VCHAR

        格式:        CHAR(数字)和VCHAR(数字)        //数字表示字符最大长度,超过后自动截断

        举例:        定义数据"name VCHAR(30)"       //表示定义一个属性name,类型字符串,长度30

                        在添加元组时,这一项可以写为:"zhangsan"(字符串,长度为8)

2.数值类型

        常用的数值类型有INT、DECIMAL

INT类型

        和C语言中的int类型类似,默认也是4字节.

DECIMAL类型

        所有的数值类型,格式DECIMAL(p,s),p表示数值数据的最大长度,s表示小数点后面的数字位数(可以省略,省略表示无小数),p也可以省略---表示无限大的数字?对p的取值有个疑问:p表示二进制的最大位数还是十进制的?如前所述,不考虑性能的情况下,可以省略括号里的内容.

        DECIMAL类型理论上包含INT类型(INT类型是DECIMAL类型的真子集)

3.日期和时间类型

        包括DATE,TIME和DATETIME类型

4.布尔类型

        BOOLEAN类型,只有TRUE和FALSE两个值

2.2.3基本表的定义、删除和修改

表操作说明

        1.对表的操作,应该和上面有一样的觉悟,表的数据单元是属性,表的操作是对"属性"的操作.

        2.大小写:mysql中的指令名和关键字用大写,其他小写.        ---按本书写法作为默认写法.

        3.原生MySQL(不借助界面工具)写法(例如Windows自带shell中使用)的写法示例如下:

         (图片为借用,原帖【MySQL】MySQL表的操作_mysql创建表-CSDN博客)

        这是想输入的内容        

create table user(
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码',
birthday date comment '生日'
)charset=utf8mb4 engine=MyISAM;

        这是在shell中具体输入

        按回车换行输入,当行末有分号回车表示语句结束

1.创建表

        本书P44:创建表,实际上就是在数据库中定义表的结构.表的结构包括表与列的名称,列的数据类型,以及建立在表或列上的约束.

        ---列就是属性.定义表需要定义属性名称和属性的数据类型.

        创建表的语句:

                CREATE TABLE 表名

        格式:

                CREATE TABLE 表名

                 (

                          属性名 属性数据类型,

                           ........(重复上一行)

                   );                                        //分号结尾

---DEFAULT说明:DEFAULT选项是给指定列设置默认值,用户不设置则自动生成默认值

    DEFAULT用法:加在上述格式的属性数据类型后面,属性仍然以","结尾.    

        创建表示例:

        CREATE TABLE product
        (
            p_code DECIMAL(6),
            p_name VARCHAR(30),
            p_price DECIMAL(5,2)
        );

          写法说明:属性之间加逗号","(最后一个属性不用加),语句末尾加分号";"      

        DESC指令

                格式:DESC[RIBE]

                含义:显示表的结构

                示例:

                        DESC product       //DESC指令加表名称.

        关键字:AUTO_INCREMENT和PRIMARY KEY

                含义:AUTO_INCREMENT表示自增类型,每增加一个元组,元组内对应的属性值加1

                        PRIMARY KEY表示主键

                        两者要一起使用否则创建表会失败

                格式: 属性名 属性数据类型 AUTO_INCREMENT PRIMARY KEY

                示例:见本书P45例2-5

2.利用子查询来创建表

表内容回顾

什么是表?表内容回顾如下:

表是二维数据,由多个行组成,第一行是关系模型由属性组成,其余行是元组.表=关系模型+元组,如图

表示意图
关系模式 属性1 属性2 ………… 属性n
元组 第1行
第2行
……
第n行
说明:表=关系模式+元组;值需符合属性数据类型

格式:

        CREATE TABLE 表名

                        SELECT 语句;

示例:        

CREATE TABLE dept_c
    SELECT * FROM dept;

        含义:建立一张名叫dept_c的表,从表dept中选择所有(*表示所有)的属性.

                本书在这里没有说SELECT语句的含义,示例语句表示将表dept复制成新表dept_c.

注意:本书在编写时没有给出原始表dept的定义,补充如下(本书P46第一张表有dept定义,有出入):

        CREATE TABLE dept
        (
            deptno INT,
            dname  VARCHAR(14),
            loc    VARCHAR(13)
        );

3.修改表的结构

        修改表的结构,内容包括增加新的列,删除原有的列或者修改列的数据类型、宽度等.

1>增加新列

        格式:

        ALTER TABLE 表名    

                ADD 列名 数据类型 (DEFAULT 默认值);        //括号内的内容为可选项

        示例:

        ALTER TABLE dept_c ADD telephone VARCHAR(11);

2>修改列数据类型和列名

        1)修改列数据类型

        格式:

        ALTER TABLE 表名

                MODIFY 列名 新数据类型 (DEFAULT 默认值);        //括号内的内容为可选项

        2)修改列名

        格式:

        ALTER TABLE 表名

                CHANGE 列名 新列名 新数据类型 (DEFAULT 默认值);        //括号内的内容为可选项

        注意:modify指令修改数据类型的长度也叫修改数据类型

                change指令包含了modify指令功能,如果不修改新数据类型,仍然要把原有数据类型写上.

        示例见本书P46

3>删除列

        格式:

        ALTER TABLE 表名

                DROP 列名;

4>截断表和删除表

        截断表的含义:删除表内所有元组(属性值),保留关系模式(所有属性)-保留表第一行

        删除表的含义:删除整张表(关系模式(第一行)和所有元组)

        截断表格式:

        TRUNCATE TABLE 表名;

        删除表格式:

        DROP TABLE 表名;

小结

        表操作---建立表,修改表,删除表的格式和含义

         表操作的各种指令读起来很直观,这部分内容较多但不复杂.

        

        


网站公告

今日签到

点亮在社区的每一天
去签到