SQL笔记-03

SQL笔记-03,第1张

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

简单点: 用户表(用户ID,姓名,密码,性别,年龄,职业,微信,邮箱,手机,专长,用户状态,登录时间,是否管理员)其中也可以单独设置一个管理员表

试题类别:(类别 ID,类别名称,类别描述)

试题表:(试题 ID,试题类别 ID,试题描述,试题难度,试题答案)

答题表:(答题 ID,用户 ID,试题 ID,答题答案,答题评分)

大概就这样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7170934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存