数据库学习总结(一)

数据库的重要性

前言:
作为从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')

外键总结:

  1. 两种方式为物理外键,数据库级别的外键不建议使用(避免数据库过多删除等很麻烦)
  2. 想使用外键的时候引用其它的表的时候用程序实现,避免用物理连接

下次再学习进行补充
第二篇:
数据库总结(二)

发布了52 篇原创文章 · 获赞 10 · 访问量 1513

猜你喜欢

转载自blog.csdn.net/jiohfgj/article/details/104369076