charset modify charset engine 字符集 修改 字符集 引擎 #1 操作文件夹(库) 代码如下: SHOW CREATE DATABASE db_name; 增 create database db1 charset utf8; 查 show databases; show create database db1; 改 alter database db1 charset gbk; 删 drop database db1; #2 操作文件(表) 查看表编码: SHOW CREATE TABLE tbl_name; 切换到文件夹下:use db1 增(相当于创建) create table t1(id int,name char(10))engine=innodb; create table t2(id int,name char(10))engine(引擎)=innodb default(默认) charset(字符集) utf8; 指定这个表的id,name是什么类型,指定引擎,以及字符集 查 show tables; show create table t1; 查看表的基本信息 desc t1;#查看表结构 改 (相当于添加) alter table t1 add age int; 添加AGE字段为整形 alter table t1 modify name char(12); 删 drop table t1; #3 操作文件的一行行内容(记录) 查看字段编码: 代码如下: SHOW FULL COLUMNS FROM tbl_name 增 插入数据 insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); insert into db1.t1(name) values('egon1'),('egon2'),('egon3'); 查 select * from t1; select name from t1; select name,id from t1; 改(更新) update t1 set name='SB' where id=4; update t1 set name='SB' where name='alex'; 删 delete from t1 where id=4; #对于清空表记录有两种方式,但是推荐后者 delete from t1; truncate t1; #当数据量比较大的情况下,使用这种方式,删除速度快 #自增id create table t5(id int primary(主键) key auto_increment,name char(10)); create table t4(id int not null unique,name char(10)); insert into t5(name) values ('egon5'), ('egon6'), ('egon7'), ('egon8'), ('egon9'), ('egon10'), ('egon11'), ('egon12'), ('egon13'); #拷贝表结构 create table t7 select * from t5 where 1=2; alter table t7 modify id int primary key auto_increment; 有问题 insert into t7(name) values ('egon1'), ('egon2'), ('egon3'), ('egon4'), ('egon5'), ('egon6'), ('egon7'), ('egon8'), ('egon9'), ('egon10'), ('egon11'), ('egon12'), ('egon13'); delete from t7 where id=1; #删记录 update t7 set name=''; #修改字段对应的值 (这是修改name这个字段的所有列) #创建用户 create user 'lin'@'localhost' identified by '123'; #insert,delele,update,select #级别1:对所有库,下的所有表,下的所有字段 grant select on *.* to 'lin1'@'localhost' identified by '123';(第一个*代表所有库,第二个*代表所有表) #级别2:对db1库,下的所有表,下的所有字段(@前是账号,@后是密码) grant select on db1.* to 'lin2'@'localhost' identified by '123'; #级别3:对表db1.t1,下的所有字段 grant select on db1.t1 to 'lin3'@'localhost' identified by '123'; #级别4:对表db1.t1,下的id,name字段 grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '123'; grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by '123'; #修改完权限后,要记得刷新权限 flush privileges;
mysql现在已提供什么存储引擎:
mysql> show engines;
看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%';
1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
修改mysql的默认存储引擎
1、查看mysql存储引擎命令,
在mysql>提示符下搞入show engines;
字段 Support为:Default表示默认存储引擎
www.2cto.com
2、设置InnoDB为默认引擎:
在配置文件my.cnf中的 [mysqld] 下面加入
default-storage-engine=INNODB 一句
3、重启mysql服务器:
mysqladmin -u root -p shutdown
或者service mysqld restart 登录mysql数据库
MySQL查看和修改表的存储引擎
1 查看系统支持的存储引擎
show engines;
2 查看表使用的存储引擎
两种方法:
a、show table status from db_name where name='table_name';
b、show create table table_name;
如果显示的格式不好看,可以用g代替行尾分号
有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。
3 修改表引擎方法
alter table table_name engine=innodb;
4 关闭Innodb引擎方法
关闭mysql服务: net stop mysql
找到mysql安装目录下的my.ini文件:
找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM
找到#skip-innodb 改为skip-innodb
启动mysql服务:net start mysql
查看数据库编码:
代码如下:
SHOW CREATE DATABASE db_name;
查看表编码:
SHOW CREATE TABLE tbl_name;
查看字段编码:
代码如下:
SHOW FULL COLUMNS FROM tbl_name
charset字符集