数据库的重要性
前言:
作为从SE到框架的新手,学习的过程中虽然在se用过jdbc连过sqllite,也在javaweb里面用过jdbc连过oracle,后面到SSM和Springboot与之mabits相连,见识了一对一一对多多对多之间的映射,发现新手起初学习过程多大多都会在数据库报错,然后再后来发现增删改查最基本的就是在写前端的js和后台Mabits的SQL语句,所以特此来复习并学习数据库之前遗忘和未学习到的知识
话不多说,干就完了
建库
create database Student;
建表
//简单的创建表
create table Student(
id int(10) primary key auto_increment,
name char(10) not null,
sex char(3)
);
显示表的结构
DESC Student;
查看表得定义语句
show create table Student;
查看数据库
show DATABASES; //少了S会报错
删库
drop DATABASE practice;
调用数据库
use children;
增删改表中字段
//增加表的字段
alter table 表名 add age int(11)
//修改表的字段(重命名,修改约束!)
//change和,modify区别第一个是重名字段名第二个是修改字段属性,和约束
alter table 表名 modify age VARCHAR(11)
alter table 表名 change age age1 int(11)
//删除表的字段
ALTER TABLE 表名 DROP age1
修改表名
//alter table 表名 新表名
//ALTER TABLE 表名 RENAME [TO|AS] 新表名
ALTER TABLE user10 RENAME TO user11;
删除表
DROP TABLE IF EXISTS 表名
外键(重点要理解*)
外键 作用保持多个表之间数据的一致性和完整性,但是外键必须是从表的唯一键
学生表
//外键 方式1创建表的时候就给约束
//比如一个学生表有Gradeid字段,一个年级表,所以Grade是外键,为了绑定学生的年级信息
create table user(
id int(10) auto_increment,
passowrd varchar(30),
gradeid int(10) not null comment '学生年级',
primary key('id'), //学生id主键
KEY 'FK_gradeid' ('gradeid'), //年级id外键声明
CONSTRAINT 'FK_gradeid' FOREIGN KEY('gradeid') REFERENCES 'grade'('gradeid') //增加约束
)ENGINE=INNODB Default charset=utf-8;
年级表
create table Grade(
gradeid int(10) auto_increment comment '年级id',
gradename char(11) comment '年级名称',
primary key('gradeid')
)ENGINE=INNODB Default charset=utf-8;
//关于数据库引擎INNODB 默认使用 MYISAM早年使用
INNODB支持事务,多表多用户操作,外键约束,表空间大约2倍
MYISAM小而快
上面这种外键方式较麻烦,可以利用alter在相加的时候再加
ALTER TABLE 'student'
ADD CONSTRAINT 'FK_gradeid' FOREIGN KEY('gradeid') REFERENCES 'grade'('gradeid')
外键总结:
- 两种方式为物理外键,数据库级别的外键不建议使用(避免数据库过多删除等很麻烦)
- 想使用外键的时候引用其它的表的时候用程序实现,避免用物理连接
下次再学习进行补充
第二篇:
数据库总结(二)