mysql练习题

2019-05-15  本文已影响0人  盘木

1、列出你所知道的Mysql的数据类型?

    数值类型:
        tinyint     
            非常小的整型    1字节   -128<->128    or  0<->255(无符号)
        smallint
            较小的整型      2字节   -32768--32767 0--65545
        mediumint
            中等大小的整型  3字节                   0--16777215
        int
            标准的整型      4字节                   -2147483648--2147483647
        bigint
            大整数型        8字节                   2的64次方
       浮点型(小数)
           float(M,d)       4字节
           float(5,2)小数数值共5位,小数点后2位,小数点前3位
           double(M,d)        8字节
           定点数
           decimal(M,d)       M+2字节
    字符串:
        char(n)
        varchar(n)
        enum('1', '0')
        set('a', 'b', 'c')
    日期和时间:
        使用int来存储

    NULL
        NULL意味着“没有值”或“未知值”
        可以测试某个值是否为NULL
        不能对NULL值进行算术计算
        对NULL值进行算术运算,其结果还是NULL
        0或NULL都意味着假,其余值都意味着真

2、char()和varchar()的区别?

    char是定长,效率高
    varchar()是可变长度,效率低
    长度变化不大用char,长度变化大的用varchar

3、sql语句默写?
id 字段 有属性 无符号 非空 自增 主键索引
name 字段 char(8) 字符串类型,长度8位,使用定长
sex 字段 enum('1', '0') //稍后添加 枚举类型,0和1
age 字段 tinyint //小整型
classid 字段 字符串类型,长度12,使用定长

        create table users(
           id int(11) unsigned not null auto_increment primary key,
           name char(8) not null,
           age tinyint not null,
           classid char(12) not null
        );

在name后面添加一个sex字段,类型是enum('1', '0')

        alter table users add sex enum('0', '1') not  null after name;
        alter table users modify age tinyint not null;
插入数据:

姓名:小王 性别:男(1) 年龄:25 班级:105
姓名:小彤 性别:女(0) 年龄:20 班级:105

insert into `users` (name,sex,age,classid)values('小王','1',25,'105'),('小彤','0',20,'105');

修改数据:
将小王的性别改为‘0’女的

update users set sex = '0' where name = '小王';

给小王加个索引

create index index_xm on users(name);
alter table users add index index_age(age);

删除数据:

delete from users where classid = '105';

查看表中所有的索引

show indexes from tb_name\G

删除普通索引

alter table users drop index index_xw;

查询年龄大于20的数据,降序排序。

select * from users where age > 20 order by age desc;
上一篇下一篇

猜你喜欢

热点阅读