美文网首页
SQL笔记-03

SQL笔记-03

作者: 杨大菲 | 来源:发表于2018-03-20 10:49 被阅读0次

    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类型了

    相关文章

      网友评论

          本文标题:SQL笔记-03

          本文链接:https://www.haomeiwen.com/subject/kmwjqftx.html