MySQL学习简明文档

来源:互联网 发布:nginx缓存tomcat 编辑:程序博客网 时间:2024/05/17 07:01

MySQL学习简明文档

1.操作命令

   查看当前MySQL中有哪几个数据库:show databases;

   创建一个数据库:create  database dbName;

   如果防止数据库重名:create database if existsdbName;

   删除一个数据库:drop database dbName;

   如果防止删除不存在的数据库:drop database ifexists dbName;

   进入一个数据库:use  dbName;

   查看当前这个数据库中有哪几个表:show  tables;

   查看某一个表的表结构:desc   tablename;

 

 2. 数据类型:

(1)数值型:

   A. 整形:

     

类型

大小

范围(有符号)

范围(无符号)

tinyInt

1个字节

-28---28-1

0----28

smallInt

2个字节

-216---216-1

0----216

mediumInt

3个字节

-224----224-1

0----224

int

4个字节

-232-----232-1

0----232

bigInt

8个字节

-264-----264-1

0-----264

 

在MySQL中整形类型后可以跟一个整数,这个整数时显示宽度指示器,当从数据库中检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为int(6),就可以保证所包含的数字少于6位的时候自动在前面补0。

 

对于应用无符号整形时,在字段约束中加unsigned,这时所用的就是无符号整形。

如果加入zerofill约束,当位数不够时,默认以0补充。所以如果加了这个约束,就必须添加正整数的值。

  B.浮点型:

类型

大小

范围

范围

用途

float

4个字节

 

 

单精度浮点值

Double或real

Double precision

8个字节

 

 

双精度

浮点数值

Decimal或

Dec numeric

decimal(m,d)

如果M>D为

M+2,否则为D+2

 

 

小数值

   当定义浮点型值时,也可以用附加参数:一个显示宽度指示器和一个小数点指示器。例如,Float(5,2)规定显示的值不会超过5位数字,小数点后带有2位数。

如果小数点后面的数字个数超出了允许的数目的值,系统会自动将它四舍五入为最接近它的值,然后插入。如果插入的值长度超过了设置,则会报错。例如,如果插入1234,789,则小数点后会保留2位,单是总长度超过,会报错。小数点后不足的位数补0。

   注意:如果前一个值小于后一个值则会报错,所以,M必须大于D;

Decimal 数据类型用于要求非常高的精确度的计算中。这种类型允许指定数值的精确度和计数法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。例如,decimal(5,2)规定了存储的值将不会超过5位数字,并且小数点后面有2位数字。

注意:MySQL在内部把数据存储为字符串,更精确地保留它们的值。

忽略decimal数据类型的精确度和技术方法修饰符将会使MySQL把所有标识为这个类型的字段的精度默认为10,计算方法默认为0。

Unsigned和zerofill修饰符也可应用在float,double,decimal类型。

       C. 字符串类型

 

MySQL字符串类型

类型

大小

用途

char

0~28-1字节

定长字符串

varchar

变长字符串

tinyBlob

0~28-1字节

不超过255个字符的二进制字符串

tinyText

0~28-1字节

短文本字符串

Blob

0~216-1字节

二进制形式长文本数据

Text

0~216-1字节

长文本数据

MediumBlob

0~224-1字节

二进制形式的中等长度文本数据

MediumText

0~224-1字节

中等长度文本数据

LongBlob

0~232-1字节

二进制形式的极大文本数据

LongText

0~232-1字节

极大文本数据

 

     1CharVarchar类型:

           Char 类型:用于定长字符串,必须在其后的括号中给出长度参数。例如,char(5):该字段长度为5个字符,如果不足5个则用空格从后面补充;如果超出5个则会报错。这个长度参数的大小,最大是255。

          Varchar类型:可变长字符串,也必须在其后的括号中给出长度参数。

Char和varcha类型的区别是:char类型把这个值作为准确值;varchar把它视为最大值,并且只使用了存储字符串的实际上需要的字节数(增加一个额外的字节记录长度)。如果存储的值超过了长度参数的值,会报错。

      (2) TextBlob类型:

      Blob类型区分大小写;Text类型是不区分大小写。

     D. 日期和时间类型:

        

 

 

MySQL日期类型

类型

大小

范围

格式

用途

 

Date

3字节

1000-01-01~

9999-12-31

YYYY-MM-DD

日期型

 

Time

3字节

 

HH:MM:SS

 

 

DateTime

8字节

1000-01-01

000000~

9999-12-31

235959

 

YYYY-MM-DD  HH:MM:SS

 

 

Year

1字节

1901~2155

YYYY

 

 

TimeStamp

8字节

1970-01-01

00:00:00~

2037

YYYYMMDDHHMMSS

 

 

 

E. 枚举类型:

 

Enum类型允许从集合中选择单个值时,通常用于互斥的数据值。

用法如下:

      Create  table test(

          Id  int(5) primary key,

          Gender  Enum('M',F')

      );

      Insert   into test  values(1,'M');

      Insert   into test  values(1,'F');

Set类型:不同于Enum的是它允许从列表中选择多个值。

     Create  table test(

          Id  int(5) primary key,

          Gender  Set('A' , 'B' ,'C', 'D', 'E' , 'F')

      );

      Insert   into test  values(1,'A,B,C');

      Insert   into test  values(1,'F');

      Insert   into test  values(1,'A, E');

 

 3. 字段约束:

not null null

   表示这个字段是否可以为空,默认是可以为空;

default

   表示这个字段的默认值是什么,如,default ‘hh’;

       如果没有指定这个字段默认值是多少,则会根据情况:

       如果这个字段可以为空,则会赋值为null;

         如果这个字段不可以为空,则会根据情况赋值默认值:

(1)       如果这个字段是数值类型,则会赋值为0;

(2)       如果这个字段是字符类型,则会赋值为空字符串;

(3)       如果这个字段是时间类型,则会赋值为当前的日期和时间

(4)       如果这个字段是枚举类型,则会赋值为枚举组的第一条

Auto_increment

    只适用于int 类型,表示这个字段会根据插入记录的条数自动递增。

    这对于主键是非常有用的,如果主键设为Auto_increment,则在插入数  

 据时,可以省略主键的插入值。

Primary key

    设置主键。不能为空且其值表中唯一。

    Eg1:

        create  table tableName(

            Id      int(10)   Auto_increment   primary key,

            Name   varchar(50)  not null

        );

    Eg2:

        create  table tableName(

            Id      int(10)  Auto_increment,

            Host    int(10)  Auto_increment,

            Name   varchar(50)  not null,

            primary key(Id,Host)

        );

对于eg1,这种格式的主键设置方式,只能设置这一个字段为主键;

对于eg2,  这种格式的主键设置方式,可以设置多个字段为联合主键;

 

原创粉丝点击