第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

SQL Create 1

1. 定義

維基百科:SQL CREATE 指令負責數(shù)據(jù)庫對象的創(chuàng)建,數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)庫索引、函數(shù)等都可以使用CREATE 來創(chuàng)建。

慕課解釋:CREATE指令功能十分強大,是 SQL 中最為關(guān)鍵的指令之一,通過它你可以輕松的在數(shù)據(jù)庫中創(chuàng)建你所需要的對象,當然這也使 CREATE 的語法有些復雜,掌握 CREATE 是學好 SQL 的關(guān)鍵一步。

2. 前言

本小節(jié),我們將一起學習 SQL Create

Create 是一個較為復雜的指令,我們不會在一個小節(jié)中將它全盤托出,而是通過多個知識點將其串聯(lián)起來。在這個小節(jié)里面,我們會介紹新建數(shù)據(jù)庫新建數(shù)據(jù)表這兩個最常用的功能點,其中新建數(shù)據(jù)表的語法是比較復雜的,它不僅涉及字段數(shù)據(jù)類型,還涉及到了SQL約束方面的內(nèi)容。

考慮到篇幅問題,在本小節(jié)中我們會著重介紹字段數(shù)據(jù)類型的知識,而將SQL約束將放在下一節(jié)再詳細介紹。

3. 新建數(shù)據(jù)庫

使用CREATE DATABASE 可以在 RDBMS 中新建數(shù)據(jù)庫。

語法如下:

CREATE DATABASE [database_name];

其中[]database_name代表數(shù)據(jù)庫名稱。

3.1 例1 新建 imooc 數(shù)據(jù)庫

請書寫 SQL 語句,新建一個名為imooc的數(shù)據(jù)庫。

分析:

按照上面的語法格式,我們把占位符替換為imooc即可。

語句:

CREATE DATABASE imooc;

4. 數(shù)據(jù)類型

與創(chuàng)建數(shù)據(jù)庫比起來,創(chuàng)建數(shù)據(jù)表要復雜的多,我們需要為表中的每個字段明確地指明數(shù)據(jù)類型,數(shù)據(jù)表才可被創(chuàng)建,因此我們先來學習 SQL 中的數(shù)據(jù)類型。

數(shù)據(jù)類型規(guī)定了某字段只能容納和表示某種特定的數(shù)據(jù)類型。

常見的數(shù)據(jù)類型有三種,它們分別是:數(shù)值型字符型日期型。

4.1 數(shù)值型

數(shù)值類型就是我們在數(shù)學中常見的數(shù)字,它也被分為整數(shù)類型小數(shù)類型兩大類。整數(shù)類型默認有符號,即可以為負數(shù),如 -1 ,如需無符號,則需要unsigned關(guān)鍵字來約束,約束后不可表示負數(shù)。

整數(shù)類型有數(shù)據(jù)長度的限制,如果在數(shù)據(jù)插入時超出其整型范圍,數(shù)據(jù)庫會報異常并插入失敗。如在64機上,int 類型大小為32位,即4字節(jié),如果插入的數(shù)字大小超過了2^32,插入便會失敗,此時你需要使用容量更大整數(shù)類型,如 bigint,它的大小是 64 位。

整數(shù)類型可以接受一個參數(shù),我們通常把這個參數(shù)稱作長度,不過它并不是整數(shù)真正的長度,而是它的最大顯示寬度。

小數(shù)類型可以理解為兩部分:整數(shù)部分 + 小數(shù)部分。因此小數(shù)類型在指定的時候可以傳入兩個參數(shù),第一個參數(shù)表示整體的長度,第二個參數(shù)則代表小數(shù)部分的長度。

數(shù)值型常見類型如下表所示:

數(shù)據(jù)類型 最大容量(字節(jié)) 描述
tinyint(size) 1 極小整型
smallint(size) 2 小整型
mediumint(size) 3 中整型
int/integer(size) 4 整型,最為廣泛
bigint(size) 8 大整型
float(size,d) 4 單精度小數(shù)
double(size,d) 8 雙精度小數(shù)
decimal(size,d) 8 貨幣類型
numberic(size,d) 8 同decimal

說明: 表中數(shù)據(jù)類型一欄中的 size 表示 整體的長度,d 表示小數(shù)部分的長度。

4.2 字符型

字符類型則用來表示我們生活中常見的文本和字符,根據(jù)字符串的長度,我們可將其分為短文本長文本兩類。

常見的短文本類型有charvarchar兩種,其中char不可變長,而varchar可變長。長文本類型有textblob等,text用來保存長文本,而blob用來保存二進制流數(shù)據(jù)。

字符型常見類型如下表所示:

數(shù)據(jù)類型 可否變長 描述
char(size) 不可 固定長度短字符串
varchar(size) 不固定長度短字符串
text 長字符串,保存文章內(nèi)容
blob 二進制流,保存圖片,媒體信息

4.3 日期型

日期類型是三大類型中最復雜的一種類型,涉及的內(nèi)容也比較多,我們將用SQL 日期類型一整節(jié)的篇幅來詳細介紹。

5. 新建數(shù)據(jù)表

使用CREATE TABLE指令可以在數(shù)據(jù)庫中新建數(shù)據(jù)表。

它的基礎(chǔ)語法如下:

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

CREATE TABLE 指令是 SQL 中一個頗為復雜的指令,上面只給出了基礎(chǔ)語法,在后面章節(jié)我們會逐漸介紹更為復雜的語法。上面的語法中col表示字段名,如username。datatype表示數(shù)據(jù)類型,如int(10),考慮到會有多個字段和數(shù)據(jù)類型,因此添加數(shù)字后綴 1,2。

提示: 一張表可以有多個字段,但每個字段只能有一個數(shù)據(jù)類型。

5.1 例2 新建 imooc_user 表

請書寫 SQL 語句,新建imooc_user數(shù)據(jù)表,表分別有username,age,score這三個字段。

分析

imooc_user 有三個字段,其中 username 代表用戶名,一般情況下,用戶名都使用字符串表示,且每個人的用戶名長短不一,為可變短文本,所以使用數(shù)據(jù)類型 varchar。且名字都不會太長(俄羅斯人除外?),長度 20 即可;age 代表年齡,是典型的整數(shù)類型,即 int;score 代表分數(shù),是典型的浮點數(shù)類型,即 float。

語句

整理可得語句如下:

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

執(zhí)行成功后,可得 imooc_user 表的信息:

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

5.2 例3 新建 article 表

請書寫 SQL 語句,新建article數(shù)據(jù)表,表分別有idtitle,contentrank,price五個字段。

分析:

article 表共 5 個字段,其中 id 字段作為唯一標識,采用整型來表示;title 是文章標題,為可變的短文本,即 varchar 類型,一般標題規(guī)定在 50 字符以內(nèi);content 表示文章內(nèi)容,是可變的長文本,用 text 類型來容納; rank 表示文章排名,使用 int 類型;price 代表文章價格,價格精確到分,使用 decimal 表示,小數(shù)位數(shù)為 2 位。

語句

整理可得如下語句:

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

執(zhí)行語句,創(chuàng)建成功后,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>  |       |
+---------+---------------+------+-----+---------+-------+

注意: 在一些數(shù)據(jù)庫中,如 MySQL 把 rank 當作了關(guān)鍵字,因此需要加上轉(zhuǎn)義符號 `` 才能新建成功。

6. 小結(jié)

  • SQL 數(shù)據(jù)類型其實是頗為繁雜,一些 RDBMS 還有特定的數(shù)據(jù)類型,我們推薦你熟記上面所提到的三大常用數(shù)據(jù)類型,而其它的類型在需要的時候查閱即可。
  • 創(chuàng)建數(shù)據(jù)表是學習 SQL 的基本功,請一定多多練習。