表操作--建表语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表操作--建表语句相关的知识,希望对你有一定的参考价值。
表操作--建表语句
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
注意:MySQL501和MySQL5.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)
5、MySQL表的字段类型
(1)数字类型
列类型 | 需要的存储量 |
TINYINT | 1字节 |
SMALLINT | 2字节 |
MEDIUMINT | 3字节 |
INT | 4字节 |
INTEGER | 4字节 |
BIGINT | 8字节 |
FLOAT(X) | 4如果X<=24或8如果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 | 可变长度,最多2的24次方-1个字符 |
longtext | 可变长度,最多2的32次方-1个字符 |
ENUM(‘value1’, ‘value2’,…) | 1或2个字节,取决于枚举值得数目(最大值65535) |
SET(‘value1’, ‘value2’,…) | 1,2,3,4或8字节,取决于集合成员的数量(最多64个成员) |
常有数据类型:
1.INT[M]型:正常大小整数类型
2.DOUBLE[(M,D)] [ZEROFILL]型:正常大小(双精密)浮点数字类型
3.DATE日期类型:支持的范围是1000-01-01到9999-12-31.MySQL以及YYYY-MM-DD格式来显示DATE值,但是运行你使用字符串或数字把值赋给DATE列
4.CHAR(M)型:定长字符串类型,当存储时,总是使用空格填满右边指定的长度
5.BLOB TEXT类型:最大长度为655535(2^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)
本文出自 “运维小当家” 博客,转载请与作者联系!
以上是关于表操作--建表语句的主要内容,如果未能解决你的问题,请参考以下文章
SQL语句建表设置主键外键checkdefaultunique约束
3.1.3MySQL__数据库基本建表查询,登录,sql语句,建表语句,修改表结构,增删改查,as别名,limit分页,distinct去重,聚合函数,