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 数据库相关操作 创 ...
随机推荐
- HTTP协议探究(五):H2中一些重要的概念
一 复习与目标 1 复习 简单密码学.对称加密与非对称加密 数字签名.数字证书 SSL/TLS HTTPS = HTTP + SSL/TLS,SSL/TLS为HTTP提供了保密性.完整性和鉴别性 2 ...
- 前端关于 superSlide.js 使用,一款基于jquery的前端控件
1引用jQuery.js 和 jquery.SuperSlide.js 2 编写HTML ** 以下是默认的HTMl结构,分别是 ".hd" 里面包含ul, ".bd&q ...
- 配置vue 多页面
安装vue 1. 全局安装 vue-cli环境 npm install --global vue-cli 2. 创建一个基于webpack模板的新项目 vue init webpack my-proj ...
- 适配方案(七)iPhone各种系统分辨率、屏幕分辨率
- Java 面向对象_继承
继承 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待,例如:父类是员工,子类是程序员,那么程序员就是一个员工,代码示例: // 员工类 public class Employee{ ...
- .Net给图片加水印,并解决“无法从带有索引像素格式的图像创建Graphics对象”问题
using (Image img = Image.FromFile(savePath)) { //如果原图片是索引像素格式之列的,则需要转换 if (img.PixelFormat!=null) { ...
- XML文件解析之JDOM解析
1.JDOM介绍 JDOM的官方网站是http://www.jdom.org/,JDOM解析用到的jar包可以在http://www.jdom.org/dist/binary/中下载,最新的JDOM2 ...
- libssh
1.SSH概念 ssh(secure shell),安全外壳协议,由IETF的网络小组所制定.ssh为建立在应用层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. ...
- 【问题】为啥WMWare Workstation里面虚拟机的网关默认是NAT网关
今天做KickStart自动化安装实验,无意中发现一个奇怪现象. 先描述下我的实验环境:笔记本Win10,安装了WMWare Workstation,在WMWare Workstation上面安装了C ...
- LINQ图解教程
LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…where片段 from子句let子句w ...