zoukankan      html  css  js  c++  java
  • 表的增删改查+mysql的数据类型

    1,配置文件的使用

    配置文件的创建需要安装在根目录,bin的同一级,并且设置文件名称为 my.ini

    内容和使用----->cfg格式 即section+option

    【mysqld】 分区服务器端配置 ===修改后需要重启服务器

    【mysql】 客户端配置 ===修改后需要重连

    # 客户端   除了mysql之外的     客户端的配置修改后  只需要退出重新连接即可
    [client]
    user = root
    password = 111
    default-character-set = utf8
    
    # 服务器端配置 需要重启服务器
    [mysqld]
    character-set-server = utf8
    

    2,表的分类 数据库引擎

    各自的使用场景不同

    数据库引擎指的是真正的负责存储数据的模块:

    不同的引擎具备不同的特点: 需要根据实际需求来选择最合适的

    补充: SQL 全程是结构化查询语句,在关系型数据库中是通用的

    mysql支持的引擎-------------------show engines

    默认的也是最常用的引擎是innodb

    创建表的指定引擎:create table 名称(字段 类型) engine=xxx

    简单的增删改查CRUD

    其中有一点值得提示的就是若在表中无法看到字符串内容,突然发现字符的编码格式不是utf-8模式,则需要删表,无论怎么改之后都无法查看内容 ,因为当时写入格式是什么就是什么,改了编码是之后效果展示的是与前者输入语句无关*********

    
    create  read   update    delete
    插入数据   
    insert into   表名  values(v1,v2,....)  # 该方式必须保证 插入的数据个数与 表格字段一 一对应  
    insert into   表名(字段名称1,字段名称2)  values(v1,v2)  # 该方式必须保证 插入的数据个数与 必须与指定的字段一 一对应
    insert into   表名(字段名称1,字段名称2)  values(v1,v2),(v1,v2) # 同时插入多条记录
    
    查询  
    select * from 表名; # *表示全部字段     查询所有记录 
    select 字段 from 表名 where 条件;
    
    更新:
    update 表名  set 字段名称=新的值,字段名称2=值2;   #修改所有记录
    update 表名  set 字段名称=新的值,字段名称2=值2  where 条件 ;   #修改满足条件的记录
    
    删除数据 
    delete  from 表名 ;   #删除所有记录 
    delete  from 表名 where 条件;   #删除满足条件的记录 
    
    #### 练习
    创建 student表 包含  姓名 性别  年龄 三个字段
    把你周围的4个同学的数据插入表中   
    把你左边的同学的 性别改为 woman  
    删除右边的同学  
    查看所有 年龄 大于 20的 人员 
    
    
    补充: 修改数据库的语法  
        alter database  数据库名称 cahrset utf8;
        select database()  查看当前库
    

    3创建表的完整写法

    create table 表名称(字段名称 字段类型 【(长度整数)约束】) charset utf8

    4.mysql中的数据类型

    1.整数

    ​ tinyint 1个字节 无符号的8bit 最大255 有符号7个bit 127 -128

    ​ smallint 2个

    ​ mediumint 3个

    ​ int 4个 最常用 如果你的数据超过10位 用bigint

    ​ bigint 8个

    注意:1.默认情况整数是有符号的

    ​ 设置为无符号 unsigned

    ​ alter table t2 modify age tinyint unsigned;

    ​ create table t2(age tinyint unsigned);

    1. mysql5.6 默认是非严格模式, 如果你的数据超出范围 会自动取最大值 一般不要这么搞 会丢失数据

      查看当前的sql模式:

      ​ select @@sql_mode; @表示全局变量 @@表示会话级变量(局部)

      临时设置sql_mode

      ​ set @@sql_mode = "xxxxx"

      建议直接修改配置文件:

      ​ [mysqld]

      ​ sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    指定长度

    ​ int(10) 如果你的数据不足10位 用0填充 (需要添加zerofill 这个约束)

    ​ 对于整数和小数而言 都是用控制 显示填充的最小长度

    2.浮点

    ​ 两种不精确的小数

    ​ float 可以精确到 大约5位

    ​ double 比float更精确

    ​ 如果对精确度要求比较高 需要使用decimal 类型

    ​ decimal 需要指定 位数如下: 位数不包括小数点

    ​ decimal(65,30) 总长最大65 小数30

    3.字符串

    char 定长字符串

    varchar 长度可变的字符串

    ​ char(10) 存储abc 占10个字符长度

    ​ 优点:读取存储速度快于 varchar

    ​ 缺点: 浪费与磁盘空间

    ​ varchar(10) abc 3个字符长度外加一个bit 存储字符长度

    ​ 优点:节省空间

    ​ 缺点:速度慢于char类型

    ​ 如果字符长度不大 建议使用char类型 反之则选择varchar

    ​ char 最大范围255

    ​ varchar最大 65535

    ​ 如果不够那就采用text 最大可以存储2的32次方

    text

    ​ 具备编码的大字符串

    blob

    ​ 没有编码的大二进制 可以用来存储 多媒体数据 视频 音频等..... 一般不会存这种数据

    ​ 都是建一个文件服务器 数据库只保存文件的地址信息

    ​ 字符串类型中 需要掌握的 char varchar text blob也不常用

    ​ 注意: mysql会自动将字符串后面的空格删掉 所以你的数据在存储前应该先把空格处理掉

    枚举和集合

    枚举是提前规定一个范围 你的值只能是其中之一 多选一

    集合是提前规定一个范围 你的值可以是其中的多个 多选多

    集合在插入数据时 ,多个值之前用逗号隔开 但他们必须包含在同一个字符串内!

    4.日期和时间

    date类型

    'YYYY-MM-DD'或者'YYYYMMDD'
    create table t13(d date);
    insert into t13 values('20190101');
    insert into t13 values(20190101);
    insert into t13 values('2019-01-01');
    insert into t13 values(190101);
    
    select now();
    当前日期加时间
    select CURRENT_TIME;
    SELECT CURRENT_DATE;
    
    
    insert into t13 values(now());
    
    

    time 类型

    'D HH:MM:SS'
    D:天  D*24 +H
    create table t14(t,time);
    insert into t14 values('12:30:30');
    #12:30:30
    insert into t14 values('1 12:30:30');
    #36:30:30
    

    datetime 类型

    #只能是字符串输入
    YYYY-MM-DD HH:mm:SS
    create table t15(t,datetime);
    insert into t15 values('2019-07-11 12:30:30');
    insert into t15 values ('19-07-11 12:30:30');
    insert into t15 values(now());
    
    

    timestamp 时间戳

    #只能是字符串输入
    create table t16(t timestamp);
    insert into t16 values('19-07-11 12:30:30');
    
    alter table t16 add a int;
    insert into t16(a) values(100);
    update t16 set a=200 where a=100;
    #插入当前时间,像博客更新使用就用到
    

    枚举

    create table t17 (t enum('jack','rose'));
    insert into t17 values('jack');
    insert into t17 values(1);#可以检索
    枚举就是规定了范围
    #多选一
    
    create table t18 (t set('jack','rose');
    insert into t18 values('jack')
    insert into t18 values('jack,rose')
    #多选多  只能选里面内容且只能是字符串
                      
    
    
  • 相关阅读:
    poj2975(nim游戏取法)
    hdu5785(极角排序求所有锐角钝角个数)
    hdu5787(数位dp)
    划分树模板
    Struts配置文件
    Struts2 调用非execute方法
    Struts简单的实例
    Struts简介
    linux yum 命令
    Linux vi/vim
  • 原文地址:https://www.cnblogs.com/zhuyuanying123--/p/11172341.html
Copyright © 2011-2022 走看看