MySQL入门(6)- 创建表、表的复制、增/删/改 表结构

创建表、表的复制、增/删/改 表结构

此系列记录PN视频学习笔记


* 本博客涉及到的数据为bjpowernode.sql,数据见文末,SQL文见MySQL入门(9)文末。

* 该数据有三张表,分别是部门表dept(deptno部门编号、dname部门名称、loc位置)、

                                       员工表emp(empno工号、ename员工姓名、job职位、mgr直属领导工号、

                                                            hiredate入职日期、sal月薪、comm补贴、deptno部门编号)、

                                        薪水等级表salgrade(grade等级、losal区间下限、hisal区间上限)



   1、表格(table),用来存储数据,表格是一种格式化文件。

    2、表格行被称为记录(表中的数据),表格列被称为字段。

    3、表格的字段属性包括:字段名称、字段数据类型、字段长度、字段约束

    4、建表最大的难度是字段个数,每个字段的长度,数据类型

    5、语法结构:

    create table tableName(

    columnName dataType(length),

    columnName dataType(length),

columnName dataType(length),

);

set character_set_results= ‘gbk’;


 6、关于MYSQL数据库中的数据类型

           -varchar

                    * 可变长度字符串:根据实际长度动态分配储存空间

                    * varchar(3)表示存储的数据不能超过3个字符长度

           -char

                    * 定长字符串:不用判断,效率高

                    * varchar和char相比:

                                - 都是字符串类型

                                - varchar比较只能,可以根据实际数据长度分配空间,比较节省空间,

                                    但是在分配的时候需要执行相关的判断程序,效率较低

                                - char不需要动态分配空间,所以执行效率很高,但是可能会导致空间浪费。

                                - 若字段中数据不具备伸缩性,如性别,建议采用char类型存储

                                - 若字段数据具备很强伸缩性,建议采用varchar类型存储

                    * char(3) 表示存储的数据不能超过3个字符长度

           -int

                    * 整数型

                    * int(3)表示最大可以存储999

           -bigint

                    * 长整型

                    * 对应java程序中的long类型

           -float

                    * 浮点型单精度

           -double

                    * 浮点型双精度

                    * double(7,2),表示7个有效数字,两个小数位

           -date

                    * 日期类型

                    * 在实际开发中为了通用,所以日期类型一般不使用,一般采用字符代替

           -blob

                    * Binary LargeObject  二进制大对象

                    * 专门存储图片、声音、视频等数据

                    * 数据库表中存储一个图片是很常见的,但是存储一个比较大的时间是很少的,一般都是提供一个视频的链接地址

           -clob

                    * CharacterLarge Object  字符大对象

                    * 可以存储比较大的文本,4G+的字符串可以被储存

           - 其他...

 

    7、创建表格【学生表】

       字段:学号【int】、姓名【varchar】、性别【char】、出生日期【date】、邮箱地址【varchar】

       建表语句:

       CREATE TABLE t_student(

                        no INT(15),

                        name VARCHAR(32),

                        gender CHAR(1),

                        birth DATE,

                        email VARCHAR(128)

);

 

注意: *表格名字最好以t_或者tbl_开始,增强可读性

       * VARCHAR最好是2的幂数,方便储存中文

        mysql>desc t_student;

        +--------+--------------+------+-----+---------+-------+

        |Field  | Type         | Null | Key | Default | Extra |

        +--------+--------------+------+-----+---------+-------+

        | no     | int(15)      | YES |     | NULL    |      |

        | name   | varchar(32)  | YES |     | NULL    |      |

        | gender |char(1)      | YES  |     |NULL    |       |

        |birth  | date         | YES |     | NULL    |      |

        |email  | varchar(128) | YES  |     |NULL    |       |

        +--------+--------------+------+-----+---------+-------+

删除表格:

       drop table t_student;【若数据可中没有t_student,会报错】

       drop table if exists t_student;【最好此阿勇这种方式删除一个表格,是MYSQL的特色,其他数据库没有】

 

    8、向t_student表格中插入数据

       8.1向表格中插入数据必须使用insert语句,这属于DML语句

       8.2DML语句包括:insert,delet,update【增删改表中的数据,与表的结构无关】

       8.3insert语句的语法格式:

              INSERTINTO tablename(columnname1,columnname2,columnname3...)values(value1,value2,value3...)

              字段和值必须一一对应:个数必须相同,数据类型必须一致。

       8.4向t_student表格中插入数据

             INSERTINTO t_student(no,name,gender,birth,email)

            INSERT INTO t_student(no,name,gender,birth,email) 

            mysql> select * from t_student;

            +------+----------+--------+------------+--------------------------+

            | no   |name     | ge

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值