基础知识:用MySQL数据库创建表格

2,144 阅读5分钟

大致了解MySQL

众所周知,MySQL是一个数据库管理系统,但其实数据库也分多种类型,MySQL是其中一种,叫做关系型数据库。

关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。

关系链是: 服务器(Server) -> 数据库(例如MySQL) -> 表格(Table) -> 行(Row) -> 列(Column)

表格里面还包含了多行与多列(图片没有展示)。

那么我们怎么在数据库里创建表格呢?

首先,我们得创建一个数据库

创建数据库很简单,首先创建一个后缀名是.sql的文件,然后书写下段代码:

    CREATE DATABASE test;

create是创建的意思,database是数据库的意思,因为是关键词,所有是大写(书写规范),test是你给数据库取的一个名字, 当然你也可以叫lili、mary之类的。

是的,就是这么简单,一句话你就创建了一个数据库。 现在可以打开MySQL服务器,然后在shell里查看你创建的数据了。

打开shell,输入

    mysql -uroot
    #回车
    SHOW DATABASES;

你的服务中所有的数据库会展示出来,并且你会看到,多了一个名叫 test 的数据库。

但是,如果你重新执行上段操作,会发现报错,原因是该服务器已经有了一个叫 test 的数据库了,所以不能再创建一个同名的数据库。

所以你需要在创建数据库的时候,加上这样一段代码:

    DROP DATABASE IF EXISTS test;
    CREATE DATABASE test;

新增的代码意思是:如果服务器中已经有了名叫 test 的数据库,那么删除它。

这样就万无一失啦,再查看多少次服务器都不会出错了。

创建好数据库,那么我们可以创建表格了。

首先在创建表格之前,我们要先调用该数据库,以免计算机不知道我们要在哪创建。

    USE test;
    CREATE TABLE myTable(
        列名称: 列类型,
        列名称: 列类型,
        ...
    );

使用 USE test 连调用该数据库,然后创建表格,不难发现,表格里填了一些内容,这些内容规定了表格的表头,即:你的表格都有哪些列。

列名称不是很难理解,一般都是你自己取的名字,比如你做一个学生班级的表格,表格里包含了学生的编号、姓名、性别、分数等等。

    USE test;
    CREATE TABLE student(
        id: TINYINT,
        name: VARCHAR(6),
        ...
    );

但是用什么值来表示它们,规定这些列的类型,就比较重要了,因为这些是规定好的,你得记住别写错了。

列类型

要创建表格,那么我们一定要知道它包含的列都有哪些类型的。

  1. 数值类型
    • TINYINT 微整型,占1个字节 范围-128~127
    • SMALLINT 小整型,占2个字节 范围-32768~32767
    • INT 整型,占4个字节 范围 -2147483648~2147483647
    • BIGINT 大整型,占8个字节
    • FLOAT 单精度浮点型,占4个字节,范围3.4e38,范围比INT大的多,可能产生计算误差。
    • DOUBLE 双精度浮点型,占8个字节,范围比BIGINT大的多
    • DECIMAL(M,D) 定点小数,不会产生计算误差,M代表总的有效位数,D代表小数点后的有效位数
    • BOOL 布尔型,只有两个结果TRUE/1、FALSE/0,TRUE和FALSE不能添加引号;真正存储数据的时候,会使用TINYINT。
  2. 日期时间类型
    • DATE 日期型 '2018-12-31'
    • TIME 时间型 '14:22:30'
    • DATETIME 日期时间型 '2018-12-31 14:22:30'
  3. 字符串类型——必须添加引号
    • VARCHAR(M) 变长字符串,不会产生空间浪费,操作速度相对较慢,M最大值是65535
    • CHAR(M) 定长字符串,可能产生空间浪费,操作速度较快,M最大值是255;用于存储手机号码,身份证号等固定长度的字符。
    • TEXT(M) 大型变长字符串,最多存2G

创建好了列头,可以往里面填值了。

上面只是创建了一个表格,写了它的第一行,里面包含了所有列的分类,那么下面就要往表格里填内容了,即它之后的行。

    INSERT INTO test VALUES(1,'Jack',...);

值1对应列头的第一个,值2对应列头的第二个,以此类推。

你也可以对内容进行修改:

    UPDATE student SET name = 'Mike' WHERE id = 1;

或者删除:

    DELETE FROM student WHERE id = 1;

查看表格

一个简单的表格就已经创建好了,那么怎么查看呢? 两种方式:

  1. 交互方式,类似上面查看服务器的方法。 在shell里执行:
    mysql -uroot
    #回车
    USE test;
    #回车
    SELECT * FROM student;
    #回车即可查看
  1. 脚本方式: sql文件里加上下面这句代码:
    SELECT * FROM student;

然后在shell里执行:

    mysql -uroot < 你的sql文件的位置
    #回车查看

但是一般脚本语言不用于查看,而是用交互模式查看。

关于语言

需要注意的是,上面的写法,如果列表里填的值有中文,会显示出乱码,所有我们需要设置一下。 在创建表格的时候,设定语言范围是UTF-8,由于mysql对于‘-’号会理解成减号,所有写的时候省去了‘-’号。

    SET NAMES UTF8;
    DROP DATABASE IF EXISTS test;
    CREATE DATABASE test CHARSET = UTF8;

这样在值为中文的时候就不会显示乱码了(用交互模式查看,如果是脚本模式还是看不懂的~)。

你学会了吗?

以上是自己的一点学习记录,如有不对还请指正,谢谢!