• SQL 基础概念

【领会】

关系型数据库基本概念

表的基本概念(字段、记录)

表的约束条件(主键、外键、非空、唯一、自增、默认值)

实体关系图(E-R 图)

ANSI-SQL 以及不同的数据库实现的关系

【熟知】

关系型数据库的数据类型

表操作(创建表、修改表、删除表、查看表)

【解析】

  1. 表字段的约束条件主要包括主键、外键、非空、唯一、自增和默认值等

  2. 主键 非空、不能重复;外键 可重复 可为空

  3. 关系数据库的数据类型有(以MySQL为例):

数值类型 | 整数类型:tinyint、smallint、mediumint、int、bigint | 浮点数类型:float、double | 定点小数类型:decima

-- 创建默认数值型表
DROP TABLE
IF EXISTS numerical_value_default_info;
CREATE TABLE numerical_value_default_info (
tinyi TINYINT COMMENT'tinyint',
smalli SMALLINT COMMENT'smallint',
mediumi MEDIUMINT COMMENT'mediumint',
i INT COMMENT'int',
bigi BIGINT COMMENT'bigint',
flo FLOAT COMMENT'float',
dou DOUBLE COMMENT'double',
deci DECIMAL COMMENT'decimal'
)COMMENT'默认数值型表';

运行以上建表语句后,创建的默认数值型表信息如下:

MySQL常用数值型数据类型

数据类型

说明

占用字节数

取值范围 默认显示宽度
无符号 有符号

int

整型

4

[ 0,  ] [ , ] 11

bigint

长整型

8

[ 0,  ] ,  ] 20
float(T, D) 单精度浮点型 4 T:数据总位数;D:数据中小数点后保留几位
double(T, D) 高精度浮点型 8
decimal(T, D) 定点型 T+2

备注:

  • 1个字节 = 8位二进制数
  • 显示宽度和数据类型的取值范围无关

日期/时间类型:year、time、date、datetime、timestamp

数据类型 数据格式(说明) 占用字节数 取值范围
year YYYY(年) 1 1900 ~ 2155
time HH:MM:SS(时:分:秒) 3 -838:59:59 ~ 838:59:59
date YYYY-MM-DD(年-月-日) 3 1000-01-01 ~ 9999-12-3
datetime YYYY-MM-DD HH:MM:SS (年-月-日 时:分:秒) 8 1000-01-01 00:00:00 ~ 9999-12-3 23:59:59
timestamp YYYY-MM-DD HH:MM:SS(年-月-日 时:分:秒) 4 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:17 UTC

备注:datetime和timestamp数据格式一致,但timestamp与时区相关,不同时区查询结果不同。

字符串类型:char、varchar、tinytext、text、mediumtext、longtext、enum、set

二进制类型:bit、binary、varbinary、blob、mediumblob、longblob

char&varchar | binary&varbinary对比
数据类型 char(A) varchar(A) binary(A) varbinary(A)
占用字节数 A [1, 255] B+1 B<=A A [1, 21585] A[1,255] B+1 B<=A A [1, 65265]
区分大小写 不区分 不区分 区分 区分

备注:
1.varchar和varbinary的占用字节最大值
VARCHAR(2222222) //试错值大点

结果:
> 1074 - Column length too big for column 'vachar' (max = 21845); use BLOB or TEXT instead
> 时间: 0s

VARCHAR(21845)
结果:
> 1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
> 时间: 0.001s

最后试出的结果是:VARCHAR - 21585 & varbinary - 65265

2.char&binary 固定长度 | varchar&varbinary可变长度

3.char&varchar 不区分大小写 | binary&varbinary 区分大小写

-- 创建字符串型表
DROP TABLE
IF EXISTS str_char_info;
CREATE TABLE str_char_info(
c CHAR(255) COMMENT'char',
vc VARCHAR(21585) COMMENT'varchar',
t TEXT COMMENT'text',
e ENUM('a','b') COMMENT'enum',
s SET('1','2') COMMENT'set'
)COMMENT'字符串型表';-- 插入数据
INSERT INTO test.str_char_info
VALUES('a', 'aa', 'aaaaaaaaaa', 'a', '1');
INSERT INTO test.str_char_info
VALUES('A', 'AA', 'AAAAAAAAAAA', 'A', '1');-- 查询
SELECT*
FROMtest.str_char_info
WHEREc = 'A'
--  vc = "AA";

-- 创建二进制型表
DROP TABLE
IF EXISTS binary_info;
CREATE TABLE binary_info(
b BIT(10) COMMENT'bit',
bi BINARY(4) COMMENT'binary',
vbi VARBINARY(65265) COMMENT'varbinary',
bl BLOB COMMENT'BLOB'
)COMMENT'二进制型表';-- 插入数据
INSERT INTO test.binary_info
VALUES(1023, 'a', 'aa', 'aaaa');INSERT INTO test.binary_info
VALUES(111, 'A', 'AA', 'AAAA');-- 查询
SELECT*
FROMtest.binary_info
WHERE
--  bi = 'a\0\0\0'vbi = 'aa';

4.表操作语句

-- 创建学生信息表
DROP TABLE
IF EXISTS`student_info`;
CREATE TABLE `student_info` (`id` int(11) PRIMARY KEY AUTO_INCREMENT COMMENT '学号',`name` varchar(255) NOT NULL COMMENT '姓名',`age` int(11) DEFAULT NULL COMMENT '年龄',`address` varchar(255) DEFAULT NULL COMMENT '地址',`phone` varchar(255) DEFAULT NULL COMMENT '联系电话',`remarks` varchar(255) DEFAULT NULL COMMENT '备注'
)COMMENT'学生信息表';-- 创建学科表
DROP TABLE
IF EXISTS `subject_info`;
CREATE TABLE `subject_info`(
`id` INT PRIMARY KEY AUTO_INCREMENT COMMENT'学科编号',
`name` VARCHAR(20) UNIQUE COMMENT'学科名称',
`remarks` TEXT COMMENT'备注'
)COMMENT'学科表';-- 创建成绩表
DROP TABLE
IF EXISTS `score_info`;
CREATE TABLE `score_info`(
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT'id',
`stu_id` INT COMMENT '学号',
`sub_id` INT COMMENT '学科',
`score` DOUBLE COMMENT '成绩',
`remarks` VARCHAR(255) COMMENT '备注'
) COMMENT '成绩表';-- 修改表名
ALTER TABLE `students_info` RENAME `student_info`;-- 修改字段数据型类型
ALTER TABLE `student_info` MODIFY `address` TEXT;-- 修改字段名
ALTER TABLE `student_info` CHANGE `name` `studentName` VARCHAR(10);-- 增加字段
ALTER TABLE `student_info` ADD `add` BIT(10) UNIQUE; -- 删除字段
ALTER TABLE `student_info` DROP `add`;-- 修改字段顺序
ALTER TABLE `student_info` MODIFY `add` BIT(20) FIRST;
ALTER TABLE `student_info` MODIFY `add` BIT(20) AFTER `age`;-- 添加数据 学生信息表
INSERT INTO `student_info` ( `id`, `name`, `age`, `address`, `phone`, `remarks` )
VALUES( NULL, '小强', 28, '北京·大兴', '17710578257', 'boy' );INSERT INTO `student_info` ( `id`, `name`, `age`, `address`, `phone`, `remarks` )
VALUES( NULL, '张三', 27, '上海·嘉定', '18810881088', 'boy' );INSERT INTO `student_info` ( `id`, `name`, `age`, `address`, `phone`, `remarks` )
VALUES( NULL, '李四', 27, '天津·红桥', '19999999999', 'girl' );-- 添加数据 成绩表
INSERT INTO `score_info` (`stu_id`, `sub_id`, `score` )
VALUES(1, 1, 90.5 ), (1, 2, 99), (1, 3, 96.6),(2, 1, 60.5 ), (2, 2, 55), (2, 3, 78.6),(3, 1, 77.5 ), (3, 2, 88), (3, 3, 99),(4, 1, 88 ), (4, 2, 66), (4, 3, 95.4),(5, 1, 99.5 ), (5, 2, 100), (5, 3, 88),(50, 1, 99.5 ), (50, 2, 100), (50, 3, 88);-- 导入数据FROM CSV文件
LOAD DATA LOCAL INFILE 'C:/Users/xuqiang_duan/Desktop/subject.csv'
INTO TABLE `subject_info`
FIELDS TERMINATED BY ','
IGNORE 1 LINES
;-- 导入数据FROM TXT文件
LOAD DATA LOCAL INFILE 'C:/Users/xuqiang_duan/Desktop/subject.txt'
INTO TABLE `subject_info`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY ''
LINES TERMINATED BY '\n'
;-- 查看表结构
DESC `subject_info`;

CDA数据分析师 - SQL数据库基础 数据类型表操作语句相关推荐

  1. CDA数据分析师 - SQL数据库基础 查询连接

    SQL 查询 [应用] 查询单表语句 select语句.from 语句.where 语句.group by 语句.having 语句.order by 语句.limit语句&子查询等 聚合函数 ...

  2. oracle只查询0点数据,Oracle 10g数据库基础之基本查询语句-中-函数

    Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...

  3. CDA数据分析师2020年度精品试听集锦

    CDA数据 分析就业班试听课--MySQL数据库应用 数据库的查询语句是每个数据分析师必须掌握的技能,通过数据库阶段的课程使学员掌握数据库的使用.本课程讲介绍了数据库的库管理,表管理等基础操作以及应对 ...

  4. 33个必须知道的数据分析师SQL面试问题和答案

    33个必须知道的数据分析师SQL面试问题和答案 SQL是一种强大的编程语言,被广泛用于管理和分析数据.如果你想成为一名数据分析师,或者是正在寻找新工作的现有分析师,准备好回答SQL面试问题是很重要的. ...

  5. mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...

    基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...

  6. CDA数据分析师协会等级认证证书

    CDA数据分析师协会等级认证证书 (Certified Data Analyst  Certificate) CDA数据分析师证书由CDA数据分析师协会官方颁发,此证书在国内需通过人大经济论坛举办的C ...

  7. CDA数据分析师3个级别的薪资待遇|人才认证标准

    从统计到数据分析,从数据挖掘到大数据,数据科学逐渐成为了一门新兴的学科,数据分析师也逐渐成为了一门抢手的职业.如何成为数据分析师?如何入行数据分析?教育是一个难题!在这个行业中,是否有高质量的证书?拿 ...

  8. SQL数据库基础知识巩固

    SQL数据库基础知识 数据库,又称"电子化的文件柜",是"按照数据结构来组织.存储和管理数据的仓库",是一个长期存储在计算机内的.有组织的.可共享的.统一管理的 ...

  9. SQL数据库基础语法总结

    SQL数据库基础操作语法总结 说明: 用{ }表示括号里的内容是必写的,用[ ]表示括号里的内容可写可不写:用<>表示在实际编写语句时可以用相应的内容代替:用A|B表示A或B的意思(只能选 ...

最新文章

  1. linux LD_PRELOAD 预加载 so 简介
  2. PHP array_intersect_uassoc
  3. WebApi捕捉异常的一套方案
  4. 花之吻自己查错误订单的一个小脚本
  5. VTK:几何对象之Circle
  6. hbase集群安装和shell操作
  7. textmetric结构
  8. 判断字符串出栈合法性
  9. alloc_page分配内存空间--Linux内存管理(十七)
  10. Go 统计含 emoji 字符串字符数
  11. VSphere服务器ESXI4.1.0设置虚拟主机来电开机自启动
  12. 如何用CSC.exe来编译Visual C#的代码文件
  13. 在c语言程序中整型常量不能表示的数制是,C源程序中不能表示的数制有哪些
  14. kvaser 驱动修复(linux)
  15. 「详解」torch.nn.Fold和torch.nn.Unfold操作
  16. 桌面小部件Widget
  17. android报错:Only the original thread that created a view hierarchy can touch its views.
  18. 【用户价值分析 RFM模型】用户价值分析
  19. bootstrap的学习-基础样式和排版一
  20. windows bitlocker加密 分区

热门文章

  1. Linux Xshell Putty中常用的命令(积累,更新中)
  2. opencv视频分析与对象追踪之CAMSHIFT对象跟踪
  3. CAD中如何将底图变成单一的颜色?
  4. C语言图形界面开发(演示视频、完整代码文件)
  5. WPS Excel正则表达式函数提取复杂字符串文本
  6. java 数字签名_数字签名的Java签名步骤
  7. Photoshop 2019 最新版下载
  8. 无刷电机DRV8313芯片原理图
  9. 神经网络中的常用算法-梯度下降算法
  10. 人长得是漂亮,但论文是抄的:她的硕士、博士学位或将全被撤回!