数据库:
-
关系型数据库
SQL Server 微软
MySQL Oracle
Oracle Oracle
DB2 IBM
SQL语句 -
非关系型数据库NoSQL
-
关键词
DBMS
DBS
DBA:数据库管理员
数据表 table
记录 行
字段 列
每个数据库会有自己的方言
1) DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
2) DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
3) DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等
4) DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
数据库的数据类型
java 数据库
字符串 varchar(50) 可变长度 nvarchar
char(50) 固定长度 nchar
数值 number(7,2) oracle xxxx.xx
int mysql
float
double
decimal
日期 date 年月日
time 时分秒
datetime 年月日时分秒
MySQL定义库基本语句
表结构约束
1.唯一 unique UK 值不能重复的,值可以为Null,可以多个值是null
create table tablename
(
colname1 varchar(20) primary key,
colname2 varchar(20) unique
);
2.非空 not null 该列值不能为空
create table tablename
(
colname1 varchar(20) primary key,
colname2 varchar(20) not null
);
3.主键 primary key PK 功能:是相当于唯一且非空 ,但是一个表只能设置一个主键的,但是这个主键不一定只有一列,可以由多列组成(复合主键)
create table tablename
(
-- 单列主键
colname1 varchar(20) primary key,
colname2 varchar(20),
colname3 varchar(20),
-- 创建多列主键
primary key (colname1,colname2)
);
4.外键 foreign key FK
create table tablename1
(
colname11 varchar(20) primary key,
colname12 varchar(20),
colname13 varchar(20),
);
create table tablename2
(
colname21 varchar(20) primary key,
colname22 varchar(20),
colname23 varchar(20),
colname11 varchar(20),
-- 创表时加外键,'fk_tablename1_tablename2'(外键名'fk_父表_子表')
constraint 'fk_tablename1_tablename2' foreign key colname11 references tablename1(colname11)
);
-- 创建表后添加外键
alter table tablename add constraint 'fk_tablename1_tablename2' foreign key colname11 references tablename1(colname11)
5.默认值 default (主键不能默认,因为它本身是不重复的且唯一)
create table tablename
(
colname1 varchar(20) primary key,
colname2 varchar(20) default '男'
-- 默认colname2 列为'男'
);
6.自动增长 auto_increment
create table tablename
(
colname1 varchar(20) primary key,
colname2 varchar(20) default '男'
-- 默认colname2 列为'男'
);
操作表语句
-
建表
create table 表名( 字段名 字段类型 约束, 字段名 字段类型 约束, 字段名 字段类型 约束 );
-
修改表名
alter table taboldname rename to newname;
-
修改表结构
3.1改列类型
alter table tabname modify colname coltype;
3.2改列名
alter table tabname change oldcolname newcolname coltype;
3.3添加列: 如果表里已经有数据,增加的这一列只能允许Null。如果表里无数据,增加的这一列可以为Null,可以Not Null。
-- (在第一列|在xxx列之后) alter table tabname add newcolname coltype first | after xxx; -- 或 alter table tablename add colname colstype 约束;
3.4删除列:列被删除,整个列上的数据都将清空。如果该列正被其他列引用,则无法删除。
alter table tabname drop (column) colname; -- column可选
3.5修改列的位置
alter table tabname modify colname coltype first|after xxx;
3.6修改列的数据类型:允许改小,但是可能会丢失数据。一般情况下改大。
alter table tablename alter column colname 数据类型;
-
表记录的插入,修改与删除
4.1插入数据
insert into tablename values(value1,value2,...,value5);
--括号里必须包含所有不允许为Null的列
insert into tablename(sno,sname,ssex,sage,sdept) values(value1,value2,...,value5);
insert into tablename(sno) values(value1);
4.2修改数据
update table
set 做修改
where 条件是否满足
4.3删除数据
delete
from tablename
where 条件是否满足
-
删除表
drop table table1,table2,table3