mysql第一篇

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字符集
原文地址:https://www.cnblogs.com/huangxu/p/7482154.html