美文网首页
mysql基础

mysql基础

作者: 阿狸小朋友 | 来源:发表于2023-06-15 11:14 被阅读0次

    连接数据库

    host :主机 -h
    username :用户名 -u
    password :密码 -p
    port:端口 -P
    例:
    //连接本地 -h 可以省略,如果连接3306端口可以省略 
    mysql -h127.0.0.1 -P3306 -uroot -proot;
    

    创建表

    create table [if not exists] 表名(
    字段名 数据类型 [null | not null] [auto_increment] [primary key] [comment]
    字段名 数据类型 [default]
    )engine = 存储引擎
    
    例:
    set names gbk;
    create table if not exists stu(
        id int auto_increment primary key comment `主键`,
        name varchar(20) not null,
        address varchar(100) default `地址不详`
        ) engine = innodb;
    
    • 查看创建表
    show create table 表名;
    
    • 查看表结构
    desc 表名;
    
    • 删除表
    drop table [if exists] 表1 ,表2...;
    
    • 修改表
    alter table 表名;
    1.添加字段
    //[位置] 有两个关键字 first 或者 after 表名
    alter table 表名 add [column] 字段名 数据类型 [位置];
    
    2.删除字段
    alter table 表名 drop [column] 字段名;
    
    3.修改字段
    //既改字段名 又改字段类型
    alter table 表名 change 原字段名 新字段名 数据类型;
    //仅改字段类型
    alter table 表名 modify 字段名 数据类型;
    
    • 插入数据
    //1.数据库中没有字符串概念 不能出现双引号
    //2.字段顺序可以任意调整 但是values中必须要和字段对应
    //3.可以插入部分字段 但是非空字段必须插入
    //4.自动增长字段可以不插入
    //5.如果插入所有字段,并且值和表的字段一一对应,那么字段可以省略
    //5.如果省略字段,那么自动增长值可以插入null
    //6.如果想插入某个字段的默认值,值可以使用defaule关键字
    //7.一次性插入多条数据时,values后面跟多个()用逗号隔开
    insert into 表名 [(字段名 , 字段名...)] values (值1,值2...),(值1,值2...);
    
    • 更新数据
    //1.修改多个字段时,set 字段=值,字段=值
    //2.如果不加where时,会更新所有数据
    update 表名 set 字段 = 值 [where 条件];
    
    • 删除数据
    delete from 表名  [where 条件];
    
    • 清空表
    //1.delete from 表名;是一条条遍历,一条条删除,新插入的数据自动增长字段继续累加
    //2. truncate是删除表,重新重建表,新插入的数据自动增长字段从1开始
    truncate table 表名 ;
    
    • 查询数据
    //星号代表所有列
    select 列名 from 表名;
    
    • 复制表
    //从表名2复制数据到表1 不复制表信息(例如主键)
    create table 表名1 select 列名 from 表名2; 
    //按照表2的表信息创建表1,不复制数据
    create table 表名1 like 表名2; 
    
    • 数据类型
    整型 字节
    tinyint [unsigned] 1
    smallint [unsigned] 2
    mediumint [unsigned] 3
    int [unsigned] 4
    bigint [unsigned] 8
    create table stu (
    id int(5),
    age int(5) zerofill #如果age没超过5位,填充前导0
    );
    
    浮点型 字节
    float [unsigned] 4
    double [unsigned] 8
    浮点数在数据库内保存的近似值
    浮点数声明:float(M,D) ,double(M,D)
    M:总位数
    D:小数位数
    
    定点型 字节
    decimal [unsigned] 不知道(拆分为两个数存储)
    定点数会将小数拆分为两个数存储
    浮点数声明:decimal(M,D)
    M:总位数
    D:小数位数
    
    字符型 描述
    char(长度) 定长
    varchar(长度) 变长
    tinytext 大段文本
    text 大段文本
    mediumtext 大段文本
    longtext 大段文本
    char(长度),varchar(长度) 定长和变长都不能超过后面的长度
    
    枚举型 描述
    enum 只能插入列举的值
    create table stu(
    name varchar(20),
    sex enum('男','女')
    );
    
    • 时间
    时间类型型 描述
    datetime 占用8字节
    范围:1~9999
    格式:年-月-日 时:分:秒
    date 占用3字节
    time 时间, 占用3字节
    格式:天 时:分:秒时:分:秒
    范围:-838:59:59 ~ 838:59:59
    timestamp 时间戳,占用4字节
    范围:1970-1-1 0:0:0 ~ 2038-1-19 11:14:07
    year 年份,占用1字节
    • 列表属性
    关键字 描述
    null / not null
    default
    auto_increment 1.从1开始增长,自动增长都是无符号整数
    2.auto_increment的必须是主键,但是主键不一定自动增长
    primary key 1.主键不允许重复,不能为null
    2.一个表还能有一个主键,主键可以由多个字段组成
    unique [key] 1.不能重复可以为空
    2.一个表可以有多个唯一键
    comment 注释

    主键添加方式:

    1.方法1
    create table stu (
        id int primary key,
        name varchar(20)
    );
    方法2
    create table stu (
        id int ,
        name varchar(20),
        primary key(id)//这里可以添加多个字段形成组合主键盘
    );
    方法3
    alter table stu add primary key(id);
    
    主键的作用:
    1.保证数据完整性
    2.加快查询速度
    

    唯一键添加方式:

    1.方法1
    create table stu (
        id int primary key,
        name varchar(20) unique
    );
    方法2
    alter table stu add unique (name);
    
    唯一键和主键的区别:
    1.主键不能为空,唯一键可以为空
    2.主键只能有一个,唯一键可以有多个
    

    唯一键的删除

    alter table 表名 drop index 唯一键名;
    

    相关文章

      网友评论

          本文标题:mysql基础

          本文链接:https://www.haomeiwen.com/subject/bkhnbctx.html