02 初始資料庫

2021-10-12 07:08:26 字數 3749 閱讀 8963

1、資料庫的建立:create database < 資料庫名稱 > ;

create database shop;
2、表的建立:create table < 表名 > ( < 列名 1> < 資料型別 > < 該列所需約束 > , < 列名 2> < 資料型別 > < 該列所需約束 > , < 列名 3> < 資料型別 > < 該列所需約束 > , < 列名 4> < 資料型別 > < 該列所需約束 > , . . . < 該錶的約束 1> , < 該錶的約束 2> ,……);3、

create table product

(product_id char(4) not null,

product_name varchar(100) not null,

product_type varchar(32) not null,

sale_price integer ,

purchase_price integer ,

regist_date date ,

primary key (product_id));

3、命名規則:

4、資料型別:

四種最基本的資料型別

用來指定儲存整數的列的資料型別(數字型),不能儲存小數。

用來儲存定長字串,當列中儲存的字串長度達不到最大長度的時候,使用半形空格進行補足,由於會浪費儲存空間,所以一般不使用。

用來儲存可變長度字串,定長字串在字元數未達到最大長度時會用半形空格補足,但可變長字串不同,即使字元數未達到最大長度,也不會用半形空格補足。

用來指定儲存日期(年月日)的列的資料型別(日期型)。

5、約束

約束是除了資料型別之外,對列中儲存的資料進行限制或者追加條件的功能。

not null是非空約束,即該列必須輸入資料。

primary key是主鍵約束,代表該列是唯一值,可以通過該列取出特定的行的資料。

6、刪除表:drop table < 表名 > ;

drop table product;
7、新增列:alter table < 表名 > add column < 列的定義 >;

alter table product add column product_name_pinyin varchar(100);
8、刪除列的 alter table 語句:alter table < 表名 > drop column < 列名 >;

alter table product drop column product_name_pinyin;
9、清除資料

truncate table table_name;
10、資料更新:update 《表名》 set 《列名》 = 《表示式》 [, 《列名2>=《表示式2>...]; where 《條件》; -- 可選,非常重要。 order by 子句; --可選 limit 子句; --可選

使用 update 時要注意新增 where 條件,否則將會將所有的行按照語句修改

-- 修改所有的註冊時間

update product

set regist_date = '2009-10-10';

-- 僅修改部分商品的單價

update product

set sale_price = sale_price * 10

where product_type = '廚房用具';

(1)使用 update 也可以將列更新為 null(該更新俗稱為null清空)。此時只需要將賦值表示式右邊的值直接寫為 null 即可。

-- 將商品編號為0008的資料(原子筆)的登記日期更新為null  

update product

set regist_date = null

where product_id = '0008';

(2)和 insert 語句一樣, update 語句也可以將 null 作為乙個值來使用。

**但是,只有未設定 not null 約束和主鍵約束的列才可以清空為null。**如果將設定了上述約束的列更新為 null,就會出錯,這點與insert 語句相同。

11、多行更新:update 語句的 set 子句支援同時將多個列作為更新物件。

-- 基礎寫法,一條update語句只更新一列

update product

set sale_price = sale_price * 10

where product_type = '廚房用具';

update product

set purchase_price = purchase_price / 2

where product_type = '廚房用具';

-- 合併後的寫法

update product

set sale_price = sale_price * 10,

purchase_price = purchase_price / 2

where product_type = '廚房用具';

作業:

(1)編寫一條 create table 語句,用來建立乙個包含表 1-a 中所列各項的表 addressbook (位址簿),並為 regist_no (註冊編號)列設定主鍵約束

表1-a 表 addressbook (位址簿)中的列

列名 : postal_code

資料型別 :定長字串型別(長度為 8)

約束 :不能為 null

錯誤:

alter table addressbook add column postal_code char(8) not null;
正確:

/*

[db2] 無法新增。

在db2中,如果要為新增的列設定not null約束,

需要像下面這樣指定預設值,或者刪除not null約束,

否則就無法新增新列。

*/-- [db2 修正版]

alter table addressbook add column postal_code char(8) not null default '0000-000';

(3)編寫 sql 語句來刪除 addressbook 表。

drop table addressbook
(4)編寫 sql 語句來恢復刪除掉的 addressbook 表。

無法恢復drop掉的表

初始資料庫

本質其實就是一款基於網路通訊的應用程式 那其實每個人都可以開發一款資料庫軟體 因為它僅僅就是乙個基於網路通訊的應用程式 也就意味著資料庫軟體其實有很多很多 關係型資料庫 mysql oracle db2 access sql server 非關係型資料庫 redis mongodb memcache...

資料庫 1 初始 資料庫

alpha版 一般只在開發公司內部使用,不對外公開,測試 自我檢查的版本 beta版 一般是開發完也測試完的版本,一般不會出現比較大的效能bug 一般我們不用,阿里 去哪兒會使用這個版本,有些新功能,內部有高手能調,也能評估新功能的效能 rc版 根據beta版測試之後收集到一些bug等在進行完善的乙...

資料庫筆記02

ps 本文章只是自己的筆記,不喜勿噴 若發現問題還請私信我,謝謝 這個其實是查詢不做修改,關鍵字distinct,distinct只能放在最前面 多個字段查詢的時候,含有distinct的字段的需要放在最前面 語法 select distinct 欄位名1,欄位2.from 表名 其可能可以實現多個...