zoukankan      html  css  js  c++  java
  • mysql 表的操作

    创建表

    Example 1:

    Create table if not exists `secondweek_tb`(
       `id` int Unsigned auto_increment,
       `title` Varchar(100) Not null,
       `author` Varchar(40) Not null,
       `submission_date` Date,
       primary key ( `id` )
    )engine=InnoDB default charset=utf8;
    

    解释:

    Unsigned声明为无符号;

    如果你不想字段为NULL可以设置字段的属性为Not NULL, 如果在操作数据库时如果输入该字段的数据为NULL ,就会报错;

    Auto_increment定义列为自增的属性,一般用于主键,数值会自动加1;

    Primary key关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔;

    Engine设置存储引擎;

    Charset设置编码;

    Varchar(100) 和 Varchar(40)的区别:
    一个汉字占多少长度与编码有关,如下说MySQL 5.0 以上的版本设置;

    • UTF-8:一个汉字=3个字节
    • GBK:一个汉字=2个字节

    Varchar(100)表示字节的取值范围为0-65535 字节,但是可变长varchar(100);

    4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个中文3字节);

    5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8中文(每个中文3字节),都可以存放100个 ;

    Example 2:

    CREATE TABLE test_tb(
        id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
        username VARCHAR(20) NOT NULL UNIQUE,
        password CHAR(32) NOT NULL,
        email VARCHAR(50) NOT NULL DEFAULT 'a@a.com',
        age TINYINT UNSIGNED DEFAULT 18,
        addr VARCHAR(200) NOT NULL DEFAULT '北京',
        salary FLOAT(6,2),
        regTime INT UNSIGNED,
        face CHAR(100) NOT NULL DEFAULT 'default.jpg',
        sex ENUM('男','女','保密') DEFAULT '保密'
    )engine=InnoDB default charset=utf8;
    

    约束

    约束 = 别乱搞;
    约束就是在定义字段类型的时候,我就先定义好规则,不让你乱插入(别乱搞!);

    约束分类

    • 主键约束 Primary Key
    • 外键约束 Foreign Key
    • 非空约束 Not Null
    • 唯一性约束 Unique
    • 默认值约束(当输入空值时填充默认值)Default
    • 外键约束

    Primary Key

    主键约束又可以分为:

    • 单字段主键
    • 多字段主键

    Example:

    # 单字段主键
    id Int Primary Key,
    
    # 多字段主键
    id int,
    uid int Primary Key(id,uid),
    

    Not Null

    字段值不能为空,如果为空报错!

    example:

    name char(20) Not null;
    

    Unique

    保证数据表中的字段唯一性,即字段值不能重复;

    phone int Unique,
    

    Default

    当插入空值时,默认填充默认值;

    sex char(5) Default 0,
    

    外键约束

    待续;

    字段值自动增加

    创建表时字段类型后面加上 auto_increment,该列数据数值就会自动+1;

    `id` int auto_increment,   #定义列为自增的属性,一般用于主键,数值会自动加1;
    

    索引

    索引就是用来加快数据表的查询和排序用的;

    索引分类

    了解每种(6种)索引方式的应用场景、优缺点;

    • 普通索引
    • 唯一性索引
    • 全文索引
    • 单列索引
    • 多列索引
    • 空间索引

    修改表操作

    修改表名

    有两种方式;

    方式一

    Alter Table test1_tb Rename To test2_tb;
    

    方式二

    Rename Table test2_tb To test1_tb;
    

    修改表字段操作

    修改表字段名

    alter table test change  column address address1 varchar(30);
    

    修改表字段类型

    alter table test modify address char(10);
    

    修改表字段约束

    待续;

    修改表字段索引

    待续;

    添加表字段

    alter table test1_tb add  column name varchar(10);
    

    删除表字段

    alter table test1_tb drop  column age;
    

    删除表字段索引

    待续;

    删除表字段约束

    待续;

    删除表

    Drop table name_table;
    
  • 相关阅读:
    Elasticsearch教程(一)简介与安装
    Java注解
    easyui tree后台传json处理问题
    jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】
    springmvc+ztree v3实现类似表单回显功能
    org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: sys.entity.Role; nested exception is org.hibernate.PersistentObjectException: 的解决方案
    MVC之重定向
    MVC5之路由机制
    SQL技术内幕四
    SQL技术内幕三
  • 原文地址:https://www.cnblogs.com/mysticbinary/p/12865742.html
Copyright © 2011-2022 走看看