zoukankan      html  css  js  c++  java
  • 二、数据库/SQL基础

    一、数据库与表的概念

    数据库:存储数据的容器(对比仓库去理解),一般情况一个数据库对应一个项目

    表:真正的存储单元;表表示一个小模块

    数据库与表的关系:一对多的关系,一个库里经常维护多个表

    二、SQL

    1)概念

    SQL:结构化查询语言

    SQL 是访问和处理数据库的标准计算机语言

    2)SQL能做什么?

    创建数据库、表等数据库对象

    数据库记录的增、删、改、查

     3)创建数据库

    语法:create database 数据库名称

    示例:创建测试的数据库

    create database test;

    备注:一般使用Navicat工具连接数据库

    4)创建表

    语法:create table <表名>(<字段1><类型1>,<字段2><类型2>......,<字段n><类型n> ) DEFAULT CHARSET = utf8;

    解释:

    • 字段名:用来标识表的一列
    • 字段类型:用来声明每一个字段存储数据的类型,mysql中数据是有类型的(整数,小数,字符,时间)
    • 字符集:UTF8,指定表支持中文数据存储

    示例:创建student表

      create table student(

        id int not null PRIMARY key auto_increment,

        name varchar(12),

        sex varchar(12),

        class_id int(11),

        address varchar(12),

        create_date datetime,

        update_date datetime

      ) DEFAULT CHARSET = utf8;

    • PRIMARY key:主键  -----唯一,且不能为空。用主键去定位查询,因为主键的唯一性
    • auto_increment:自动增长(自动增加序号,但是删除某个值,序号不能接上),一般与PRIMARY key一起
    • not null 不能为空,必须要填值------非空约束
    • varchar:不定长字符串,定义了varchar(10),只用4个,不会去补齐
    • char是固定长度。定义了char(10),只用4个,会去补齐空位,长度是10

    使用Navicat建表,可预览sql:

     

       

    5)常见字段类型

    整型:

      tinyint:占1个字符,取值范围-128~127

      int:占4个字符,取值范围-2147483648~2147483647

    字符串型:

      char(n):n个字符,最多255个字符,固定长度

      varchar(n):可变长度,最多65535个字符

    时间日期:

      data:日期,格式(yyyy-mm-dd ,例如:2020-08-31)

      time:时间,格式(hh:mm:ss,例如:19:21:33)

      datatime:日期时间,格式(yyyy-mm-dd hh:mm:ss,例如:2020-08-31 19:21:33)

    浮点型(小数):

      float(m,d):单精度浮点型,32bit,m代表总位数,d小数位

      double(m,d):双精度浮点型,64bit,m代表总位数,d小数位

      decimal(m,d):m代表总位数,d小数位,用于精度要求非常高的计算

      decimal(3,7)规定了存储的值不会超过7位数字,并且小数点后不超过3位

    三、总结

    1)创建表声明字段时,字段之间以什么符合分隔?---英文逗号

    2)创建表声明字段时,最后一个字段后面需要注意什么?---不需要加逗号

    3)主键的特征是什么?---非空和唯一性

    4)如果表需要支持中文数据存储,需要什么做?----建表的类型为varchar类型

    5)创建了表,发现表没有出现。---刷新一下

    6)Navicat里sql写完丢失了。---没有保存

    7)学会分析错误:Err

      

  • 相关阅读:
    ios开发之 -- 自动轮播图创建
    swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
    HTML5开发之 -- 模态突出窗(bootstrap)
    ios开发之--UICollectionView的使用
    ios开发之--判断奇偶数
    swift开发之 -- ? 和 ! 的作用
    swift开发之--UISearchBar的使用/UISearchController的使用
    swift开发之--报错:Class "***ViewController" has no initializers
    Android开发相关
    沁园春·雪
  • 原文地址:https://www.cnblogs.com/zhangjx2457/p/13591378.html
Copyright © 2011-2022 走看看