MySQL数据分析-(10)SQL基础操作之表操作
大家好,我是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基础操作之表操作的更多相关文章
- MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题
1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...
- {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作
MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...
- [SQL基础教程] 1-5 表的删除和更新
[SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...
- MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系
数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- mysql笔记1—安装、配置和基础的数据表操作
本篇笔记主要分为两部分: 1,安装完毕之后的简单配置 2,数据的类型.简单的数据表操作命令 一.mysql安装完毕之后 windows和linux环境,除mysql的安装.配置有所不同,其他操作一样, ...
- MySql基础学习-库表操作
1.创建数据 CREATE DATABASE mysql_study; 2.连接数据库 USE mysql_study 3.创建数据表 CREATE TABLE person( id int auto ...
- django基础 -- 6. 多表操作
一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...
- MySQL常见的库操作,表操作,数据操作集锦及一些注意事项
一 库操作(文件夹) 1 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 2 数据库相关操作 创 ...
随机推荐
- 用python将项目中的所有代码(或txt)合并在一个文件中
设计模式开卷考试给的例子代码都是一个类一个java,实在太恶心了,所以写了一个python脚本. import os fileansdir=r'C:\Users\tonyson_in_the_rain ...
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Coin 矩阵快速幂
Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...
- testwebsite
testwebsite ------------------------------------------------------------------ Creating Test environ ...
- SublimeText 3 常见快捷键
·F12 跳转至预定义 ·F11 全屏模式 ·Ctrl+A 本文全选 ·Ctrl+F 打开底部搜索框,查找关键字. ·Ctrl+D 本文件选中光标选中的单词 ·Ctrl+L 选中光标所在一行 ·C ...
- laravel 的安装与配置
1.工作环境 php 7.0+ .MySQL5.1+ 这里可以用开发环境包一键安装: 自己用的是wamp(windows)http://www.wampserver.com/en/ linux系统和m ...
- SAP WebIDE里UI5应用的隐藏文件project.json
在SAP WebIDE UI5应用编辑器里的菜单View->Show Hidden files点击后,即可发现项目文件夹下有一个隐藏文件project.json: 内容如下: 这也解释了为什么b ...
- coding++ :MySQL函数——FIND_IN_SET()
语法:FIND_IN_SET(str,strlist) 定义: 1). 假如字符串 str 在由N子链组成的字符串列表 strlist 中,则返回值的范围在1到N之间. 2). 一个字符串列表就是一个 ...
- 论文笔记:Deformable ConvNets v2: More Deformable, Better Results
概要 MSRA在目标检测方向Beyond Regular Grid的方向上越走越远,又一篇大作推出,相比前作DCN v1在COCO上直接涨了超过5个点,简直不要太疯狂.文章的主要内容可大致归纳如下: ...
- Django drf:认证及组件、token、局部钩子源码分析
一.drf认证功能 二.token讲解 三.局部钩子源码分析 一.drf认证功能 1.认证简介: 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录则不能查 ...
- SVN版本控制—branches、trunk、tag篇
新建资源仓库时,可选择默认创建三个文件夹.这三个文件夹分别是[trunk][branches][tags] [Trunk] 一般用于存放目前项目主线,也就是项目所有功能模块的集合体,一整个项目所有代码 ...