1.SQL
SQL,它的全称叫Structured Query Language,结构化的查询语言。之所以出现这个东西,是为了统一/屏蔽不同数据库厂商生产的数据库产品之间的差异。
SQL定义了一系列标准和规范,数据库厂商也需要按照这个规范来,当然会有一些细小的差别,相比没有规范来说,要好很多
比如 项目后期由于某些原因,需要进行数据库更换,那么操作数据库的语句就都需要更改,而SQL出现,可以避免这个问题
2.DDL
2.1 概述
DDL : Data Definition Language 数据库定义语言
关键字有 create,drop,alter
2.2 DDL基础
数据库创建和删除
表创建和删除
2.2.1 更改表名
-- 更改表名
-- ALTER TABLE 表名 RENAME 新表名;
ALTER TABLE student RENAME t_student;
2.2.2 更改字段名
-- 更改字段名
-- ALTER TABLE 表名 CHANGE 列名 新列名 数据类型;
ALTER TABLE t_student CHANGE id no int;
2.2.3 添加字段
-- 添加字段
-- ALTER TABLE 表名 ADD 列名 数据类型;
ALTER TABLE t_student ADD 'name' VARCHAR(20);
-- 添加该列到指定列后面
-- ALTER TABLE 表名 ADD 列名 数据类型 AFTER 已有列名
ALTER TABLE t_student ADD sex char(2) AFTER name;
-- 把该列添加到首部
-- ALTER TABLE 表名 ADD 列名 数据类型 FIRST;
ALTER TABLE t_student ADD sex1 CHAR(2) FIRST;
2.2.4 删除字段
-- 删除字段
-- ALTER TABLE 表名 DROP 列名
ALTER TABLE t_student DROP sex1;
2.3 DDL增强
约束分类:
2.3.1 主键
我们的java类,对应的就是一张表,成员变量对应一个字段,一个类对象对应一条数据,那么对象都有一定的唯一性
比如判断对象是否相等,我们通常使用equals()方法和hashCode()方法,那么怎么在数据库中表示数据的唯一性呢?主键
主键通常用于唯一确定表中的一条记录,设置为主键的字段是不能为NULL并且不能重复的。
主键可以设置在一个字段上,也可以设置在多个字段上。(但大多数场景都是设置在一个字段上,这个字段通常是业务主键或者流水号)
-- 主键
-- 第一种,在创建表是添加
CREATE TABLE book(
id int PRIMARY KEY,
name VARCHAR(20)
-- 或者上面不写 PRIMARY KEY
-- PRIMARY KEY(id);
);
-- 第二种 在创建完表后添加
-- 语法 : alter table 表名 add primary key(列名,列名...);
CREATE TABLE books(
id int,
name VARCHAR(20)
);
ALTER TABLE books ADD PRIMARY KEY(id);
2.3.2 主键自增
如果主键的值让客户输入的话,很容易就重复了,比如888,666等数字大家都喜欢使用,导致一直输入不正确,非常不方便
所以又有了自增的概念,所谓自增,望文知意,就是自动增加,不用我们输入值
但是自增的列,