1 数据库相关概念
1.1数据库概述
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及其查询操作。
1.2数据库管理系统(DataBase Management System,DBMS)
一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
1.3常见的数据库管理系统
Mysql 免费的,跨平台的:开源免费的数据库,小型的数据库,已经被Oracle收购了。
Oracle 甲骨文,java写的:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购Mysql。
DB2 IBM的,java写的:IBM公司的数据库产品,收费的。常应用在银行系统中。
SQL Server 微软的:MicroSoft 公司收费的中型数据库。C#、.net等语言常用
Access office 里面自带的:
SQLite android 里面的数据库:嵌入式的小型数据库,应用在手机端。
1.4基本概念
DDL(data definition language)数据库定义语言:主要是用在定义或改变表得结构,数据类型,表之间的链接和约束等初始化工作上,如create、alter、drop等。
DML(data manipulation language)数据操纵语言:主要用来对数据库的数据进行增删改查操作,如select、update、insert、delect等。
DCL(data control language)数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,如grant、deny、revoke等。
2 基本使用
2.1DDL
创建数据库:
create database <数据库名>;
删除数据库:
drop database <数据库名>;
定义模式:
create schema<模式名>authorization<用户名>;
删除模式:
drop schema<模式名><cascade|restrict>;
定义基本表:
1、创建学生表“student"
create table student( sno char(9) PRIMARY KEY, /*列级完整性约束条件,sno是主码*/ sname CHAR(20) UNIQUE, /*sname取唯一值*/ ssex CHAR(2), sage SMALLINT, sdept CHAR(20) );
创建完成之后可以使用desc <表名>查看表整体架构
2、建立课程表”course"
create table course( cno CHAR(4) PRIMARY KEY, /*列级完整性约束条件,cno是主码*/ cname CHAR(40) NOT NULL, /*列级完整性约束条件,cname不能取空值*/ cpno CHAR(4), /*cpno的含义是先修课*/ credit SMALLINT, FOREIGN KEY(cpno)REFERENCES course(cno) /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/ );
3、建立学生选课表“sc"
create table sc( sno CHAR(9), cno CHAR(4), grade SMALLINT, PRIMARY KEY (sno,cno), /*主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY(sno) REFERENCES student(sno), /*表级完整性约束条件,sno是外码,被参照表是student*/ FOREIGN key(cno) REFERENCES course(cno) /*表级完整性约束条件,cno是外码,被参照表是course*/ );
修改基本表:
1、向"student"表增加”入学时间“l列,其数据类型为日期类型
alter table student add s_entrance TIMESTAMP;
2、删除1中新加的列”s_entrance"
alter table student drop COLUMN s_entrance;
3、修改"student"中的列名“s_entrance"为”s_time"
alter table student change s_entrance s_time TIMESTAMP;
4、修改“student"中列”sage"的属性改为int
alter table student MODIFY sage INT;
5、修改表“student"中字段”sage“为默认值26
alter table student alter sage set DEFAULT 26;
6、删除表”student"中字段“sage”的默认字段
alter table student alter sage drop DEFAULT;
7、删除表
drop table <表名> [RESTRICT|CASCADE];
restrict:该表的删除是有条件的。想要删除的基本表不能被其他表的约束所引用(如check,foreign key等约束),不能有视图,不能有触发器(trigger),不能有存储过程或函数等。
cascade:该表的删除没有限制条件,在删除基本表的同时,相关的依赖对象,例如视图,都将被一起删除。