数据表的增、删、改

在这一部分,对数据表的增加、删除、修改进行介绍。在第一章的例子中,数据上传操作中,网页工具可能会对变量的数据类型辨识操作,从而导致上传后的数据失真,所以最好的方式还是通过SQL新建相应的数据表,并写入数据。

创建数据表

创建数据表有三种方式:创建数据表并定义字段;基于现有表的格式创建新表;将查询出来的数据定义为新表。接下来对创建数据表进行具体介绍。

创建数据表并定义字段

该方法是数据分析师日常工作中创建表的最常用方式。

create table [if not exists] table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

解释下上面这段代码,create table [if not exists] table_name中,create table table_name比较好理解,create table表示告诉计算机要创建一张新表,table_name是这张新表的名称;[if not exists]是可选项,也就是说即使不添加这一句也可以,但是建议在创建表前都添加这一语句,避免创建失败,其表示的含义是如果不存在,由于是新创建表格,不能够保证之前不存在这个名称的表,所以添加这一个说明,避免程序出错。

在create table [if not exists] table_name后()内的内容是对表的字段进行定义,也就是包含哪些列,以及这些列的数据类型是什么,列之间使用“,”隔开。column_name1是列的名称,data_type(size)是对列的数据类型进行定义。在这里需要介绍下SQL中的数据类型。SQL的数据类型包括:数值型、字符串型、日期和时间型。每一种类型中又可以细分为多种小的数据类型,其差别在于存储空间的大小,也就是内容长度的问题。在这里不对各种细分类型进行展开论述,只对较为常用的进行简述。

  • 数值型:数值型包括整数型和浮点型,两者的区别在于浮点型包含小数。最常用的整数型是INT,最常用的浮点型是FLOAT。
  • 字符串型:字符串型用于存储文本数据,如姓名这类数据。常用的字符串性是CHAR和VARCHAR,两者的区别在于CHAR是定长的字符串型,VARCHAR是不定长的字符串型。在使用字符串型时需要指定最大值n,即该字段最长可以存储n个字符。
  • 日期和时间型:主要包括DATE、TIME和DATETIME,其中DATE表示日期类型,TIME表示时间类型,DATETIME是日期和时间的混合。
  • 空值(null):空值在SQL中是比较特殊的一种数据类型,它表示什么都没有,相当于Excel中的空白单元格,由于是空白的,所以不能归属于上面的任一中数据类型。如何判断是不是空值,不能够使用=或!=,要使用is null判断是否是空值,is not null判断非空值。

举个例子,现在需要创建一个学生表(表名student)来存储学生的信息:学号(整数型)、姓名(字符串型)和出生日期(日期型)。则代码如下:

CREATE TABLE if not exists student
    (
      `sid` int, 
      `name` varchar(4), 
      `birthday` date
    )
;

在上面基础内容的基础上,现在介绍几个可选的语句:

  • NOT NULL:放在字段后面,表示限定该字段不可为空
  • DEFAULT:放在字段后面,表示默认值
  • AUTO_INCREMENT:放在字段后面,表示自增字段,即从1开始逐步累加
  • UNSIGNED:仅限于数值型,表示无符号,即该字段仅可表示非负数
  • PRIMARY KEY (col_name1,col_namen):设置该数据表的主键

将上述可选字段放入创建数据表的代码中,如下:

create table [if not exists] table_name
(
column_name1 data_type(size) [NOT NULL] [UNSIGNED] [DEFAULT] [AUTO_INCREMENT],
column_name2 data_type(size) [NOT NULL] [UNSIGNED] [DEFAULT] [AUTO_INCREMENT],
column_name3 data_type(size) [NOT NULL] [UNSIGNED] [DEFAULT] [AUTO_INCREMENT],
....,
PRIMARY KEY (col_name1,col_namen)   
);

基于现有表的格式创建新表

在上一节中介绍如何从0开始创建一张数据表,但在实际工作中,往往已经存在有许多张表了,

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

数据分析入门技术篇

全部评论

相关推荐

吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务