MySQL基本操作-表命令

一、数据库操作

   1.基本命令

  create database  数据库名; //创建数据库

    show databases; //查询数据库

    drop  database  数据库名; //删除数据库

   2. 存储引擎

  (1).InnoDB:提供事物、回滚、崩溃修复能力和多版本并发控制的事务安全。

      同一个数据中可以使用多种存储引擎的表,一个表要求较高的事物处理可以选择InnoDB,查询要求比较高的可以选择MyISAM,如果需要一个用于查询的临时表,可以选择MEMORY存储引擎。

     (2).修改my.ini中的"default-storage-engine=INNODB"为"default-storage-engine=MyISAM"然后重启服务,使用show variables like 'storage_engine'可以查看修改成功。

 

二、表操作

  1.创建表 

        create table 表名(属性名 数据类型 【完整性约束条件】,

           属性名  数据类型  【完整性约束条件】);

       eg: create table example(id int,

               name varchar(20),

                 sex    boolean);

   【完整性约束条件】

   PRIMARAY KEY:属性为表的主键<唯一>

        FOREIGN   KEY:属性为表的外键

   NOT        NULL:属性的值不为空

   UNIQUE      :属性的值唯一<所有记录中该字段的值不能重复>

     AUTO_INCREMENT:属性的值自动增加

        DEFAULT     :将该属性设置为默认值

    (1).主键主要目的是帮助MySQL以最快的速度查找到表中的某一条信息。

    单字段主键:

    eg: create table example(id int primary key,

               name varchar(20),

                 sex    boolean);

           多字段主键:

          eg:create table example2(stu_id int,

                 course_id int,

                 grade float,

                primary key(stu_id,course_id));

    (2).表的外键作用是建立当前表与其父表的关联关系,父表中删除某条信息,子表也对应改变。

     constraint 外键别名 foreign key(属性 1.1 属性1.2,...,属性1.n)  references 表名(属性2.1,属性2.2,...,属性2.n)

            eg: create table exampl3(id int primary key,

                 stu_id int,

                 course_id int,

                 constraint c_fk foreign key(stu_id,course_id) references example2(stu_id,course_id));

    (3).设置默认值,插入新记录没有为某个字段赋值时,MySQL自动插入设置的默认值。

      eg: create table example4(id int primary key auto_increment,

                    name varchar(20) not null,

                    english  varchar(20) default 'zero');

    describe   表名; //查看表结构 缩写desc 表名;

        show create table 表名 \G; //查看表结构的详细定义

        show tables;  //查看表

  

  2.修改表

    alter table 旧表名  rename [to] 新表名;  //修改表名

    alter table 表名   modify  属性名  数据类型;  //修改字段的数据类型

    alter table 表名  change  旧属性名 新属性名  新数据类型;  //修改字段名 

    alter table 表名   add  属性名1 数据类型 [完整性约束条件] [FIRST|AFTER 属性名2] //增加字段

    alter table 表名  drop 属性名; //删除字段

  alter table 表名  modify 属性名1 数据类型 first|after 属性名2; // 修改字段排列位置

    alter table 表名  engine=存储引擎名;  //修改表的存储引擎 alter table user engine = MyISAM; ==>show create table user \G;

    alter table 表名  drop  foreign key 外键别名 ;//删除表的外键约束

 

   3.删除表

     (1).删除无关联的普通表

    drop table  表名; //最好对表数据做备份

     (2).删除有关联的表的父表

   1). 先删子表,后删父表<会影响子表数据>

        2). 先删外键约束,后删父表<不会影响子表数据>

     alter table 表名 drop foreign key 外键别名;

     drop table father-table;

 

基础要点:

1.MySQL中规定自增列(不能为空且值唯一)必须为主键。

2.创建的表的表结构存储在.frm文件中,数据和索引存在innodb_data_home_dir和innodb_data_file_path定义的表空间中。

3.InnoDB:外键所在的表为子表,外键所依赖的表为父表。父表中被子表外键关联的字段必须为主键。当删除,更新父表的某条信息时,子表也必须有相应的改变。

 

posted @ 2015-10-11 21:09  MingsHsu  阅读(171)  评论(0编辑  收藏  举报