2017-03-09
1.查询三要素:
1)查那张表的数据?class
2)查那些列?sname,salary,company
3)要查哪一行?where条件
mysql>select sname,salary,company fromclass where id=1
2.暴力查询,利用*代表所有列:
3.取出class中所有人的姓名和工资;
mysql>select sname,salary from class;
3.查id大于1的所有列
mysql>select * from class where id>1;
4.取部分行部分列:取id小于等于2的姓名和饭补
mysql>select sname,fanbu from classwhere id<=2;
5.建表的过程就是一个声明字段(声明列)的过程,列类型的存储范围和占据字节的关系
1)数值型
整型:一般而言,占N字节则:0-2^8N-1或2^(8N-1)~+2^(8N-1)-1
tinyint:1个字节 -128~+127 或0~255;
smallint:2个字节 -32768~+32767或0-65535
mediumint:3个字节
int:4个字节
bigint:8个字节
声明tinyint怎么样让他0-255怎么样让他-128~=127:
整型声明的时候的参数问题:
<1>建表:
mysql>create table class1(
->sname varchar(10) notnull default ‘’,
->age tinyint not nulldefault 0
->)engine myisamcharset utf8;
<2>查看表结构
mysql>desc class1;
<3>插入数据,age到底是-128~+127还是0-255:
mysql>insert into class1
->(sname,age)
->values
->(‘刘备’,128);
报错:超出范围所以说明范围不是0-255,再测试127成功
经过测试,默认范围是-128~+127;
故:int系列不加说明默认有符号
<4>通过声明int类型的符号,来走无符号的0-255范围,给class1加一个列
mysql>alert table class1 add chengji tinyint unsigned not nulldefault 0;
插入数据范围测试,故再列类型后加unsigned可以范围切换成正数范围
<5>分析列类型的m参数,m参数必须和zerofill配合才有意义,给class1增加一个学号列(学号一般不为负,而且位数相同如000013,012345不够位数也会用0填充;
mysql>alter table class1 add xuehao smallint(5) zerofill not nulldefault 0;
查看表结构
往表中插入学号数字
插入的是345 但是会自动补齐0,这就是先用m规定了学号列的长度,然后不足长度部分用0不足是zerofill的定义实现的。
查看表结构发现,只要声明了是zerofill那么就属于unsigned类型了
网友评论