zoukankan      html  css  js  c++  java
  • mysql回想一下基础知识

    创建数据库
    creat table test(
    #整数通常用于int
    test_id int,
    #十进制通常使用decimal
    test_price decimal,
    #普通文本通常使用。并使用Default指定默认值
    test_name varchar(255) default "Xxx",
    #大文本类型使用test
    test_desc text,
    #图片使用blob
    test_img blob,
    #日期类型使用DateTime
    test_date datetime,
    );
    -----------------------------------------------------------------
    mysql 支持的列类型
    1.tinyint,smallint,mediumint,int,bigint
    2.float,double
    3.decimal(dec)
    4.date
    5.time
    6.datetime
    7.timestamp
    8.year
    9.char
    10.varchar
    11.binary(定长的二进制字符串类型。以二进制形式保存字符串)
    12.varbinary
    13.tinyblob,blob,mediumblob,longblob
    14.tinytext,text,mediumtext,longtext
    15.enum('value1','value2'...)//枚举类型(仅仅能是当中之中的一个)
    16.set('value1','value2'...)//集合类型(能够是当中几个)
    --------------------------------------------------------------------
    #创建数据表。该数据表和user_info全然同样,数据也全然同样
    create table hehe
    as
    select * from user_info;
    ---------------------------------------------------------------------
    #改动表的结构的语法
    alert table 表名
    add(
    #能够定义多个列定义
    colum_name datatype [default expr],
    ...
    );
    ---------------------------------------------------------------------
    #为hehe数据表添加一个hehe_id字段,该字段类型为int


    alter table hehe
    add hehe_id int;
    #为hehe数据包添加aaa,bbb字段。两个字段的类型都为varchar(25)
    alter table hehe
    add aaa varchar(25),bbb varchar(25);
    ----------------------------------------------------------------------
    #将hehe表的hehe_id列改动为varchar(255)类型
    alter table hehe
    modify hehe_id varchar(255);
    #将hehe表的bbb列改动为int类型
    alter table hehe
    modify bbb int;
    ----------------------------------------------------------------------
    #删除指定的列
    alter table hehe
    drop column_name
    #重命名数据表
    alter table hehe
    rename to wawa;
    ----------------------------------------------------------------------
    #将wawa表的字段bbb字段重命名为ddd
    alter table wawa
    change bbb ddd int;
    #删除表
    drop table 表名
    ----------------------------------------------------------------------
    数据库约束
    not null
    unique
    primary key
    foreign key
    check
    #not null约束
    create table hehe(
    #建立了非空约束,这意味着hehe_id不能够为null
    hehe_id int not null,
    #mysql为空约束不能指定名字
    hehe_name varchar(25) default 'xyz' not null,
    #以下列能够为空。默认值就是为null
    hehe_gender varchar(28) null
    );


    ---------------------------------------------------------------------
    #添加非空约束
    alter table hehe
    modify hehe_gender  varchar(30) not null
    #取消非空约束
    alter table hehe
    modify hehe_name varchar(3) null;
    #取消非空约束。并指定默认值
    alter table hehe
    modify hehe_name varchar(255) default 'abc' null;
    -------------------------------------------------------------------
    unique约束
    #建立表时创建唯一约束,使用列级约束语法建立约束
    create table unique_test(
    #建立了非空约束,着意味着test_id不能够为null
    test_id int not null,
    #建立了unique约束
    test_name varchar(30) unique
    );
    #创建表时,使用表级约束语法建立约束
    create table unique_test(
    test_id int not null,
    test_name varchar(30),
    test_pass varchar(30),
    #使用表级约束创建唯一约束
    unique(test_name),
    constraint test_uk unique(test_pass)
    #constrain test1_uk unique(test_name,test_pass)
    );
    #改动唯一约束
    alter table unique_test
    add unique(test_name,test_pass);
    #为表添加约束
    alter table unique_test
    modify test_name varchar(30) unique;
    -------------------------------------------------------------------
    primary key约束
    create table primaryKey_test(
    primaryKey_id int primary key,
    test_name varchar(255)
    );
    create table primaryTest(
    primary_id int not null,
    primary_name varchar(29),
    constraint pk_test primary key(primary_id)
    );


    #删除主键约束
    alter table test
    drop primary key;
    #使用表级语法添加主键约束
    alter table test
    add primary key(test_id ,test_name);
    #使用列级约束语法添加主键约束
    alter table test
    modify test_name varchar(30) primary key;
    ------------------------------------------------------------------
    #为了保证从表參照的主表存在。通常应该先建立主表
    create table teacher_table(
    #auto_increment
    teacher_id int auto_increment,
    teacher_name varchar(255),
    primary key(teacher_id)
    );
    create table student_table(
    student_id int auto_increment primary key,
    student_name varchar(255),
    #指定java_teacher參照到teacher_table的teacher_id的列
    java_teacher int references teacher_table(teacher_id)
    #java_teacher int
    #foreign key(java_teacher) references teacher_table(teacher_id)
    #constraint student_teacher_fk foreign key(java_teacher) references
    teacher_table(teacher_id)
    );
    ---------------------------------------------------------------------------------------------
    #check约束
    create table test(
    test_id int auto_increment primary key,
    test_age int not null,
    check(test_age>0 and test_age<120)
    )

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Anaconda设置虚拟环境并打包exe
    [转]Anaconda, conda, pyenv, virtualenv的区别
    [闲记]2020-2-13
    集合笔记
    Python_列表(list)
    LeetCode 1711. 大餐计数 做题小结
    LeetCode 242. 有效的字母异位词 做题小结
    GitHub Actions教程 使用selenium自动化
    LeetCode 5641. 卡车上的最大单元数 做题小结
    git 批量删除文件夹和文件
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4887577.html
Copyright © 2011-2022 走看看