數據庫的類型:純文本數據庫和關係型數據庫。
純文本數據庫:純文本數據庫是隻用空格符、製表符和換行符來分割信息的文本文件。適用於小型應用,對於大中型應用來說它存在諸多限制:①只能順序訪問,不能隨機訪問。②查找數據和數據關係或多用戶同時訪問進行寫操作時非常困難。
關係數據庫: 由於純文本數據庫存在諸多侷限,所以人們在開始研究數據模型,設計各種類型的使用方便的數據庫。在數據庫的發展史上,最具有影響的數據庫模型有:
層次模型、網狀模型和關係模型。
其中關係模型是目前應用最廣泛和最有發展前途的一種數據庫模型,其數據結構簡單,當前主流的數據庫系統幾乎都採用關係模型。
SQL:SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專爲數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。在使用它時,只需要發出“做什麼”的命令,“怎麼做”是不用使用者考慮的。
數據庫中幾種語言:DDL、DML、DCL
DDL:數據庫定義語言,定義數據庫中的數據對象
DML:數據操縱語言,操縱數據實現對數據庫的基本操作(增刪改查)
DCL:數據庫控制語言
DDL:數據庫定義語言,比如創建、修改或刪除數據庫對象,包括如下SQL語句:
create table:創建數據庫表
alter table:更改表結構、添加、刪除、修改列長度
drop table:刪除表
create index:在表上建立索引
drop index:刪除索引
DML:數據庫操縱語言,包括如下SQL語句:
insert:添加數據到數據庫中
update:修改數據庫中的數據
delete:刪除數據庫中的數據
select:選擇(查詢)數據
DCL:數據庫控制語言,包括如下SQL語句:
grant:授予訪問權限
revoke:撤銷訪問權限
commit:提交事務處理
rollback:事務處理回滾
等等
建庫:
創建數據庫:create database dbname
查看數據庫:show databases
顯示數據庫創建語句:show create database dbname
數據庫刪除語句:drop database dbname
建表:
表名和列名命名規則:
必須以字母開頭,不要使用漢字
必須在1-30個字符之間
必須只能包含A-Z,a-z,0-9,_,$和#
必須不能和用戶定義的其他對象重名
一、定義基本表
CREATE TABLE <表名>
(<列名> <數據類型>[ <列級完整性約束條件> ]
[,<列名> <數據類型>[ <列級完整性約束條件>] ] …
[,<表級完整性約束條件> ] );
如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級。
CREATE TABLE stuInfo /*-創建學員信息表-*/
(
stuName VARCHAR(20) NOT NULL , --姓名,非空(必填)
stuNo CHAR(6) NOT NULL UNIQUE, --學號,非空(必填)
stuAge INT NOT NULL, --年齡,INT類型默認爲4個字節
stuID NUMERIC(18,0), --身份證號 NUMERIC (18,0)代表18位數字,小數位數爲0
stuSeat SMALLINT IDENTITY (1,1), --座位號,自動編號 IDENTITY(起始值,遞增量)
stuAddress TEXT --住址,允許爲空,即可選輸入
)
建立“學生”表Student,學號是主碼,姓名取值唯一。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /* 列級完整性約束條件*/
Sname CHAR(20) UNIQUE, /* Sname取唯一值*/
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20),
Constraint ck_Age CHECK(Sage>0)
);
create table traninfo(
countid int,
tdate datetime,
tamount float,
primary key(countid,tdate),
foreign key(countid) references countinfo(countid)
)