数据库的概念:一个存放数据的仓库
分类:关系型数据库和非关系型数据库
关系型数据库:mysql,sqlserver,oracle,db2
非关系型数据库:memcache,redis,hbase

二、学习数据库(database)的目的

(1)、需要有持久性的数据库,用于存储数据
(2)、方便查询数据
(3)、针对数据进行权限控制
SQL:Structured Query Language 结构化查询语言

SQL分类:
DDL数据库定义语言用于建库删表
DML数据库操作语言用于新增修改删除
DQL数据库查询语言用于查询
DCL数据库控制语言

1、创建数据库
  1. create database [ifnot exist]数据库名称[character set’字符集的名称’];

    2、修改数据库
  2. alter database 数据库的名称 character set’新的编码集’;

    3、删除数据库
  3. drop database 数据库的名称;

  4. 表名的命名规则:

(1)、表名 由字母,数字,下划线,$ 符号组成
(2)、下划线,数字不能开头
(3)、表的表名不能是关键字

2、修改表
  1. alter table 原表名 rename to 新表名;
  2. ALTER TABLE tea_info RENAME TO teacher_info;
  3. 2)、加字段

语法:
alter table 表的表名 add [column] 列的列名 数据类型 [约束];
举例:
alter table student_info add create_time datetime;


(3)、修改字段
语法:
alter table 表的表名 change [column] 旧列名 新的列名 数据类型 [约束];
举例:
alter table student_info change create_time modify_time datetime;
(4)、删除字段
语法:
alter table 表的表名 drop [column] 列的列名;
举例:
alter table student_info drop modify_time;
11.30Java学习总结 - 图1
11.30Java学习总结 - 图211.30Java学习总结 - 图3
E-R实体图
作用:为建表提供数据,矩形代表实体,椭圆代表属性
主键和外键约束
约束:constraint
主键列的特点:值不能更改,一个表只有一个主键列

2、用法

创建主键列的第1种方式:
CREATE TABLE stu_info( id bigint primary key, stu_no varchar(20), stu_name varchar(20) );
表已经存在,给表添加主键列
CREATE TABLE teacher_info( teacher_name VARCHAR(20));//语法:alter table 表的表名 add 主键列 数据类型 primary key;//例如:ALTER TABLE teacher_info ADD id VARCHAR(36) PRIMARY KEY;
表已经存在,而且主键列也存在
CREATE TABLE teacher_info( id VARCHAR(36), teacher_name VARCHAR(20));//语法alter table 表的表名 add constraint 约束的名称 primary key(主键列);//例如ALTER TABLE teacher_info ADD CONSTRAINT pk_id PRIMARY KEY(id);

1、添加外键约束

创建时添加

  1. foreign key(外键列) references 主表的名称(主键列)[on delete cascade on update cascade]
  2. );

级联
[on delete cascade on update cascade] 如果不加!
在删除主表时,MYSQL会自动检测该主键是否有被其他表引用过,如果有引用,不能删除!

如果加[on delete cascade on update cascade],删除/修改主表时,同时删除/修改所有的从表相关数据
第2种方式
已经存在的表,添加外键约束

  1. alter table 表的表名 add constraint 外键的名称 foreign key(外键列) references 主表(主键);
  2. ALTER TABLE teacher_info

ADD CONSTRAINT fk_dept_id FOREIGN KEY (fk_dept_id) REFERENCES dept_info (id);
当在已经建立好的表加外键约束,需要在已经建好的表中先添加一个列,作为外键约束列所在位置。