7、MySQL操作数据库以及数据表
学习sql规则,可以让mysql服务器帮咱们做其他操作
1、操作数据库(文件夹)
创建
create database 数据库名 default charset utf8;
表示整个数据库是utf8的格式
使用
use 数据库名;
查看
show databases;
删除
drop database 数据库名;
数据库没有修改这一说,如果你想修改,就删除数据库,再创建数据库
2、操作表(文件)
use 数据库名;
先进入数据库
查看
show tables;
然后看这个数据库下有哪些表
创建
create table 表名(列名1 数据类型,列名2 数据类型) engine=innodb default charset=utf8;
创建表的时候也需要给它设置编码,一般设置为utf8,我们还可以加上engine=innodb,表示引擎是innodb,innodb是支持出错后的回滚操作的,这叫事务,原子性操作,一旦中间任何位置出了差错,都要回滚到原来的状态。
mysql只有引擎是innodb的时候,才支持事务,咱们的程序一般情况下都是支持事务操作的,所以引擎就设置成innodb,如果我的网站不允许,不会出现这种事务性的操作,那你选什么引擎都可以,推荐选myisam,因为它相对于innodb来说,支持全局索引,相对来说存储的时候速度更快一点,但就是不支持事务。
引擎其实就是一段代码,如果是这个引擎,以这种方式,那个引擎以那种方式,相当于写了if else判断。
举个例子
create table t1(id int,name char(10)) default charset=utf8;
我们创建了一个表叫t1,用的utf8编码,这个表有2列
create table t1( id int not null auto_increment primary key, name char(10) )engine=innodb default charset=utf8;
上面这段sql表示创建1个表,表里有2列,一般我们让id自增的,它是个int类型,not null表示不允许为空,auto_increment表示它会自增,primary key表示它会约束,再加上一个加速查找,这个只对id这一列生效,跟其他列没有关系。
自增列按照上面这种写法,它作为这张表里每一行数据的唯一标识
清空表
delete from 表名;
表示清空这张表里的内容,下次再插入数据,它那个自增id是根据原来的继续往后走
truncate table 表名;(推荐)
这条命令清空表之后,再插入数据,我们查询看到是从1开始了
truncate比delete要快得多,数据量大的话会特别明显
删除表
drop table 表名;