发布网友 发布时间:2022-04-21 22:22
共10个回答
懂视网 时间:2022-04-30 04:59
列: 不同的列类型占的空间不一样. 选列的原则: 够用,不浪费
列类型有: 整形、浮点型、字符型、日期/时间型
tinyint/smallint/mediumint/int/bigint
2.1.1、详解tinyint 一个字节
[][][][][][][][]共8位
假设8为都为0 ==》 转化为十进制 0
假设8为都为1 ==》 转换为十进制 2^8-1
由于计算机也能够存储负数,并采用最高位为符号位
最高位为0代表正数 最高位为1代表负数
当最高位为0时:
[0][][][][][][][] => 0~2^7-1 转化为十进制 0~127
当最高位为1时
[1][][][][][][][] => 0~-2^7 转化为十进制 0~-128
列 |
字节 |
无符号 |
有符号 |
tinyint |
1 |
0~255 |
-128~127 |
smallint |
2 |
0~2^16-1 |
-2^15~2^15 |
medium |
3 |
0~2^24-1 |
-2^23~2^23 |
int |
4 |
0~2^32-1 |
-2^31~2^31 |
bigint |
8 |
0~2^64-1 |
-2^63~2^63 |
2.1.2、实例
2.1.3、整形列可选属性: not null unsigned zerofill
总结:
a、声明整数型列需要0填充时,它一定是无符号的
b、进行0填充时,不会改变其大小值
对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。
float与decimal的区别:decimal更精确
char:定长char(M),M代表宽度,即可容纳的字符数
varchar:变长char(M),M代表宽度,即可容纳的字符数
区别:
a、效率方面看,char<=1 varchar<1
即char会有完全利用的情况,而varchar则不会。因为同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度
b、针对尾部(从左往右的方向看),char会过滤尾部有空格的情况,而varchar不会。因为char存储的字符少于定义的字符长度时,就会对尾部进行空格填充.进行展示时,再把尾部的空格去掉
案例:
CREATETABLE vc (v VARCHAR(4), c CHAR(4));
INSERTINTO vc VALUES (‘ab ‘, ‘ab ‘);
SELECTCONCAT(v, ‘+‘), CONCAT(c, ‘+‘) FROM vc;
字节问题:
varchar(N), 这里的N是指字符数,并不是字节数.占用的字节数与编码有关
utf-8,一个汉字3字节 英文字母1字节
MySQL 5.0以上的版本:
1.一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别
3.MySQL检查长度,可用SQL语言:
select LENGTH(fieldname) from tablename来查看
2.4、日期与时间型
2.4.1、 year
总结
MySQL以YYYY格式检索和显示YEAR值。范围是1901到2155。
可以指定各种格式的YEAR值:
· 四位字符串,范围为‘1901‘到‘2155‘。
· 四位数字,范围为1901到2155。
· 两位字符串,范围为‘00‘到‘99‘。‘00‘到‘69‘和‘70‘到‘99‘范围的值被转换为2000到2069和1970到1999范围的YEAR值。
· 两位整数,范围为1到99。1到69和70到99范围的值被转换为2001到2069和1970到1999范围的YEAR值。请注意两位整数范围与两位字符串范围稍有不同,因为你不能直接将零指定为数字并将它解释为2000。你必须将它指定为一个字符串‘0‘或‘00‘或它被解释为0000。
2.4.2、 time
MySQL以‘HH:MM:SS‘格式检索和显示TIME值(或对于大的小时值采用‘HHH:MM:SS‘格式)。TIME值的范围可以从‘-838:59:59‘到‘838:59:59‘。小时部分会因此大的原因是TIME类型不仅可以用于表示一天的时间(必须小于24小时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以大于24小时,或者甚至为负)。
2.4.3、 date
当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用‘YYYY-MM-DD‘格式检索和显示DATE值。支持的范围是‘1000-01-01‘到 ‘9999-12-31‘。
2.4.4、 datetime
总结:虽然mysql有时间与日期的类型。但在一般的开发过程中涉及到跟时间方面的列类型时,通常使用int即整形类型。主要考虑到开发方面的方便,而且整形效率高。
The quieter you become,the more you are able to hear!
小贝_mysql建表以及列属性
标签:mysql
热心网友 时间:2022-04-30 02:07
直接打开MySQL建表不就可以了吗,在tables上右击,选new table,表名和后面的自己填一下,点中间的Compile,那个*闪电的标志,你填正确的话就会生成一个表了
热心网友 时间:2022-04-30 03:25
= =
热心网友 时间:2022-04-30 05:00
付费内容限时免费查看回答遇到问题一定要控制好自己的情绪,不要发火,不要偏激,不要说话太伤人,要懂得忍耐,忍耐不是为了让你不去处理这件事情,而是为了避免在情绪失控的情况下,做出充动让自己永远后悔的事情。用心去体会,礼貌做人,踏实做事,放大格局,调整心态,把握当下,快乐生活每一天!谢谢!3、设定表其它字段:依次填写字段学号stuNumber(varchar(50),不为空)、姓名stuName(varchar(50),可为空)、性别stuXb(varchar(50),可为空)、年龄stuAge(int,可为空)、出生日期stuBirth(datetime,可为空)。
5、单击“是”,进入“选择名称”对话框,填写表名为“student”。特别强调:表名不能采用常见的关键词(如for、name、where、to等)命名。
6、单击“确定”,学生个人信息student表创建完成。
7、单击数据库“studentDb”前面“×”图标,然后单击“表”前面的“”图标,右键“student”表,单击“打开表”选项,即可向表中填入数据,注意:id字段值自动填入,不能手填。
8、单击student表的右上角“× ”图标,关闭表同时自动保存学生个人信息。
热心网友 时间:2022-04-30 06:51
看提示,是没有选择数据库热心网友 时间:2022-04-30 08:59
创建表:热心网友 时间:2022-04-30 11:24
创建表:热心网友 时间:2022-04-30 14:05
CREATE TABLE login(热心网友 时间:2022-04-30 17:03
create table a ( b int )追问总是弹出这东西
热心网友 时间:2022-04-30 20:18
MySQL 创建数据表
创建MySQL数据表需要以下信息:
表名
表字段名
定义每个表字段
语法
以下为创建MySQL数据表的SQL通用语法:
以下例子中我们将在 shulanxt 数据库中创建数据表shulanxt_tbl: