数据库的类型:纯文本数据库和关系型数据库。
纯文本数据库:纯文本数据库是只用空格符、制表符和换行符来分割信息的文本文件。适用于小型应用,对于大中型应用来说它存在诸多限制:①只能顺序访问,不能随机访问。②查找数据和数据关系或多用户同时访问进行写操作时非常困难。
关系数据库: 由于纯文本数据库存在诸多局限,所以人们在开始研究数据模型,设计各种类型的使用方便的数据库。在数据库的发展史上,最具有影响的数据库模型有:
层次模型、网状模型和关系模型。
其中关系模型是目前应用最广泛和最有发展前途的一种数据库模型,其数据结构简单,当前主流的数据库系统几乎都采用关系模型。
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)
)