数据库基础 

类型:

1.varchar;字符串,用于姓名班级,地址等,地址一般长50,姓名长20

2.int;整数,用于成绩,序号等

3.float;小数

4.bit;布尔型,用于性别等

5.时间也用varchar,因为datatime取得值需要转换

6.text; 特别长的数 ,随便往里面仍

1.主键

每个表都要有主键;主键是唯一的。全表中不能重复。

2.自增长列

自增长列是不好找主键时候用 名称是ids  类型是int 这一列是没有意义的。下面自动增长点对号

3.外键
从表
主表
主表控制从表
主表中的外键列一定是主键。 类型什么的一定要一样,练习时候用了一次类型写错了结果不能建立,以后要注意

规则:
数据库三大范式

第一范式:保证每一列的原子性,也就是拆到最小单位
山东省淄博市张店区*****
山东省 淄博市 张店区

第二范式:保证数据表的每一列都和主键相关

第三范式:保证数据表的每一列都和主键直接相关

1.将表拆分,一直到不能拆分为止
2.表名加前缀,小写
3.如果找不到主键,就用自增长列
4.外键关系可以不用加

 

使用数据库时,一定先要把WAMPW SERVER软件开启,否则数据库无法使用。

  如果要建立新的数据库,就在Navicat 8 for MySQL右侧单击右键,选择创建数据库。输入数据库的名称,字符集选择utf8--UTF-8-unicode,点击确定,就创建了新的数据库。双击数据库名称,打开数据库。数据库在存储数据时采用表格的形式存储。

  双击数据库的名称会出来数据库的选项,把鼠标放在“表”上,单击右键选择创建表,点击后弹出对话框,在对话框中可以选择创建表。创建表后的时候要规定表存什么信息,存的信息是由列决定的,所以创建表的时候往里填的都是列的信息。数据库里的信息不要用中文,一般用英语,还可以用拼音。尽量用小写字母,前面最好加上前缀,避免后期放到服务器上大量修改。例如作业系统,就写成zy_表名,一般用下划线分隔,规则规定的。

  创建表的界面,名下面写列的名称,用英语或者字母写,能记住就可以。类型下面写数据类型,数据库存储数据时和excle表不一样,excle表存储时比较随意,而数据库存储数据时比较严谨,要求建的一列输入的内容要事先规划好。数据库中的字符串是varchar,字符串需要写长度,别的可以不写长度,选完varchar以后后面写上长度。一般常见的长度是20和50,短的设置为20,长的设置为50。后面还有一个选项是“允许空值”,意思是是不是允许不填,打上对号表示可以不填,去掉对号这列必须要填,不填的话存不上。建下一个列就点击创建栏位或者插入栏位。

  表格建好以后如果想往里面存储数据,就双击打开表格 ,打开后会出现表格输入的列的名称。写完数据后点击下面的对号,保存数据。

  一张数据表里面必须要有一个主键来唯一表示这条数据,选择要建立的主键后点击上面的主键,主键列最后面就会出现一个钥匙的标识。主键是用来控制这张表不能填入重复的信息。每一张表都要加主键。

  自增长列,没有任何意义,仅仅是为了区分每一条数据,名称一般叫做ids。选择自增长列后选择下面的自动递增,自己会填充上,不用往里填数据。一般用在表不好找主键,每列都不能作为主键。

  外键,外键必须有2张表,这2张表之间必须有关系。这2张表可以成为主表和从表,制约另一个表的表叫做主表,被制约的表叫做从表,主表控制从表。

  主表中的外键列一定是主键。

  外键在数据库起到的作用是使数据更加安全。如果建立了外键关系,主表的内容就不能随便删除了,如果删除了一列,那么和这列有关的从表就会受影响出问题。如果要删除主表的内容,就得把从表里先联系的数据全部删除。

  主表不能随便乱动,从表可以。 

  1.建表规则
  数据库三大范式
  第一范式:保证每一列的原子性
  第二范式:保证数据表的每一列都和主键相关
  第三范式:保证数据表的每一列都和主键直接相关

  经验总结:
  1.能够往下拆的表尽量往下拆,拆到不能拆为止。
  2.建立表的时候表名加前缀,最好是小写(只适用于WAMPSERVER数据库)
  3.如果找不到主键,就用自增长列。
  4.外键关系可以不用加

10月14日下午MySQL数据库基础的更多相关文章

  1. 10月28日下午MySQL数据库的增加、删除、查询(匹配数据库登录和可以增、删、查的显示数据库内容的页面))

    一.匹配数据库登录 步骤: 1.做一个普通的登录界面,注意提交方式为post. <!--登录界面--> <form action="chuli.php" meth ...

  2. 10月16日下午MySQL数据库CRUD操作(增加、删除、修改、查询)

    1.MySQL注释语法--,# 2.2.后缀是.sql的文件是数据库查询文件. 3.保存查询. 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了).保存以后下次 ...

  3. 10月16日上午MySQL数据库基础操作(创建、删除)

    以前用的是鼠标在界面上手动创建,这样创建会比较麻烦,而且还会经常出问题.在其它电脑上要用的话还需要重复操作.所以要使用程序代码操作,能通过代码的就不用手动操作. 在数据库界面选择要用的数据库,双击打开 ...

  4. 10月17日下午MySQl数据库CRUD高级查询

    高级查询:1.连接查询 #适用于有外键关系的  没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...

  5. 10月30日上午MySQL数据库的修改(从网页上实现对数据库的更改)

    从网页页面上对数据库进行更改,连接着之前做的增加.删除.查询. 1.先做一个修改页面 <body> <!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页 ...

  6. 10月21日上午MySQL数据库学习内容复习

    1.创建数据库create database 数据库名称删除数据库drop database 数据库名称 2.创建表create table 表名(列名 类型(长度) 自增长 主键 非空,)自增长:a ...

  7. 10月16日上午MySQL数据库作业设计表解析

    作业设计表:多张表存储学生成绩及各种信息 需要从表里面体现: 关于学生的:代号 姓名 性别 年龄 班级 关于课程的:代号 名称 关于老师的:代号 姓名 关于成绩的:例如:闫超--网页--90 要能查看 ...

  8. 2016年10月14日 星期五 --出埃及记 Exodus 18:25

    2016年10月14日 星期五 --出埃及记 Exodus 18:25 He chose capable men from all Israel and made them leaders of th ...

  9. IntelliJ IDEA 最新激活码(截止到2018年10月14日)

    IntelliJ IDEA 注册码: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYX ...

随机推荐

  1. parse date receiving from mvc jsonresult

    if we received data like this: ,"Date":"\/Date(1410969600000)\/", we can parse i ...

  2. 配置163Yum源自动判断你的系统是Centos版本(适用于5.x或6.x)

    #!/bin/bash #Author:nulige #Date: 2015-3-8 #实现功能:自动判断你的系统是Centos版本,适用于5.x或6.x mv /etc/yum.repos.d/Ce ...

  3. JS iframe元素和父页面元素互访

    说明:以下内容来自互联网 [1]子页面取得父页面的dom对象   parent.window.$('#id').val("");   [2]父页面取得子页面的对象   $(wind ...

  4. hibernate用setResultTransformer转换

    当你用hibernate查出数据,但是类型不是原来的类型怎么办,新增的实体类还可以用,query.setResultTransformer(Transformers.aliasToBean(AA.cl ...

  5. Maven-eclipse运行maven命令

    右击项目,点击Run as,如下图: 即可看到有很多现有的maven命令,点击即可运行,并在控制台可以看到运行信息 如果你想运行的maven命令在这里没有找到,点击Maven build创建新的命令, ...

  6. url 字符串中的参数信息

    /// <summary>        /// 分析 url 字符串中的参数信息        /// </summary>        /// <param nam ...

  7. Python 从零学起(纯基础) 笔记 (二)

    Day02 自学笔记  1.  对于Python,一切事物都是对象,对象基于类创建,对象具有的功能去类里找 name = ‘Young’       -   对象 Li1 = [11,22,33]   ...

  8. Leetcode 382. Linked List Random Node

    本题可以用reservoir sampling来解决不明list长度的情况下平均概率选择元素的问题. 假设在[x_1,...,x_n]只选一个元素,要求每个元素被选中的概率都是1/n,但是n未知. 其 ...

  9. 微信小程序一步步搭建商城系列-01-开篇

    1.小程序介绍 小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用.也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题.应用将无处不 ...

  10. dedecms \plus\guestbook.php SQL Injection Vul By \plus\guestbook\edit.inc.php

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 注射漏洞成功需要条件如下 . php magic_quotes_gpc= ...