爱问知识人 爱问教育 医院库

mysql基础数据库创建

首页

mysql基础数据库创建


        

提交回答
好评回答
  • 2023-02-20 02:00:01

    1。创建一个数据表——基(跳过)
    传统方法:创建{ }表表名{如果不存在}
    (列表定义创建)
    {表}的选项
    {选项}分区;#正统的创作方式,具体的参数,请参阅MySQL手册,详细的解释,这里就不做,只说一些特别的。
    例:
    复制代码代码如下所示:
    创建表的用户(ID int符号不空auto_increment。
    用户名char(15)。
    性别(是的,默认是F)。
    varchar(20)。
    主键(ID、用户名)。
    指数idx_user(用户名)。
    )发动机= 'innodb'charset = utf8;
    复制数据库结构:
    复制代码代码如下所示:
    创建{ } }表{如果不存在,}表名已经存在于表名中;创建与模拟表相同的结构
    MySQL >创建表vip_user用户;
    MySQL >创建表vip_user SELECT * FROM用户0; / /这能做的,只是复制结构
    复制和复制数据库
    复制代码代码如下所示:
    { }创建临时表SELECT * FROM新旧表名称;用户可以指定以下#人选择将需要声明。
    创建表dst_tbl(
    我没有空auto_increment int。
    主键(id)
    选择A,B,C)从src_tbl;
    为了创建满足用户需求的各种数据库,这里只是做一个砖。
    2。查看修改后的数据表结构
    复制代码代码如下所示:
    MySQL >desc是表结构的名称;#查看数据表
    MySQL >显示创建表 G #数据表名视图构成报表,数据表和 G;同样的意思,但 G是一个垂直的显示,所以看得更清楚。
    MySQL >显示表的地位一样 G #视图状态数据表名称表
    MySQL >显示列的数据表名;#查看数据表的结构,如照片一样,但这一说法随后像场的使用可以只显示指定的字段
    三.改变变基的结构
    我们首先创建了一个表
    MySQL >创建表的VIP(ID为null,用户名varchar(30));
    修改表结构中的数据类型
    复制代码代码如下所示:
    MySQL >修改表VIP修改ID SmallInt默认1;#改变数据记录1。
    MySQL ># ALTER TABLE VIP修改ID SmallInt auto_increment;#我们执行这句话会提示错误,因为MySQL自动增长的要求为主键列。
    MySQL >修改表VIP添加主(ID);#套贵宾钥匙ID的值,在上述的实施是没有问题的执行此语句。
    MySQL >修改表VIP修改用户名char(30)不为空;VIP用户名字符#变化(30);
    MySQL >修改表VIP修改用户名mediumtext第一;在用户名VIP #变化,它位于前面的领域,有一个领域后,被放置在一个领域
    现有表的新字段
    MySQL >修改表的VIP加性别(是的,F)的默认'm'not无效后的身份;性别#枚举类型的新领域,放在背后的ID。
    重命名现有字段
    MySQL >修改表VIP改变性别usersex字段默认0不空后的用户名;改变名称字段更改的类型和位置。
    注:只修改修改,变化非常相似,但修改不能改名,只需更改结构,但更改可以改名,也可以更改类型。
    删除字段
    MySQL >修改表VIP滴usersex;#删除usersex领域,预警领域,所有数据将丢失。
    数据库改名
    MySQL >修改表VIP重命名为vip_user;数据库改名。
    更改数据表引擎
    MySQL >修改表VIP引擎=表;
    请注意,修改数据结构是危险的,最好做好备份工作。
    还有一些我们将来将要涉及的更改语句和技术…
    4。对数据的约束
    数据约束越来越好在mysql5,但现有的数据约束是有限的InnoDB。在传说中,mysql5.2还将支持数据约束。
    首先,我们将了解什么是数据约束,因为在通常的表创建中,我们可能有相互关联的信息,而数据约束是两个表之间的一个链接。
    例如,有两个表,一个使用者,一个是UserType在关键的一个关键词,关键是用户的数量,还有一user_key用户表,对应到使用者的表。
    1。首先我们要确保在用户表中的所有值都在使用者
    2。其次,我们要确保在用户表中的值user_key UserType关键值的变化。
    在3.usertype价值不能在任何时间删除,除非UserType类型的值不在用户表中存在。如果我们要强行删除,我们将删除用户所有UserType的价值观。
    如果没有数据约束,我们可以使用几个句子来确保每次插入/更新时数据的正确性和完整性。如果我们使用数据约束,我们需要在定义的时候进行处理,而不必担心太多,最重要的是使用数据约束来确保数据和业务的完整性。
    好了,说了这么多,也没有说数据约束:慢于不使用数据约束慢得多的数据约束,每次用户插入数据或改变数据,数据库系统将需要一些时间进行一些检查。但随着MySQL的成熟,速度会有很大的提高。
    就个人而言,我认为在非业务、实时系统需要高数据业务完整性的情况下使用数据约束是必要的。
    5。数据约束的简明分析
    因此,外键的定义必须满足以下三种情况:
    1。两表必须InnoDB表类型
    2。指定为外键的列必须被索引。
    三.两个表中的相关外键类型必须一致。
    让我们先看看示例,然后在示例中学习。
    MySQL >创建父表(ID int空主键(ID))发动机= InnoDB;#创建一个主表
    MySQL >创建表的孩子(ID int,int parent_id。
    外键(parent_id)
    引用父(ID)上的删除限制更新级联
    InnoDB引擎=;#)创建一个从表的外键,以及关键词parent_id,建立之间的关联关系。
    MySQL >插入母值(1)、(2)、(3);#在主表插入数据
    MySQL >插入孩子的价值观(1,1),(1,2),(1,3);#在表中插入数据,对应不同的parent_id儿童ID = 1;
    MySQL >#插入孩子的价值观(1,1),(1,2),(1,3),(1,4);#看看会发生什么错了吗是什么原因我们再考虑考虑吧。
    说明:因为当我们创建语句时,我们同意数据是通过外键连接的,而父ID中没有id值的主键,所以子密钥不会被更新。
    此时数据库中的值为:
    亲子
    我parent_id
    一百一十一
    二百一十二
    三百一十三
    我们继续运作,以反映外键关联表的作用。
    MySQL >更新父集ID = 4,ID = 1 #;家长看孩子的价值变化的反应
    从父级选择*;
    从孩子中选择*;
    此时数据库中的值为:
    亲子
    我parent_id
    二百一十四
    三百一十二
    四百一十三
    通过上面的示例,您可以清楚地看到用户只更改父值,关联的子值将自动更改。
    Mysql>insert into child values (2,4), (3,4), (4,4); # sub table and then add some other value.
    MySQL >#删除从父id是4 #;我们执行此语句,看看有什么错误吗让我们分析一下提示。
    我们回顾一下创建外键的优秀案例和关键语句:
    外键(parent_id)#这句话的意思是外汇指定关联表parent_id关键;
    引用父(ID)在限制删除级联更新的#这句话是一句约束,外键引用可以抑制数据库对应的数据表parend_id和家长身份的子密钥,并约束删除,更新操作,MySQL有以下操作:
    (1)限制和不动作表明,如果子表中有匹配记录,则不允许对父表的相应候选键进行更新/删除操作。你现在明白了吗为什么我们从父母那里执行id = 4删除;有错误,因为在子表的值(孩子)。
    (2)当集零记录的更新/删除父表的记录,匹配记录在子表的列设置为空,但需要注意的是,该数据库不能外部键列不为空的重要
    (3)当级联记录父表上的更新/删除记录时,更新/删除下拉表的匹配记录是同步的。
    您可以根据您的需要设置不同的操作,例如,当我们删除父表时删除子表时,我们需要设置设置。
    在更新级联上删除级联的父(id)引用,我们需要在实验之前知道。
    1、已定义的外键不能再更改。我们必须删除外键并重新创建它。
    MySQL >显示创建表的孩子/ G #约束(约束)的名字
    说明:约束是指定约束的默认名称,如果未指定,系统将自动命名它,例如,我们可以:
    约束fk_child_key
    外键(parent_id)
    引用父(ID)上的删除限制更新级联;
    In this way, we specify the overall name of the constraint as fk_child_key, which can be operated on later.
    MySQL >修改表的外键fk_child_key孩子滴;#删除约束
    MySQL >修改表的孩子添加外键('parent_id)
    删除级联时引用父(id)
    更新级联;
    MySQL >显示创建表的孩子/ G #此约束已被更改,用户可以查看更改。
    MySQL >删除从父id是4 #;我们重新执行上面的语句,它不是一个错误吗
    从父级选择*;
    MySQL >选择*从孩子#;我们可以看到现在parent_id删除所有4。Hehe,可方便地在未来。
    此时数据库中的值为:
    亲子
    我parent_id
    二百一十二
    三百一十三
    6。数据约束的附加描述
    如果定义了数据约束,那么插入或改变数据的速度会很慢,尤其是在数据结构改变和数据插入效率低的情况下。
    当客户执行负载数据(稍后将引入加载数据)时,修改表建议使用以下命令,暂时关闭数据约束,然后在完成后打开它,以便速度至少增加20倍以上。
    MySQL >设置foreign_key_checks = 0;#关闭数据约束
    MySQL >LOAD DATA INFILE '表'文件绝对地址表的名称;#加载数据从文本文件
    MySQL >设置foreign_key_checks = 1;#开放数据约束

    陈***

    2023-02-20 02:00:01

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):