关系型数据库是一种结构化数据库。关系型数据库(RDBMS)术语:

数据库:数据库是表的集合,带有相关的数据

表:一个表是一个数据的矩阵

列:也叫字段,一个列(数据元素)包含同一类型的数据

行:一行(=记录)是一组相关的数据

冗余:存储数据两次,冗余能使系统更快

主键:主键是唯一的。在一个表中一个key不能产生两次。主键能够确认唯一的一条记录

外键:外键是两个表间的连接pin。外键用于与另一张表的关联,用于保持数据的一致性

复合键:复合键(组合键)是由多列组成的一个key。(当一个列不能唯一地表示一行时)

索引:数据库中的索引就类似于一本书中的索引

引用完整性:引用完整性确保一个外键值总是指向一个已经存在的行

主键,外键,索引的区别:

查看数据库

show databases;

创建数据库

create database test;

删除数据库

drop database test;

使用数据库

show tables;

创建表:

单字段主键:

create table department( depid int primary key, depname varchar(20) not null, deploc varchar(10));create table department( depid int, depname varchar(20) not null, deploc varchar(10) primary key(depid));多字段联合主键:

create table department( depid int, depname varchar(20) not null, deploc varchar(10) primary key(depid, depname));

create table employee( empid int primary key auto_increment, empname varchar(20) not null unique, gender varchar(10) default '男', salary float(8,2), birthday datetime, depid int, constraint fk_emp_dep foreign key(depid) references department(depid));

drop table;

查看表结构

desc department;

修改数据表:

修改数据表名字

alter table department rename dept;

修改数据表中字段属性

alter table department modify deploc varchar(20);

alter table department change deploc location varchar(30);

增加字段

alter table department add contact varchar(11) not null unique;

增加字段于表首列

alter table department add column1 int(11) first;

增加字段在某一列后面

alter table department add column2 char(5) after deploc;

删除字段

alter table department drop column2;

修改字段到某一列后面alter table department modify column int(11) after depname;

更改存储引擎

alter table department engine=MyISAM;

删除外键约束

alter table employee drop foreign key fk_emp_dep;

导入数据

load data local infile "dept.csv" into table department fields terminated by ',' lines terminated by '\r\n' ignore 1 lines;

导出数据

select * from department into outfile ' ./dept.txt' fields terminated by "," optionally enclosed by '"' ;

当然,用Navicat,一切都很方便

其他操作:

select, insert, delete, update, where, in, not in, between and, is null, is not null, and, or, distinct, order by, group by, having, with rollup, limit, case when, union, union all...

字符匹配通配符:

百分号通配符'%',匹配任意长度的字符,甚至包括零字符

下划线通配符'_',只匹配任意单个的字符

inner join, left join, right join, full join的区别:

1:inner join

SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name

2:Full outer join

SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name

4:union and union all

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。

(1)SELECT name FROM TableA UNION SELECT name FROM TableB

选取不同值