MySql学习笔记——常用操作
登陆MySql数据库命令
mysql -h localhost -P 3306 -u root -p
-h代表数据库IP地址、-P 代表端口号、-u 代表用户 、-p 代表密码
创建数据库(或者说创建schema)
create database test_2017;
删除数据库(或者删除schema)
drop database test_2017;
查看当前MySql上的所有数据库(或者说查看所有schema)
show databases;
切换到指定的数据库
显示当前使用的数据库
select database();
显示当前登陆的用户
select user()
查看当前数据上用户的所有表
show tables;
复制表结构,不复制数据
create table t_test02 like t_test01;
复制表结构和表中数据
create table t_test03 as select * from t_test01;
对结果集进行分页
select * from tablename limit m,n;
m代表起始行的索引,索引从0开始。n代表从m的位置行开始显示多少行记录。
select * from user limit 0,5;--返回结果的前5行
select * from user limit 5,-1;--返回第6行到最后一行
修改表
添加字段
alter table t_test01 add age int not null default '1';--添加一个新字段,不为null,默认'1'
alter table t_test01 add age int;
修改字段名称和类型
alter table t_test01 change age age1 varchar(100);
删除字段
alter table t_test01 drop age1;
重命名表名
alter table t_test01 rename t_test01_bak;
查看表结构、表的存储引擎已经字符集编码
show create table t_test01_bak;
MySql学习笔记
表类型(存储类型)的选择
mysql支持的存储引擎中,使用频率最多的是InnoDB、MyISAM、BDB。InnoDB和BDB支持事务安全表,其它引擎都是非事务安全。我们应该根据不同情况和表要存储的数据特点类选择不同的存储引擎,提高引擎的应用效率和灵活的存储。InnoDB为MySql默认的存储引擎,适用强调可靠性强和需要支持事务处理的场景。MyISAM适用强调数据读写速度、读写并发性不高的场合。
我们在选择表字段的数据类型时,可以根据表类型来选择。例如:InnoDB存储引擎的表 varchar 更适合存储字符串类型的数据。MyISAM存储引擎的表char更适合存储字符串型数据。
选择合适的字段类型来存储数据
数字和字符串之间的选择
优先考虑使用数字类型,占用空间小,数度快
例如:用无符号的INT存储IP地址。使用INET_ATON()、INET_NTOA()实现IP转换。
优先使用ENUM或SET
如果字符串是固定,在某个范围的建议使用ENUM或SET存储
例如:sex enum('F','M')
避免使用NULL字段
原因:很难进行查询优化、null列加索引很难进行优化、含null复核索要无效
Q1:int(4)和varchar(4)代表的含义?
int(4):这里4代表的是显示数字的显示宽度,而不是只数值的范围。通过下例来理解数字显示宽度:
1,创建t_test06表,指定n字段为自动填充0
create table t_test06(n int(4) unsigned zerofill not null);
2,插入数据
insert into t_test06 values(1),(11),(1111),(11111);
这里我们可以看到当插入的数字宽度小于我们指定的4时,会自从左侧自动补0。这就是显示宽度的意思。
varchar(4):这里的4代表可以存储的字符串长度,单位是字符(不是字节)。varchar(4)只能存储四个汉字,英文字母也是四个。如果超出mysql会截断插入的字符串值,保留指定的最大长度字符串。
参考文章:
http://www.2cto.com/database/201206/135566.html
http://blog.csdn.net/anxpp/article/details/51284106#t1
http://blog.csdn.net/sdcxyz/article/details/44980891