大家好,我是jacky,很高兴跟大家继续分享MySQL数据分析实战课程,前面我们学习了库层面增删改查的SQL语句,这次课jacky将给大家介绍表层面的增删改查,

(一)本课时的学习逻辑

表层面的增删改查,重点在增,也就是怎样创建表,为什么呢?我们想数据库的三个层级是什么,库层级,表层级和数据层级,是不是?表层级在中间,我们说表一定是存储在某个库中,表中的数据不用说一定存储在表里是吧;所以表层级是起到承上启下的作用,也就是我们在创建表时,不是简单就创建一个表就完事了,表是不是存储数据的,我们往表里放数据的时候的时候,是不是总得有个规则,如果没有规则,是不是就浪费表得空间和效率了;下面我们那商场陈列货品打个比方

一个比方:商场陈列货品

我们都去过超市或者商场吧,只要是超市或者商场都是把商品分门别类得陈列是不是,化妆品在一个区域,男装在一个区域,女装在一个区域是吧,并且商场得装修一定是规整的,我们看着很整齐很舒服是吧;那商场为什么要把同类型的商品放在一个区域呢,是不是为了提高顾客的购买效率,比如说我要去商场买这个迪奥的化妆品,我们去化妆区是不是就能找到了,如果商品不是按区域划分的,是不是我们得满商场去找这个迪奥,这样购物是不是很没效率是不是很差;再说,商场装修是不是每个品牌一定是排列整齐得才能保证固定得商场面积下放下更多得专柜是吧;

同样道理,我们把MySQL中的表比作商场,商场里的商品就是表中的数据,是吧;我们是不是也要给放在表中的数据归类,不同数据类型的数据是不是要有不同的约束和规则,才能提高我们查询数据的效率是吧;我们也要想商场规划专柜一样,用一套规则,规范我们的数据存放,来提高我们表的空间使用,是吧;

前面说了这么多,就为了说明一个道理:对于表层级的增删改查,重点在于增,也就是怎样创建表,因为在创建表的时候我们要对表进行设计,就跟商场规划专柜是一个道理,也就是设计这个表,我们在创建这个表时,要搭建这个表的表结构,那么搭建表结构要设定什么呢?设定将要存放在表中数据的字段属性,表的类型及存储位置,创建表的默认字符集,创建表索引;一口气说了这么多名词,大家不要着急,只要逻辑捋清了,这些都很简单,jacky会一一给大家讲解;

(二)增删改查概述

--增(创建表)
create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8 --删(删除表)
drop table demo; --改(修改表名)
rename table 旧表名 to 新表名; --查(查表之前先选库)
show tables; --查补充:查看表的定义
DESCRIBE 表名;

DESC 表名;
create table user(
id int,
name varchar(30),
pwd varchar(30)
);
  • 我们说表操作的增删改查,重点在于增,就是因为我们在创建表时,大家有没有想过,为什么id后面要加int,为什么name和pwd后面要加varchar,varchar后面为什么要加30,不是加别的,上面这些都是新增表之前的设计阶段,这些很简单,当我们学会了之后,以后上来创建表的时候,这些都是习惯性动作,我们上来就是int,接着varchar,30,40,我们随便给一个就完事了,但是varchar给1000行不行,它总是有上限的,是不是,你数字越大,当然空间浪费率就越高,数字越小也不能写成1,只能写一个字符,这样也不合适,写的差不多就行了,我们说表的设计或者说搭建一共就这么几块,咱们把表设计就能搞定了,好下面我们一个一个说,先说表的数据类型,也叫表字段类型;

(二)表设计之基本数据类型

2.1 三大类型

  • 数值

    • int类型

      • 哪些用整型,我们不要学多了,学的太复杂了,都没办法学下去了,比如说年龄,比如说id,咱们不用想,这肯定是整型,比如说性别男和女那肯定是字符串,比如说密码,不可能是纯数字是吧,可能会有其他的字母,那肯定也是字符串,字段的类型,我们说有Excel基础是不是理解起来都很简单,
    • float类型

  • 字符串

  • 日期

create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
  • create table 表名(… …)为创建表的基本结构,某些资料讲创建表的时候也就到此为止了;

  • DEFAULT CHARSET=utf8 对表层级又设置了字符集,jakcy在前面创建库层级时,是不是也设置了字符集,这里大家注意在库中创建表也要对应的设置字符集;

  • ENGINE = InnoDB InnoDB是数据库引擎,那数据库

1.查看表

SHOW tables;
  • jacky提示:在使用SHOW tables 之前,必须先选择数据库,否则将会报错

如何查看表的定义?

DESCRIBE 表名;

DESC 表名;

2.创建表

create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8

创建表的几种情况,DEFAULT CHARSET=utf8 对表级别又设置了相应的编码;ENGINE=InnoDB ,数据库引擎用的InnoDB,这也是用的比较多的,企业环境下用的比较多是因为它有一个最最重要的功能,就是支持事务;那什么是事务,什么是原子性操作,这也是我们面试的时候,被问的比较多的问题,这个我们在后面会详细来讲,这里大家只要知道InnoDB被企业广泛应用,是因为用它支持事务就可以了;

  • (1)是否可以为空,null表示空,非字符串

    • not null 不可空

    • null 可空

  • (2)默认值,创建列时可以指定默认值,当插入数据时如果没有主动设置,则自动添加默认值;

    • create table demo1(nid int not null defalut1,num int null)

      • defalut 1 就是默认值等于1,不输入值的时候,默认值等于1;
  • (3)自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)

create table demo1(
nid int not null auto_increment primary key,
num int null)

在创建表的时候,我们的SQL语句里加上auto_increment primary key,就是表示列自增

create table demo1(
nid int not null auto_increment,
num int null,
index(nid))
  • jacky强调:

    • 1) 对于自增列,必须是索引(含主键)

    • 2) 对于自增可以设置步长和起始值

“`

MySQL数据分析-(10)SQL基础操作之表操作的更多相关文章

  1. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...

  2. {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作

    MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...

  3. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

  4. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  5. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  6. mysql笔记1—安装、配置和基础的数据表操作

    本篇笔记主要分为两部分: 1,安装完毕之后的简单配置 2,数据的类型.简单的数据表操作命令 一.mysql安装完毕之后 windows和linux环境,除mysql的安装.配置有所不同,其他操作一样, ...

  7. MySql基础学习-库表操作

    1.创建数据 CREATE DATABASE mysql_study; 2.连接数据库 USE mysql_study 3.创建数据表 CREATE TABLE person( id int auto ...

  8. django基础 -- 6. 多表操作

    一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...

  9. MySQL常见的库操作,表操作,数据操作集锦及一些注意事项

    一 库操作(文件夹) 1 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 2 数据库相关操作 创 ...

随机推荐

  1. 区间dp最长回文子序列问题

    状态转移方程如下: 当i > j时,dp[i,j]= 0. 当i = j时,dp[i,j] = 1. 当i < j并且str[i] == str[j]时,dp[i][j] = dp[i+1 ...

  2. C#项目中窗体的ShowDialog()和show()的区别

    ShowDialog()弹出的窗体为模式化窗体: show()弹出的窗体为非模式化窗体: 模式化窗体与非模式化窗体的区别: 模式化窗体会使程序中断,直到关闭窗体: 打开窗体后不能替换到其他窗体: 子窗 ...

  3. 第三代PacBio测序技术的测序原理和读长

    针对PacBio单分子测序——第三代测序技术的测序原理和读长     DNA基因测序技术从上世纪70年代起,历经三代技术后,目前已发展成为一项相对成熟的生物产业.测序技术的应用也扩展到了生物.医学.制 ...

  4. Down State Flush Feature

    Down State Flush Feature ========================================================== Citrix NetScaler ...

  5. Python函数知识点总结

    1.函数的定义2.如何定义一个函数以及函数语法3.函数的调用4.函数的参数(形参,实参)以及参数的传递5.函数的返回值6.变量的作用域7.匿名函数8.嵌套函数和闭包9.装饰器10.函数思维导图 1.函 ...

  6. Image Processing and Analysis_15_Image Registration:Multi-modal volume registration by maximization of mutual information——1996

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  7. Windows10系统里安装SCons

    1. 安装python2.7 执行python2.x的安装包程序python-2.7.12.amd64.msi进行安装即可 2. 安装scons 下载scons-2.5.0.zip压缩包并解压缩 CM ...

  8. python基本应用--三元应用

    格式为:result=值1 if 条件 else 值2 如 a,b,c = 1,3,5 d =a if a>b else c 那么d的结果是多少? 其实可以使用if来完全表达 if a>b ...

  9. mongodb索引 复合索引

    当我们的查询条件不只有一个时,就需要建立复合索引,比如插入一条{x:1,y:2,z:3}记录,按照我们之前建立的x为1的索引,可是使用x查询,现在想按照x与y的值查询,就需要创建如下的索引     创 ...

  10. 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers (数位DP)

    2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers (数位DP) 链接:https://ac.nowcoder.com/acm/contest/163/ ...