您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL Create 1

1. 定义

维基百科: CREATE 指令负责对象的创建,、数据表、索引、等都可以使用CREATE 来创建。

编程之家解释:CREATE指令十分强大,是 中最为关键的指令之一,通过它你可以轻松的在中创建你所需要的对象,当然这也使 CREATE 的语法有些复杂,掌握 CREATE 是学好 的关键一步。

2. 前言

本小节,我们将一起学习 Create

Create 是较为复杂的指令,我们不会在小节中将它全盘托出,而是通过多个知识点将其串联起来。个小节里面,我们会介绍新建新建数据表这两个最常用的点,其中新建数据表的语法是比较复杂的,它不仅涉及字段数据类型,还涉及到了约束方面的。

考虑到篇幅问题,在本小节中我们会着重介绍字段数据类型的知识,而将约束将放在下一节再详细介绍。

3. 新建

使用CREATE DATABASE 可以在 RDBMS 中新建。

语法如下:

CREATE DATABASE [database_name];

其中[]database_name代表。

请书写 语句,新建名为imooc的。

分析:

按照上面的语法格式,我们把占位符替换为imooc即可。

语句:

CREATE DATABASE imooc;

4. 数据类型

与创建比起来,创建数据表要复杂的多,我们需要为表中的每个字段明确地指明数据类型,数据表才可被创建,因此我们先来学习 中的数据类型。

数据类型规定了某字段只能容纳和表示某种特定的数据类型。

常见的数据类型有三种,它们分别是:数值型字符型日期型

就是我们在数学中常见的数字,它也被分为整数类型小数类型两大类。整数类型认有符号,即可以为负数,如 -1 ,如需无符号,则需要unsigned关键字来约束,约束后不可表示负数。

整数类型有数据长度的限制,如果在数据插入时超出其整型范围,会报异常并插入失败。如在64机上,int 类型大小为32位,即4字节,如果插入的数字大小超过了2^32,插入便会失败,此时你需要使用容量更大整数类型,如 bigint,它的大小是 64 位。

整数类型可以接受参数,我们通常把这个参数称作长度,不过它并不是整数真正的长度,而是它的最大宽度。

小数类型可以理解为两部分:整数部分 + 小数部分。因此小数类型在指定的时候可以传入两个参数,第参数表示整体的长度,第二个参数则代表小数部分的长度。

数值型常见类型如下表所示:

说明: 表中数据类型一栏中的 size 表示 整体的长度,d 表示小数部分的长度。

字符类型则用来表示我们生活中常见的文本和字符,根据字符串的长度,我们可将其分为短文本长文本两类。

常见的短文本类型有charvarchar两种,其中char不可变长,而varchar可变长。长文本类型有textblob等,text用来保存长文本,而blob用来保存二进制流数据。

字符型常见类型如下表所示:

日期类型是三大类型中最复杂的一种类型,涉及的也比较多,我们将用 日期类型一整节的篇幅来详细介绍。

5. 新建数据表

使用CREATE TABLE指令可以在中新建数据表。

它的基础语法如下:

CREATE TABLE [table_name](
  [col1] [datatype1],
  [col2] [datatype2],
  [col3] [datatype3],
  ....);

CREATE TABLE 指令是 中颇为复杂的指令,上面只给出了基础语法,在后面章节我们会逐渐介绍更为复杂的语法。上面的语法中col表示字段名,如usernamedatatype表示数据类型,如int(10),考虑到会有多个字段和数据类型,因此数字后缀 1,2。

: 一张表可以有多个字段,但每个字段只能有数据类型。

请书写 语句,新建imooc_user数据表,表分别有usernameage这三个字段。

分析

imooc_user 有三个字段,其中 username 代表,一般情况下,都使用字符串表示,且每个人的长短不一,为可变短文本,所以使用数据类型 varchar。且名字都不会太长(俄罗斯人除外?),长度 20 即可;age 代表年龄,是典型的整数类型,即 int; 代表分数,是典型的浮点数类型,即 float。

语句

整理可得语句如下:

CREATE TABLE imooc_user(
  username varchar(),
  age int,
   float);

执行成功后,可得 imooc_user 表的信息:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES  |     | <null>  |       |
| age      | int(11)     | YES  |     | <null>  |       |
|     | float       | YES  |     | <null>  |       |
+----------+-------------+------+-----+---------+-------+

请书写 语句,新建article数据表,表分别有idtitlecontentrankprice五个字段。

分析:

article 表共 5 个字段,其中 id 字段作为唯一标识,采用整型来表示;title 是,为可变的短文本,即 varchar 类型,一般规定在 50 字符以内;content 表示,是可变的长文本,用 text 类型来容纳; rank 表示排名,使用 int 类型;price 代表价格,价格精确到分,使用 decimal 表示,小数位数为 2 位。

语句

整理可得如下语句:

CREATE TABLE article(
  id int,
  title varchar(),
  content text,
  `rank` int,
  price decimal(,));

执行语句,创建成功后,article 表的信息如下:

+---------+---------------+------+-----+---------+-------+
| Field   | Type          | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| id      | int(11)       | YES  |     | <null>  |       |
| title   | varchar(50)   | YES  |     | <null>  |       |
| content | text          | YES  |     | <null>  |       |
| rank    | int(11)       | YES  |     | <null>  |       |
| price   | decimal(10,2) | YES  |     | <null>  |       |
+---------+---------------+------+-----+---------+-------+

注意: 在一些中,如 把 rank 当作了关键字,因此需要转义符号 `` 才能新建成功。

6. 小结

数据类型其实是颇为繁杂,一些 RDBMS 还有特定的数据类型,我们推荐你熟记上面所提到的三大常用数据类型,而其它的类型在需要的时候查阅即可。

创建数据表是学习 的基本功,请一定多多练习。


联系我
置顶