Weibw's World Weibw's World
首页
  • HTML
  • Python

    • Python基础知识
    • Python CookBook第三版
    • Flask
  • MySQL

    • MySQL基础知识
    • MySQL调优
    • MySQL面试题
算法
  • FineReport
  • Kettle
  • Git
  • 微信公众号文章
  • 优秀博客文章
  • 其他
收藏夹
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Weibw

一个没有梦想的咸鱼
首页
  • HTML
  • Python

    • Python基础知识
    • Python CookBook第三版
    • Flask
  • MySQL

    • MySQL基础知识
    • MySQL调优
    • MySQL面试题
算法
  • FineReport
  • Kettle
  • Git
  • 微信公众号文章
  • 优秀博客文章
  • 其他
收藏夹
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

    • MySQL基础知识

      • 数据库基本概念
      • 数据库类型和常见的关系型数据库
      • MySQL介绍
      • MySQL8的安装与卸载
      • MySQL的登录、访问、退出操作
      • 使用Navicat连接MySQL
      • SQL语言入门
      • DML
        • DDL
        • 表的完整性约束
        • DQL查询
        • 数据库对象
      • MySQL进阶

      • MySQL面试题

    • 多余文档备份
    • MySQL
    • MySQL基础知识
    weibw
    2021-12-24

    DML

    # 创建数据库表

    # 认识数据库表

    表(Table)是数据库中数据存储最常见和最简单的一种形式,数据库可以将复杂的数据结构用较为简单的二维表来表示。二维表是由行和列组成的,分别都包含着数据,如表所示。

    image

    每个表都是由若干行和列组成的,在数据库中表中的行被称为记录,表中的列被称为是这些记录的字段。

    记录也被称为一行数据,是表里的一行。在关系型数据库的表里,一行数据是指一条完整的记录。

    字段是表里的一列,用于保存每条记录的特定信息。如上表所示的学生信息表中的字段包括“学号”、“姓名”、“性别”和“年龄”。数据表的一列包含了某个特定字段的全部信息。

    # 创建数据库表 t_student

    笔记

    1、建立一张用来存储学生信息的表

    2、字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息

    3、学号是主键 = 不能为空 + 唯一

    4、姓名不能为空

    5、性别默认值是男

    6、Email唯一

    # 1、创建数据库

    image

    # 2、新建查询

    image

    # 3、创建数据库表
    ##这是一个单行注释
    /*
    多行注释
    多行注释
    多行注释
    */
    /*
    建立一张用来存储学生信息的表
    字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息
    */
    -- 创建数据库表:
    create table t_student(
            sno int(6), -- 6显示长度 
            sname varchar(5), -- 5个字符
            sex char(1),
            age int(3),
            enterdate date,
            classname varchar(10),
            email varchar(15)
    );
    -- 查看表的结构:展示表的字段详细信息
    desc t_student;
    -- 查看表中数据:
    select * from t_student;
    -- 查看建表语句:
    show create table t_student;
    /*
    CREATE TABLE `t_student` (
      `sno` int DEFAULT NULL,
      `sname` varchar(5) DEFAULT NULL,
      `sex` char(1) DEFAULT NULL,
      `age` int DEFAULT NULL,
      `enterdate` date DEFAULT NULL,
      `classname` varchar(10) DEFAULT NULL,
      `email` varchar(15) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    */
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37

    # 数据库表字段类型

    # 整数类型

    image

    MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示

    提示

    主键自增:不使用序列,通过auto_increment,要求是整数类型

    # 浮点数类型

    image

    提示

    需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。 score double(4,1)

    score double(4,1)--小数部分为1位,总宽度4位,并且不会自动扩充。

    # 字符串类型

    image

    提示

    CHAR和VARCHAR类型相似,均用于存于较短的字符串,主要的不同之处在于存储方式。CHAR类型长度固定,VARCHAR类型的长度可变。

    因为VARCHAR类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR类型,这样可以大大地节约磁盘空间、提高存储效率。

    CHAR和VARCHAR表示的是字符的个数,而不是字节的个数

    # 时间与日期类型

    image

    TIMESTEMP类型的数据指定方式与DATETIME基本相同,两者的不同之处在于以下几点:

    (1) 数据的取值范围不同,TIMESTEMP类型的取值范围更小。

    (2) 如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值,MySQL会自动将该字段赋值为系统当前的日期与时间。

    (3) TIMESTEMP类型还可以使用CURRENT_TIMESTAMP来获取系统当前时间。

    (4) TIMESTEMP类型有一个很大的特点,那就是时间是根据时区来显示的。例如,在东八区插入的TIMESTEMP数据为2017-07-11 16:43:25,在东七区显示时,时间部分就变成了15:43:25,在东九区显示时,时间部分就变成了17:43:25。

    # 添加数据

    注意事项

    • int 宽度是显示宽度,如果超过,可以自动增大宽度 int底层都是4个字节
    • 时间的方式多样 '1256-12-23' "1256/12/23" "1256.12.23"
    • 字符串不区分单引号和双引号
    • 如何写入当前的时间 now() , sysdate() , CURRENT_DATE()
    • char varchar 是字符的个数,不是字节的个数,可以使用binary,varbinary表示定长和不定长的字节个数。
    • 如果不是全字段插入数据的话,需要加入字段的名字
    -- 查看表记录:
    select * from t_student;
    -- 在t_student数据库表中插入数据:
    insert into t_student values (1,'张三','男',18,'2022-5-8','软件1班','123@126.com');
    insert into t_student values (10010010,'张三','男',18,'2022-5-8','软件1班','123@126.com');
    insert into t_student values (2,'张三','男',18,'2022.5.8','软件1班','123@126.com');
    insert into t_student values (2,"张三",'男',18,'2022.5.8','软件1班','123@126.com');
    insert into t_student values (7,"张三",'男',18,now(),'软件1班','123@126.com');
    insert into t_student values (9,"张全蛋",'男',18,now(),'软件1班','123@126.com');
    insert into t_student (sno,sname,enterdate) values (10,'李四','2023-7-5');
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    # 修改、删除数据

    注意事项

    • 关键字,表名,字段名不区分大小写
    • 默认情况下,内容不区分大小写
    • 删除操作from关键字不可缺少
    • 修改,删除数据别忘记加限制条件
    -- 修改表中数据
    update t_student set sex = '女' ;
    update t_student set sex = '男' where sno = 10 ;
    UPDATE T_STUDENT SET AGE = 21 WHERE SNO = 10;
    update t_student set CLASSNAME = 'java01' where sno = 10 ;
    update t_student set CLASSNAME = 'JAVA01' where sno = 9 ;
    update t_student set age = 29 where classname = 'java01';
    -- 删除操作:
    delete from t_student where sno = 2;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    编辑 (opens new window)
    上次更新: 2023/10/13, 17:39:25
    SQL语言入门
    DDL

    ← SQL语言入门 DDL→

    最近更新
    01
    牛客网非技术快速入门SQL练习题
    03-08
    02
    其他日常SQL题
    03-07
    03
    用户与权限管理
    03-05
    更多文章>
    Theme by Vdoing | Copyright © 2021-2023 | Weibw | 辽ICP备18015889号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式