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 表名 其可能可以實現多個...