• MySQL学习笔记


    注释

    单行注释:#注释文字(没空格)
    单行注释:-- 注释文字(有空格)
    多行注释:/* 注释文字 */,注意不能够嵌套注释;

    1、启动和关闭MYSQL服务

    net stop mysql
    net start mysql
    
    • 1
    • 2

    2、库的增删改查

    -- 查看所有库
    show databases;
    -- 查看某个库
    show create database school_info;
    -- 创建库
    create database school_info;
    -- 创建库指定编码
    create database school_info charset utf8;
    -- 修改库编码
    alter database school_info charset gbk;
    -- 删除库
    drop database school_info;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3、表的增删改查

    3.1 创建表

    create table 表名(
    
    	列名 列类型,
    	列名 列类型,
    	。。。
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    create table stu(name char(10) not null,sex char(1) not null,age int);
    
    • 1

    3.2 修改表

    -- 修改表字段 数据类型 约束条件
    alter table stu change name name1 varchar(10) not null;
    -- 新增表字段
    alter table stu add addr char(20),add addr2 char(20);
    -- 指定位置新增
    alter table stu add id  int first;
    alter table stu add addr3 varchar(10) after name;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.3 删除

    -- 删除表字段
    alter table stu drop addr2;
    -- 删除表
    drop table stu;
    
    • 1
    • 2
    • 3
    • 4

    4、数据类型

    4.1 字符串:char(num) 与 varchar(num)的区别

    字符串长度存储
    char定长直接存储字符内容
    varchar变长开头由1-2个字节存储该字符的总长度,后面接着存储字符内容

    例如你定义了char(8),则这一列中存储的内容长度都为8,不足8则会用空格补充(但是我们在查询的时候是不会带空格的,mysql会对此进行处理)

    总结:

    • char的存取速度很快,但是由于是定长,当大部分内容没有达到规定长度时,会浪费不少空间资源
    • varchar则不会,它根据实际长度存储,但是由于存储的特殊形式造成存取速度不及char,当char存储的内容都为一个定值时,则char不仅不浪费空间还提高存取效果,因为varchar还要留出一部分存储字符串的长度;
    • 很早之前,大家都觉得varchar好,节省资源,但是到现在,磁盘资源已经不成问题,因此我更倾向于选择char,也就是所谓的以空间换时间了。

    4.2 整型

    int 不需要指定字符的长度

    4.3 浮点型

    • decimal double
    • float(m,n) 单精度
    • double(m,n) 双精度
    • decimal(m,n)小数值

    例如:float(5,2) 代表的意思是:小数位2,整数位3位的数值,总长度为5位。

    CREATE TABLE stu_info (
    	NAME CHAR ( 8 ) NOT NULL,
    	score1 FLOAT ( 5, 2 ),
    	score2 DOUBLE ( 5, 2 ),
      score3 DECIMAL ( 5, 2 ));
    	
    INSERT INTO stu_info
    VALUES
    	( "李四", 45.3456, 45.3456, 45.3456 );
    
    SELECT * FROM stu_info;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    -- 使用默认值
    create table stu_info1(name char(8) not null,score1 float,score2 double,score3 decimal);
    insert into stu_info1 values("张三",80.1234567,80.1234567,80.1234567);
    select * from stu_info1;
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • double默认比float更精确 浮点型
    • decimal默认存储的是decimal(10,0) 实际是字符串类型
    • 日常使用float就可以解决大部分的问题了

    4.4 日期型

    CREATE TABLE stu_info3 ( ruxue date, kaixue datetime );
    
    INSERT INTO stu_info3
    VALUES
    	( "2020-12-01 12:00:34", "2020-12-01 12:00:34" );
    	
    SELECT * FROM stu_info3;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    4.5 枚举型

    • enum 只能单选,例如:男女
    • set 单选或多选,例如:兴趣爱好
    CREATE TABLE stu_info4 (
    	sex enum ( "男", "女" ),
    	hobby SET ( "运动", "阅读", "旅行" ));
    
    INSERT INTO stu_info4
    VALUES
    	( "男", "运动,旅行" ),
    	("女","运动" );
    
    select * from stu_info4;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    web基础与HTTP协议
    文件包含漏洞(一)
    开源日报 0830 | 免费计算机科学自学路径:系统化教育与全球支持
    【数据结构初阶】线性表——单链表(手撕单链表)
    【时间之外】EA交易代码入门
    代码随想录day57|647. 回文子串516. 最长回文子序列
    Java并发编程—CompletableFuture的异步执行案例
    关于软件物料清单(SBOM),你所需要了解的一切
    计算机毕业设计Java教师科研成果管理(源码+系统+mysql数据库+lw文档)
    python获取安卓Hierarchy并解析
  • 原文地址:https://blog.csdn.net/weixin_43857827/article/details/133157882