首页 > 代码库 > 表操作--建表语句

表操作--建表语句

表操作--建表语句

1、创建默认字符集库

下面已默认格式的字符集库

mysql> create database Ysolin;

Query OK, 1 row affected (0.00 sec)

 

mysql> show create database Ysolin\G

*************************** 1. row ***************************

       Database: Ysolin

Create Database: CREATE DATABASE `Ysolin` /*!40100 DEFAULT CHARACTER SET latin1 */

1 row in set (0.00 sec)

2、建表语法格式

create table<表名>(

<字段名1><类型1>,

 

<字段名n><类型n>

);

3、建表语句例子

mysql> use Ysolin

Database changed

 

mysql> create table student(

    -> id int(4) not null,

    -> name char(20) not null,

    -> age tinyint(2) not null default ‘0‘,

    -> dept varchar(16) default NULL

    -> );

Query OK, 0 rows affected (0.01 sec)

 

mysql> show create table student\G

*************************** 1. row ***************************

       Table: student

Create Table: CREATE TABLE `student` (

  `id` int(4) NOT NULL,

  `name` char(20) NOT NULL,

  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,

  `dept` varchar(16) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

注释:

CREATE TABLE `student` (                                                  CREATE TABLE 表示创建表的固定关键字,student为表名

  `id` int(4) NOT NULL,                                                     学号列,数字类型,长度为4,不能为空值

  `name` char(20) NOT NULL,                                      名字列,定长字符类型,长度20,不能为空

  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,                 年龄列,很小的数字类型,长度为2,不能为空

  `dept` varchar(16) DEFAULT NULL                           系别列,变长字符类型,长度为16,默认为空

) ENGINE=MyISAM DEFAULT CHARSET=latin1        引擎和字符集,引擎默认MyISAM,字符集继承库的latin1

注意:MySQL501MySQL5.5环境默认的引擎是不一样的,如果想控制表的引擎,就要在建表语句里面显示的指定引擎建表

         MySQL5.1及以前,默认引擎为MyISAM

         MySQL5.5以后,默认引擎为InnoDB

4、查看表结构

mysql> desc student;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(4)      | NO|     | NULL    ||

| name  | char(20)    | NO|     | NULL    ||

| age   | tinyint(2)  | NO|     | 0       ||

| dept  | varchar(16) | YES  || NULL    |       |

+-------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

 

5MySQL表的字段类型

1)数字类型

列类型

需要的存储量

TINYINT

1字节

SMALLINT

2字节

MEDIUMINT

3字节

INT

4字节

INTEGER

4字节

BIGINT

8字节

FLOAT(X)

4如果X<=248如果25<=X=53

FLOAT

4字节

DOUBLE

8个字节

DOUBLE PRECISION

8个字节

REAL

8个字节

DECIMAL(M,D)

M字节(D+2,如果M<D

NUMERIC(M,D)

M字节(D+2,如果D<M

 

2)日期和时间类型

MySQL数据类型

含义

date

3字节,日期,格式:2014-09-18

time

3字节,时间,格式:08:42:30

datetime

8字节,日期时间,格式:2014-09-18 08:42:30

timestamp

4字节,自动存储记录修改的时间

year

1字节,年份

 

3)字符串数量类型

MySQL数据类型

含义

char(n)

固定长度,最多255个字符

varchar(n)

可变长度,最多65535个字符

tinytext

可变长度,最多255个字符

text

可变长度,最多65535个字符

mediumtext

可变长度,最多224次方-1个字符

longtext

可变长度,最多232次方-1个字符

ENUM(‘value1’, ‘value2’,…)

12个字节,取决于枚举值得数目(最大值65535

SET(‘value1’, ‘value2’,…)

1,2,3,48字节,取决于集合成员的数量(最多64个成员)

常有数据类型:

1.INT[M]型:正常大小整数类型

2.DOUBLE[(M,D)] [ZEROFILL]型:正常大小(双精密)浮点数字类型

3.DATE日期类型:支持的范围是1000-01-019999-12-31.MySQL以及YYYY-MM-DD格式来显示DATE值,但是运行你使用字符串或数字把值赋给DATE

4.CHAR(M)型:定长字符串类型,当存储时,总是使用空格填满右边指定的长度

5.BLOB TEXT类型:最大长度为6555352^16-1)个字符

6.VARCHAR型:变长字符串类型


6、查看建表结构

mysql> desc student;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(4)      | NO|     | NULL    ||

| name  | char(20)    | NO|     | NULL    ||

| age   | tinyint(2)  | NO|     | 0       ||

| dept  | varchar(16) | YES  || NULL    |       |

+-------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

 

mysql> show columns from student;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(4)      | NO|     | NULL    ||

| name  | char(20)    | NO|     | NULL    ||

| age   | tinyint(2)  | NO|     | 0       ||

| dept  | varchar(16) | YES  || NULL    |       |

+-------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

7、查看已建表的语句

mysql> show create table student\G

*************************** 1. row ***************************

       Table: student

Create Table: CREATE TABLE `student` (

  `id` int(4) NOT NULL,

  `name` char(20) NOT NULL,

  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,

  `dept` varchar(16) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

1 row in set (0.00 sec)


本文出自 “运维小当家” 博客,转载请与作者联系!

表操作--建表语句