码迷,mamicode.com
首页 > 数据库 > 详细

Mysql-1

时间:2016-07-05 22:38:27      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:mysql数据类型

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司


set names utf8   明确使用何种字符集


show databases   查看当前数据库服务器下的数据库信息


create database bdname charset utf8 collate utf8_general_ci   创建数据库dbname并矫正为utf8_general_ci

例如:create database lianxi charset utf8 collate utf8_general_ci

drop database dbname  删除数据库


use lianxi;  使用数据库lianxi


show tables;  查看当前数据库下边的所有表

create table tablename(

    字段名称 数据类型,

)engine=innodb default charset utf8;


例如:

 create table student(

 sno int,

 sname varchar(20) charset utf8 collate utf8_general_ci,

 chengji int,

 grade varchar(20) charset utf8 collate utf8_general_ci

)engine=innodb default charset utf8;


desc  tablename  查看表结构

show columns from tablename;  查看表结构

show create table  tablename  查看创建表的命令

drop table tablename  删除表

rename table oldname to newname  将旧表名修改为新表名

alter table tablename add 字段名 数据类型 约束 comment ‘备注‘ first  在表的开头添加字段sno2


alter table tablename add 字段名 数据类型 约束 comment ‘备注‘  在表的结尾添加字段


alter table tablename add 字段名 数据类型 约束 comment ‘备注‘ after grade  在grade字段之后添加字段


alter table tablename drop 字段名


数据类型

注:以下内容针对MySQL5.0及以上版本

MySQL的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文是我结合网上看到的一些blog加上《高性能MySQL》一书上的内容整理而成的。

三大原则:

1,更小的通常更好,应该尽量使用可以正确存储数据的最小数据类型。

2,简单就好,简单数据类型的操作通常需要更少的CPU周期。

3,尽量避免NULL,如果查询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列使得索引、索引统计和值比较都更复杂。


  • 注:以下内容针对MySQL5.0及以上版本

    MySQL的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文是我结合网上看到的一些blog加上《高性能MySQL》一书上的内容整理而成的。

    三大原则:

    1,更小的通常更好,应该尽量使用可以正确存储数据的最小数据类型。

    2,简单就好,简单数据类型的操作通常需要更少的CPU周期。

    3,尽量避免NULL,如果查询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列使得索引、索引统计和值比较都更复杂。

    1、整型

    MySQL数据类型含义(有符号)
    tinyint(m)1个字节 范围(-128~127)
    smallint(m)2个字节 范围(-32768~32767)
    mediumint(m)3个字节 范围(-8388608~8388607)
    int(m)4个字节 范围(-2147483648~2147483647)
    bigint(m)8个字节 范围(+-9.22*10的18次方)

    取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。
    int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围。

    (MySQL可以为整型类型指定宽度,例如Int(11),对绝大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。对于存储和计算来说,Int(1)和Int(20)是相同的。)

    2、浮点型(float和double)

    MySQL数据类型含义
    float(m,d)单精度浮点型 8位精度(4字节) m总个数,d小数位
    double(m,d)双精度浮点型 16位精度(8字节) m总个数,d小数位

    设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。

    3、定点数

    浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
    decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。

    MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个直接存9个数字)。例如,decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:小数点前的数字用4个字节,小数点后的数字用4个字节,小数点本身占1个字节。

    浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。float使用4个字节存储。double占用8个字节。

    因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用decimal——例如存储财务数据。但在数据量比较大的时候,可以考虑使用bigint代替decimal。

    4、字符串(char,varchar,_text)

    MySQL数据类型含义
    char(n)固定长度,最多255个字符
    varchar(n)固定长度,最多65535个字符
    tinytext可变长度,最多255个字符
    text可变长度,最多65535个字符
    mediumtext可变长度,最多2的24次方-1个字符
    longtext可变长度,最多2的32次方-1个字符

    char和varchar:
    1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
    2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n< n>255),所以varchar(4),存入3个字符将占用4个字节。
    3.char类型的字符串检索速度要比varchar类型的快。

    varchar和text:
    1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n< n>255),text是实际字符数+2个字节。
    2.text类型不能有默认值。
    3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

    5.二进制数据(_Blob)

    1._BLOB和_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
    2._BLOB存储的数据只能整体读出。
    3._TEXT可以指定字符集,_BLO不用指定字符集。

    6.日期时间类型 

    MySQL数据类型含义
    date日期 ‘2008-12-2‘
    time时间 ‘12:25:36‘
    datetime日期时间 ‘2008-12-2 22:06:44‘
    timestamp自动存储记录修改时间

    若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

    数据类型的属性

    MySQL关键字含义
    NULL数据列可包含NULL值
    NOT NULL数据列不允许包含NULL值
    DEFAULT默认值
    PRIMARY KEY主键
    AUTO_INCREMENT自动递增,适用于整数类型
    UNSIGNED无符号
    CHARACTER SET name指定一个字符集

Mysql-1

标签:mysql数据类型

原文地址:http://yjyan.blog.51cto.com/9291126/1796096

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!