自己的MySQL阅读笔记,持续更新,直到看书结束。

数据库技术可以有效帮助一个组织或者企业科学、有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一。

大家如果看过MySQL的书,也可以看我的知识导图做一个复习,因为是自己的读书笔记,所以有的地方也不是很详尽,但是十分欢迎私下交流共同进步。

SQL整理的目录

今天有觉悟:专栏索引——个人的数据分析学习(持续更新)​zhuanlan.zhihu.com


目录

  1. 定义数据库

    1. 创建数据库
    2. 选择与查看数据库
    3. 修改数据库
    4. 删除数据库
  2. 定义表
    1. 创建表
    2. 查看表
    3. 修改表
      1. 添加字段
      2. 修改字段
      3. 删除字段
    4. 重命名表
    5. 删除表
  3. 表的数据更新

1.定义数据库

1.1 创建数据库

基本语法格式

CREATE 

  • []内为可选项
  • | 或的关系,任选一项
  • db_name 数据库名字
  • IF NOT EXISTS 如果没有存在则创建
  • CHARACTER SET 指定数据库字符集 中文gb2312
  • COLLATE 指定字符集校对规则 中文为gb2312_chinese_ci

实例

  • 创建一个名为db_school的数据库
CREATE 

1.2 选择与查看数据库

1 选择数据库

USE 

  • USE指定其为当前数据库

2 查看数据库

SHOW 

  • 查看当前可用数据库列表

1.3 修改数据库

基本语法格式

ALTER 

  • 1.ALTER是修改全局特性,保存在db.opt文件中
  • 2.数据库名称可以省略,为修改当前数据库

实例

ATRER 

  • 修改已有数据库db_school的默认字符集和校对规则

1.4 删除数据库

基本语法格式

DROP 

  • 永久删除,但是用户权限要手动删除

实例

DROP 

  • 删除数据库db_school

2 定义表

2.1 创建表

基本语法格式

CREATE 

例子

CREATE 

主要语法说明

  • 1.指定表名和字段名

    • 创建表之前,需要指定数据库也就是db_name.tabl_name,并且分别加引号‘db_name'.'tabl_name'是可以的。
  • 2.完整性约束条件
    • 实体完整性约束条件(PRIMARY KEY、UNIQUE)
    • 参照完整性约束(FOREIGN KEY)
    • 用户自定义约束(NOT NULL、DEFAULT、CHECK约束等)
  • 3.NULL 与 NOT NULL
  • 4.AUTO_INCREMENT
    • 将该字段设置为自增属性可以给记录一个唯一而又容易确定的ID号。每个表只能定义一个,并且该字段得是主键约束或者候选键约束。
    • 如果插入了值,那么之后的值的排序都是根据你插入的值
  • 5.DEFAULT
    • 值在向数据表中插入数据时,如果没有明确给出某个字段所对应的值,则DBMS此时允许为此字段指定一个值。比如DEFAULT“汉”。
  • 6.存储引擎类型
    • SHOWENGINES查看系统所支持的引擎类型
    • InnoDB是默认,也是事务型数据库的首选引擎

2.2 查看表

1.查看表的名称

语法格式

SHOW 

  • {FROM | IN} db_name 可以显示为当前数据库的表名称

2.查看数据表的基本结构

  • 查看指定数据表的结构,包括字段名、字段的数据类型、字段值是否允许为空、是否为主键、是否有默认值等
  • SHOW COLUMNS { FROM | IN } tb_name [{FROM | IN} db_name] ;
    • {DESCRIBE | DESC} tb_name;

3.查看数据表的详细结构

SHOW 

2.3 修改表

1.添加字段

语法格式

ALTER 

  • FIRST将新添加的字段设置为表的第一个字段
  • AFTER放在指定字段后边
  • 没有值就最后边

实例

ALTER 

2.修改字段

语法格式

  • ALTER TABLE tb_name CHANGE [COLUMN] 原字段名 新字段名 数据类型 [约束条件];
  • ALTER TABLE tb_name ALTER [COLUMN] 字段名 {SET|DROP} DEFAULT;
  • ALTER TABLE tb_name MODIFY [COLUMN] 字段名 数据类型 [约束条件] [FIRST | AFTER 已有字段名]

实例1

  • 将数据库db_school中表tb_student的字段birthday重命名为age,并将其数据类型更改为TINYINT,允许其为NULL,默认值为18
ALTER 

实例2

  • 将数据库db_school中表tb_student的字段department的默认删除
ALTER 

实例3

  • 将数据库db_school中表tb_student的字段department的默认值修改为“经济学院”
ALTER 

实例4

  • 将数据库db_school中表tb_student的字段department的数据类型更改为VARCHAR(20),取值不允许为空,并将此字段移至字段studentName之后。
ALTER 

3.删除字段

语法格式

ALTER 

示例

  • 删除数据库db_school中表tb_student2的字段id
ALTER 

2.4 重命名表

1.RENAME[TO]子句

  • ALTER TABLE 原表明 RENAME [TO] 新表名;

2.RENAME TANLE

  • RENAME TABLE 原表名1 TO 新表名1[, 原表名2 TO 新表名2]... ...

2.5 删除表

  • DROP TABLE [IF EXISTS] 表1[,表2]... ...

3.表的数据更新

3.1 插入数据

1.1 插入完整的数据记录

INSERT 

1.2 为表的指定字段插入数据

INSERT 

1.3 同时插入多条数据记录

INSERT 

1.4 插入查询结果

INSERT 

1.5 使用REPLACE语句插入表数据

REPLACE 

使用INSERT如果碰到主键或者UNIQUE约束的时候会报错,而REPLACE不但不会报错,还会把旧有的记录删除

3.2 修改数据记录

UPDATE 

修改特定数据记录的时候需要通过WHERE去指定背修改的记录所需要满足的条件。

如果你想修改所有数据记录时,不需要指定WHERE子句。

WHERE里面可以嵌套查询子句

3.3 删除数据记录

DELETE 

删除指定的记录的时候,用WHERE取指定需要满足的条件。

WHERE里面也可以嵌套查询子句。

如果想要删除所有的记录,那么可以不带WHERE。或者有一个更快的方法就是用TRUNCATE,其为直接删除一个表然后创建一个表。

  • TRUNCATE [TABLE] tb_name

依照表结构创建student表设置sno为主键_7.MySQL库表的创建与修改相关推荐

  1. mysql数据库结构导出word_Windows导出MySQL数据库表结构到Word文档-DBExportDoc V1.0 For MySQL...

    必要条件: 1.Microsoft Office Word(我用WPS不行) 2.mysql-connector-odbc 3.会看文档 下载地址:关注微信公众号:八四七,回复5获取,压缩包中包含有具 ...

  2. 阿里 mysql建表规范_阿里的Mysql规范 MySQL库表设计规范

    阿里的Mysql规范 MySQL库表设计规范 表设计 1)     表必须定义主键,默认为ID,整型自增,如果不采用默认设计必须咨询DBA进行设计评估 2)    ID字段作为自增主键,禁止在非事务内 ...

  3. MySQL - 库表设计之IP和TIMESTAMP的处理

    文章目录 学习更多干货 Pre TIMESTAMP IP 总结 学习更多干货 带你搞定MySQL实战,轻松对应海量业务处理及高并发需求,从容应对大场面试 Pre MySQL - 高效的设计MySQL库 ...

  4. gcc操作mysql 建表_用gcc批量建mysql库表

    用gcc批量建mysql库表 2007-6-1文字大小:大中小 file 1 my.c //------------------------------------------------------ ...

  5. 依照表结构创建student表设置sno为主键_探索SQL-数据库的安装与表格创建

    因现在在从事互联网运营工作中有涉及到处理数据这一方面,感觉对数据分析这一块工作还是挺感兴趣的,因此想要往这一领域深入发展,转行到数据分析.而SQL是数据分析师的必备技能之一,作为从未接触过SQL的一枚 ...

  6. 查看表结构索引_索引策略–第1部分–选择正确的表结构

    查看表结构索引 介绍 (Introduction) Among many different things that can affect SQL Server performance, some a ...

  7. mysql库表的触发器表名_MySQL 触发器,实现不同数据库,不同表名,表结构不同,数据实时同步...

    创建触发器: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ...

  8. MySQL - 高效的设计MySQL库表

    文章目录 生猛干货 范式与反范式 范式 第一范式 第二范式 第三范式 第二范式 VS 第三范式 设计符合 2NF 的表 范式优缺点 反范式 范式 VS 反范式 MySQL 使用原则和设计规范 基本设置 ...

  9. mysql库表散列_数据库表--hash clustered table

    Hash clustered table与索引聚簇表非常相似,只有一个主要区别:聚簇键索引被一个hash函数所取代,表中的数据就是索引.所以没有物理索引 hash clustered table也有副 ...

最新文章

  1. Java 内存泄漏监控检测与分析
  2. Java开发主流框架是什么?
  3. Pandas数据排序,人人都能学会的几种方法
  4. Java中IO和NIO的本质和区别
  5. TensorFlow:实战Google深度学习框架(四)MNIST数据集识别问题
  6. 提升代码可读性的 10 个技巧
  7. 我们分析了成千上万的编程访谈。 这就是我们学到的东西。
  8. python微信聊天机器人源码_8.【代码】微信聊天机器人(API的应用) - Python网络爬虫实战...
  9. 基于JFinal框架开发的企业办公系统-JFinalOA v1.1源码
  10. 【华为云技术分享】大数据容器化成趋势,华为云BigData Pro一马当先
  11. python获取指定字符串中重复模式最高的字符串
  12. 高通QXDM工具使用
  13. Flash cs4新增内容:三维效果
  14. 致爱丽丝 之MY收藏
  15. mv单位是什么意思_ayawawa经常说的pu MV是什么意思 怎么mv是什么意思算
  16. scanf函数解析,附带rewind函数(清空缓存)
  17. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
  18. Linux学习笔记2:文件管理
  19. 巴比特 | 元宇宙每日必读:未成年人打赏后要求退款,虚拟主播称自己是大冤种,怎么看待这个监管漏洞?...
  20. 看看女程序媛们的自述

热门文章

  1. 龙白滔:一个实用的中国央行数字货币和Libra设计方案
  2. 27、scratch教程-画心形
  3. 在js中让一个text输入框的默认日期是今天
  4. PYTHON的原地操作
  5. Outlook 2019 for mac(outlook邮箱)
  6. 关于ENSP上路由设备40错误,创建的虚拟网卡为VirtualBox Host-Only Network #2
  7. [转]一个老人去世的全过程,看了想哭
  8. 医疗界“最强大脑”落户杭州!阿里巴巴联合浙大一院共同打造
  9. mysql iops qps_Mysql 之 IOPS、QPS、TPS相关问题总结
  10. #HT4928#SM5401 SOP-8移动电源SOC同口充放电 0.8A线性充电+0.8A开关放电 引脚完全兼容HT4928 功能替代TP4333