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 数据库相关操作 创 ...
随机推荐
- gRPC Golang/Python使用
gRPC Golang/Python使用 以前开发网站都是用http协议,学过TCP/IP协议的人都知道,在传输层TCP的基础上,应用层HTTP就是填充了一定规则的文本. 1.gRPC使用和介绍 工作 ...
- C# Task.WhenAll
1.有时候我们需要同时执行一些操作,然后把这些操作的结果进行汇总,以达到用异步处理降低操作耗时的效果,此时我们会考虑使用Task,而Task.WhenAll则排上了用场. public void Is ...
- “df: cannot read table of mounted file systems”.
“df: cannot read table of mounted file systems”.“df -l” returned an error: “df: cannot read table of ...
- 关于vue.js的部分总结
1.MVVM和MVC的区别: MVVM:是Model-View-ViewModel的简写,即模型-视图-视图模型 模型:后端传递的数据 试图:所看到的页面 视图模型:mvvm模式的核心,它是连接vie ...
- stm32 printf重定向
printf函数调用fputc int fputc(int ch, FILE *p) { USART_SendData(USART1, ch); //重定向到串口 while(USART_GetFla ...
- 为什么要用BigDecimal
一般货币计算的时候都要用到BigDecimal类,为什么一般不适用float或者double呢? 先看一下浮点数的二进制表示: 小数 0.125 0.125 * 2 = 0.25 0 0.25 * 2 ...
- 解决使用JPA时对象在set属性时更新了数据库问题
https://www.jianshu.com/p/1100814ff54f 之前也遇到过一次这个问题,打印的日志中也可以看见update相关的sql语句,但当时不知道为什么会去自动更新,就用了别的方 ...
- Lua 学习之基础篇十<Lua 常见的语法规则>
下面讲一些lua 常见的用法和规则,可以为学习理解lua带来帮助,最后附上的部分是lua的基本操作,基本包含所有常用语法语句. 1. if判断 lua把 nil 和false 视为"假&qu ...
- elasticsearch查询:启动项目报错No property ... found for...Did you mean '...'?
网上找的案例是: 实体类字段定义:private String sku_no;dao中接口名定义:Goods findBySkuNo(String skuNo);spring-data按照接口方法定义 ...
- 前端知识体系:JavaScript基础-原型和原型链-new一个对象的详细过程,手动实现一个 new操作符
可以描述 new一个对象的详细过程,手动实现一个 new操作符 1. new 一个对象的详细过程:(原文地址) 首先我们看下new Person输出什么? var Person = function( ...