MySQL数据库和表的创建、以及表的修改

学习总结

MySQL安装好以后,首先需要创建数据库,这是使用MySQL各种功能的前提。

1、下面将详细介绍数据库的基本操作。

    启动服务:net start MySQL

    停止服务:net stop MySQL

    登录数据库:mysql -h localhost -u root -p

    创建数据库:CREATE  DATABASE  dataase_name(数据库名);

    使用数据库:USE database_name;

    查看当前所有存在的数据库:SHOW  DATABASES;

    删除数据库;DROP DATABASE database_name;

    查看数据库存储引擎: SHOW   ENGINES;

    查看默认的存储引擎:SHOW  VARIABLES LIKE 'storage_engine'

    数据库存储引擎有:InnoDB          MyISAM       MEMORY

2、下面将详细介绍数据表的基本操作
2.1创建数据表:

    在创建数据表之前,应该使用   " USE database_name"

    创建数据表:CREATE TABLE <table_name>

                            (

                            字段名1,数据类型  [列级别约束条件]  [默认值],

                            字段名2,数据类型  [列级别约束条件]  [默认值],

                            ..............

                             )

    查看创建的数据表:SHOW TABLES;

    2.1.1使用主键约束:主键列数据唯一,并且不允许为空////主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。

        一、单字段主键

           1、 在定义列的同时指定主键: 字段名   数据类型  PRIMARY  KEY ;   eg:   id   int(11) PRIMARY KEY;

           2、在定义完所有列之后指定主键:[CONSTRAINT<约束名>] PRIMARY KEY [字段名]   primary key (id);

        二、多字段联合主键

            PRIMARY    KEY  (字段1,字段2,...字段n);   PRIMARY  KEY (id ,name);

    2.1.2 使用外键约束:外键用来在两个表的数据之间建立连接,它可以日一列或多列。作用:保持数据的一致性、完整性。

                  外键:首先它是表中的一个字段,它可以不是本表的的主键,但对应另外一个表的主键。外键的作用保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。

              外键创建规则如下:

            [CONSTRAINT <外键名>] FOREIGN  KEY  字段名1 (字段名1,字段名2.........)

                    REFERENCES  <主表名> 主键列1  [主键1,主键2,.........] 

例如:CONSTRAINT  fk_emp_dept1    FOREIGN  KEY(deptId)        FEFERENCES   to_dept1(id);

    2.1.3使用非空约束:设置字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

        非空约束的语法规则如下:

        字段名   数据类型  not  null;

    2.1.4使用唯一性约束:要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者多列不出现重复值。

        唯一性约束的语法规则如下:

            (1) 在定义完列之后直接指定唯一约束,    字段名    数据类型     UNIQUE;

            (2)在定义完所有列之后指定唯一约束,   [CONSTRAINT <约束名>]  UNIQUE(<字段名>)  

    UNIQUE与PRIMARY  KEY区别:  一个表中可以有多个字段声明为  UNIQUE,但只能有一个PRIMARY  KEY声明;声明为PRIMARY  KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在.

    2.1.5使用默认约束:用来指定某列的默认值

            默认值的语法规则如下:

                字段名    数据类型    DEFAULT  默认值 ;

    2.1.6设置表的属性值自动增加:一个表只能有一个字段使用AUTO_INCREMENT,且该字段必须为主键的一部分.

            设置表的属性值自动增加的语法规则如下;

                  字段名  数据类型   AUTO_INCREMENT

例如 :   id  int(10)   PRIMARY KEY   auto_increment,

    2.1.7查看数据表结构:可以查看表结构的定义,以确认表的定义是否正确。

            (1) DESCRIBE  表名;    或者简写:  DESC  表名;

            (2) SHOW CREATE TABLE  <表名\G>

    使用SHOW  CREATE TABLE 语句,不仅可以查看表创建时候的详细语句,而且还可以查看存储引擎和字符编码。

如果不加“\G”参数,显示的结果可能非常混乱,加上参数“\G”之后,可使显示结果更加直观,易于查看。

2.2修改数据表

    修改表指的是修改数据库中已经存在的数据表的结构。使用ALTER   TABLE 语句修改表。

    2.2.1修改表名:ALTER   TABLE <旧表名> RENAME [TO]  <新表名>;

    2.2.2修改字段的数据类型:ALTER   TABLE  <表名> MODIFY <字段名> <数据类型>;

注意:在数据库表中有数据的时候,不要轻易修改数据类型

    2.2.3修改字段名:ALTER   TABLE  <旧表名> CHANGE <旧字段名> <新字段名>  <新数据类型>;

    2.2.4添加字段:ALTER  TABLE  <表名>  ADD <新字段名> <数据类型>

                                            [约束条件]   [FIRST | AFTER  已存在字段名];

1、添加无完整性约束条件的字段:ALTER  TABLES  tb_dept1  ADD  managerId  int(11);

2、添加有完整性约束条件的字段:ALTER  TABLES  tb_dept1  ADD  manageId  int(11)  not null;

3、在表的第一列添加一个字段:ALTER  TABLE  tb_dept1  add manageId  int(11) FIRST;

4、在表的指定列之后添加一个字段:ALTER   TABLE tb_dept1  ADD  mannageId int(11)  AFTER  name;

    2.2.5删除字段:ALTER  TABLE <表名> drop <字段名>;

    2.2.6修改字段的排列位置:ALTER  TABLE  <表名>  MODIFY <字段1> <数据类型> FIRST |  AFTER <字段2>;

1、修改字段为表的第一个字段:ALTER  TABLE  tb_dept1  MODIFY  column1  varchar(12)  FIRST;

2、修改字段到表的指定列之后:ALTER  TABLE  tb_dept1  MODIFY  column1   varchar(12)  AFTER  location;

    2.2.7更改表的存储引擎:ALTER  TABLE <表名>  ENGINE=<更改后的存储引擎名>;

    2.2.8删除表的外键约束:对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系,MySQL中删除外键的语法格式如下:

            ALTER  TABLE  <表名>   DROP   FOREIGN  KEY <外键约束名>;

外键约束名:指在定义表时CONSTRAINT 关键字后面的参数;

    2.2.9删除数据表:将数据库中已经存在的表从数据中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。

1、删除没有被关联的表:使用DROP  TABLE 可以一次删除一个或多个没有被其他关联的数据表。

        DROP   TABLE [IF   EXISTS]  表1,表2,......;

参数“IF  EXISTS”用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候,如果表不存在,SQL 语句可以顺利执行,但是会发出警告(warning)。

2、删除被其他表关联的主表:数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因日直接删除,将破坏的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样同时删除了两个表中的数据。但有的情况下可能保留子表,这时如要单独删除父表,只需将关联的表的外键约束条件取消,然后就可以删除父表。

解除关联子表  tb_dept2的外键约束:ALTER   TABLE  tb_emp  DROP  FOREIGN  KEY   fk_emp_dept ;

语句成功执行后,将取消表  tb_emp和表 tb_dept2之间的关联关系,此时,可以输入删除语句,将原来父表tb_dept2删除,

  DROP   TABLE  tb_dept2;

注意:

1、表删除操作将把表的定义和表中的数据一起删除,并且MySQL在执行删除操作时,不会有任何的确认信息提示,因此执行删除操作时,应当慎重。

2、并不是每个表都可以任意选择存储引擎:外键约束是用来保证数据的参照完整性,如果表之间需要关联外键,却指定了不同的存储引擎,这些表之间是不能创建外键约束的。所以说,存储引擎的选择也不完全是随意的。

以上部分主要是数据库的创建与表的创建,当创建完成之后,需要往表里面插入数据,而后对数据进行操作。将在下一篇总结;

  



    

    

猜你喜欢

转载自blog.csdn.net/jsp88881/article/details/79937413