数据库基础

什么是数据库

      数据库是一个以某种有组织的方式存储数据集合,通常是一个文件或是一组文件,是通过DBMS(数据库管理系统)
来对数据库进行交互的,数据库可以是保存在硬设备上的文件,
也可以不是,很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你不是直接访问数据库,
而是借助DBMS对数据库进行操作 数据库是保存有组织的数据容器

什么是表

     在你将资料放入文件柜时,并不是直接放入文件柜,而是记录在纸上,这个纸对于数据库而言,就是数据库的表。
表是一种结构化的文件,可以用来存储某种特定类型的数据。 表是某种特定类型数据的结构化清单 表名在一个数据内是唯一的

什么是模式

 模式是数据库和表的布局及特性的信息

什么是列

列是表中的一个字段,所有表都是由一个或多个列组成的

数据类型

所容许的数据的类型,每个表列都有相应的数据类型,它限制或容许该列中存储的数据。

数据类型限制可存储在列中的数据种类,还帮助正确的排序数据,并在优化磁盘使用方面起重要作用。

因此在创建表时必须对数据类型给予特别的关注

表中的数据按行存储的,所保存的每个记录存储在自己的行内。

如果把表想象为网格,网格垂直的列为表列,水平的行为表行

行(row)表中的一个记录

主键

表中每一行都应该有可以唯一标识自己的一列(或一组列),其值能够唯一区分表中每个行。

没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行

虽然并不是总是需要主键,但大多少数据库设计人员都应保证他们创建但每个表具有一个主键,
以便于以后但数据操作和管理 表中但任何列都可以为主键,只要它满足以下条件
>> 任意两行都不具有相同但主键值
>> 每个行都必须具有一个主键值,主键列不允许NULL值。

主键值规则

主键通常定义在表的一列上,但这并不是必需但,也可以一起使用多个列作为主键,在使用多列作为主键时,上述条件必需应用
到构成主键但所有列,所有列值但组合必须是唯一的(单个列的值可以不唯一)

主键的最好习惯,除mysql强制实施规则外,应该坚持几个普遍认可的最好习惯

  • 不更新主键列的值
  • 不重用主键列的值
  • 不在主键列中使用可能会更改的值

什么是SQL

SQL是结构化查询语言(structured query language)的缩写,SQL是一种专门用来与数据库通信的语言
SQL由很少的词构成,这是有意而为的,设计SQL的目的是很好的完成一项任务,即提供一种从数据库中读写数据
的简单有效的方法

SQL优点

  • SQL不是某个特定的数据供应商专有的语言,几乎所有的重要的DBMS都支持SQ,所以学习此语言几乎能与所有的数据库打交道
  • SQL简单易学,它的语句全部都是由描述性很强的英语单词组成
  • SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作
DBMS专用的SQL,SQL不是一种专利语言,而且存在一个标准委员会,他们试图定义可供所有DBMS使用的SQL语法,
但事实上任意两个DBMS实现但SQL都不完全相同

Mysql学习之基础的更多相关文章

  1. MySQL学习笔记——基础与进阶篇

    目录 一.###MySQL登录和退出 二.###MySQL常用命令 三.###MySQL语法规范 四.###基础查询 五.###条件查询 六.###排序查询 七.###常见函数的学习 八.###分组查 ...

  2. Mysql学习---面试基础知识点总结

    drop.truncate. delete区别 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 ...

  3. mysql学习之基础知识

    一.什么是数据库 一般而言,数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,使用关系型数据库管理系统(RDB ...

  4. mysql学习之基础篇01

    大概在一周前看了燕十八老师讲解的mysql数据库视频,也跟着学了一周,我就想把我这一周所学的知识跟大家分享一下:因为是第一次写博客,所以可能会写的很烂,请大家多多包涵.文章中有不对的地方还请大家指出来 ...

  5. Mysql 学习之基础操作

    一.表复制 1.复制表结构    将表hello的结构复制一份为表hello3 2.复制数据 a.如果两张表的结构一样且你要复制所有列的数据 mysql> insert into hello3 ...

  6. mysql学习之基础篇08 UTF8编码

    这次我们来说一下在Mysql中的编码问题: 我们知道应用于计算机的最早的字符集是ASCII,它所组成的编码是ASCII编码:由于对于其他国家来说它所容纳的字符个数比较少,后来就出现了ANSI字符集,它 ...

  7. mysql学习之基础篇05

    mysql中的统计函数: 1. 查询商品价格中最高的价格: select max(shop_price) from goods; 2. 查询商品价格中最低的价格: select min(shop_pr ...

  8. mysql学习之基础篇04

    五种基本子句查询 查询是mysql中最重要的一环,我们今天就来说一下select的五种子句中的where条件查询: 首先我们先建立一张商品表:goods 由于商品数目太多,我就不一一列举了. 在这里我 ...

  9. mysql学习之基础篇03

    我们今天来进行建表的基本操作: 首先要建表就要了解列类型,因为建表就是声明列的过程,列声明完成了,表也就建好了. mysql中列分为三大类: 一.数值型 数值型又分为整型和浮点型两种. 先来看整型: ...

随机推荐

  1. Spring Boot集成MyBatis的2种方式

    目录 写在前面 准备工作 配置数据库驱动 配置数据源 原生集成MyBatis 依赖配置 注册MyBatis核心组件 定义并使用映射器 通过MyBatis-Spring-Boot-Starter集成 默 ...

  2. 利用git提交代码

    一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可 ...

  3. DNS服务器 知识点

    DNS服务器: 1.DNS: Domain Name Service 域 名字 服务 2.域名组成:(树形结构) 根域 .顶级域 国家顶级域 cn jp hk uk 商业顶级域 com 商业机构 go ...

  4. cpp智能指针

    weak_ptr<Cls1> wp1; { shared_ptr<Cls1> ptr1(new Cls1);//共享指针 wp1 = ptr1;//临时共享指针 std::co ...

  5. Ubuntu里设置python默认版本为python3(转载)

    0 - 步骤 在命令行中执行下述命令: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 sudo ...

  6. Pytorch里的CrossEntropyLoss详解

    在使用Pytorch时经常碰见这些函数cross_entropy,CrossEntropyLoss, log_softmax, softmax.看得我头大,所以整理本文以备日后查阅. 首先要知道上面提 ...

  7. Django-3-Template模板

    模板是html文档+Django逻辑语句的组合. 一.变量和标签 变量通过{{ }}来表示,两个大括号中间是变量名. 标签通过{% %}来表示,就是Python中的函数和方法. 常用标签: {% fo ...

  8. docker创建Redis集群

    开始工作: yum install wegt ##安装下载工具 yum install net-tools ##安装网络工具 yum install tree ##安装tree命令(方便查看集群配置文 ...

  9. linux下堆溢出unlink的一个简单例子及利用

    最近认真学习了下linux下堆的管理及堆溢出利用,做下笔记:作者作为初学者,如果有什么写的不对的地方而您又碰巧看到,欢迎指正. 本文用到的例子下载链接https://github.com/ctfs/w ...

  10. SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介

    本文介绍SQL的基本查询语句 (1) select... from  * 表示全部, 选择的东西还可以进行简单的运算, 可以列别名 select * from student; -sage from ...