MySQL数据库

创建数据库

使用根登录后,可以使用

create database if not exists UNOOB default charset utf8;

创建数据库,该命令的作用:

如果数据库不存在则创建,存在则不创建。 创建UNOOB数据库,并设定编码集为UTF8

删除数据库

删库有风险,动手需谨慎

drop database py;

MySQL数据表

创建MySQL的数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段

    create table 表名(

      字段名 类型 [字段约束],
      字段名 类型 [字段约束],
      字段名 类型 [字段约束]
      ...
    

    );

创建表

通过mysql>命令窗口可以很简单的创建MySQL数据表。你可以使用SQL语句 CREATE TABLE来创建数据表。

实例

以下为创建数据表runoob_tbl实例:

    create table user(
        id int unsigned not null AUTO_INCREMENT PRIMARY KEY,
        username varchar(30) not null,
        password char(32) not null,
        email varchar(100) not null,
        pic varchar(50) default './public/img/pic.jpg'
    )engine=innodb default charset=utf8;

实例解析:

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

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

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

ENGINE设置存储引擎,CHARSET设置编码。

查看表结构 desc stu;

查看建表语句 show create table stu \ G - 查看建表的语句

修改表结构

格式:alter table 表名 action(更改选项);

添加:

添加字段:

alter table 表名 add 字段名信息

例如:

    -- 在user表的最后追加一个num字段 设置为int not null

    alter table user add num int not null;


    -- 在user表的email字段后添加一个age字段,设置int not null default 20;

    alter table user add age int not null default 20 after email;


    -- 在user表的最前面添加一个aa字段设置为int类型

    alter table user add aa int first;

删除:

删除字段:

alter table 表名 drop 被删除的字段名

例如:

-- 删除user表的aa字段

 alter table user drop aa;

修改 :

修改字段:

alter   table    表名      change[modify]      被修改后的字段信息

其中:change可以修改字段名, modify 不修改

例如:

-- 修改user表中age字段信息(类型),(使用modify关键字的目的不修改字段名)

  alter table user modify age tinyint unsigned not null default 20;

-- 修改user表的num字段改为mm字段并添加了默认值(使用change可以改字段名)

  alter table user change num mm int not null default 10;

添加和删​​除索引:


-- 为user表中的name字段添加唯一性索引,索引名为uni_name;
 alter table user add unique uni_name(name);

-- 为user表中的email字段添加普通索引,索引名为index_eamil

 alter table user add index index_email(email);

-- 将user表中index_email的索引删除

 alter table user drop index index_email;

修改表名:

ALTER TABLE 旧表名 RENAME AS 新表名

ALTER TABLE 原表名 RENAME 新表名

RENAME TABLE 原表名 to  新表名

更改AUTO_INCREMENT初始值:

ALTER TABLE 表名称 AUTO_INCREMENT=1

更改表类型:

ALTER TABLE 表名称 ENGINE="InnoDB"

例子:

在一个表中添加了一些数据,id最大为6,删除id为6,然后重启服务,在添加一个id为几?
 MyISAM 再添加一个为7
 InnoDB再添加一个为6
MyISAM表将最大的ID记录到了数据文件里,重启mysql自增主键的最大ID值也不会丢失;
InnoDB则是把最大的ID值记录到了内存中,所以重启mysql或者对表进行了OPTIMIZE操作后,最大ID值将会丢失。 

关于表类型 MySQL的数据库中的表类型一般常用两种:MyISAM数据和InnoDB

1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不支持事务,安全较弱,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。

2、InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况。

区别:

总的来说,MyISAM和InnoDB各有优劣,各有各的使用环境。

但是InnoDB的设计目标是处理大容量数据库系统,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。

我觉得使用InnoDB可以应对更为复杂的情况,特别是对并发的处理要比MyISAM高效。同时结合memcache也可以缓存SELECT来减少SELECT查询,从而提高整体性能

删除表

MySQL中删除数据表是非常容易操作的,但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。

DROP TABLE table_name ;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值