JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇)
创建表catgory 字段:分类主键,分类名称
分类主键:添加主键约束和自动增长
CREATE TABLE category(
-- 分类逐渐
cid INT PRIMARY KEY AUTO_INCREMENT,
-- 分类名称
cname VARCHAR(20)
);
数据库表中添加数据:insert into
格式一:
insert into 表名(列名1,列名2...) values(值1,值2...);
注意:
INSERT INTO category(cid,cname) VALUES(1,'冰箱')
格式二:如果主键是自动增长的,那么可以省略主键字段
insert into 表名(非主键字段) values(非主键字段的值);
INSERT INTO category(cname) VALUES('电视');
格式三:可以省略列名的书写,但值必须全部写出,包括主键
insert into 表名 values(全部的值);
INSERT INTO category VALUES(5,'洗衣机');
-- 主键如果是自动增长,可以使用null,主键会自动计算
INSERT INTO category VALUES(NULL,'空调');
格式四:批量插入数据
insert into 表名(列名1,列名2...) values(值1,值2...),...,(值1,值2...);
insert into 表名(非主键字段) values(非主键字段的值),...,(非主键字段的值);
insert into 表名 values(全部的值),...(全部的值);
INSERT INTO category VALUES(NULL,'缝纫机'),(NULL,'电风扇');
修改表中数据:update
格式:
update 表名 set 字段名=字段值,字段名2=字段值2...字段名n=字段值n[where 条件]
-- 把cname是电风扇的字段修改为吸尘器
UPDATE category SET cname='吸尘器' WHERE cname='电风扇'
-- 把cid为5的数据,cid修改为55,cname修改为半导体
UPDATE category SET cid=55,cname='半导体' WHERE cid=5
-- 把cname所有值修改为黑白电视机
UPDATE category SET cname='黑白电视机'
删除表中数据:delete from
格式:
delete from 表名 [where 条件];
逐行删除,但不重置主键自增,再添加数据,继续使用之前的主键truncate table 表名;
删除表中所有数据,会把表也删除,重新创建新表,会重置主键自增,再添加数据,主键重新开始-- 删除cid是55的数据
DELETE FROM category WHERE cid=55;
-- 删除表中所有数据
DELETE FROM category
INSERT INTO category VALUES(NULL,'衣服');
-- 删除表中所有数据
TRUNCATE TABLE category;
INSERT INTO category VALUES(NULL,'衣服');
java中集合泛型的作用:限制集合中元素的数据类型
数据库中约束的作用:限制某列数据
主键约束:限制某列数据,数据即不能为null,也不能重复
使用关键字:primary key
注意:
方式一:创建表时,在字段描述处,声明指定字段为主键
字段名 数据类型(长度) primary key,
-- 创建persons01表,字段:主键字段,名,姓,地址,城市
CREATE TABLE persons01(
-- 主键字段
pid INT PRIMARY KEY,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20),
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
-- 往表中添加数据
INSERT INTO persons01(pid,firstname) VALUES(1,'章');
-- INSERT INTO persons01(pid,firstname) VALUES(1,'王'); Duplicate entry '1' for key 'PRIMARY'
-- INSERT INTO persons01(pid,firstname) VALUES(null,'章'); Column 'pid' cannot be null
删除主键约束:使用修改表结构,删除列
格式:
alter table 表名 drop primary key;
-- 删除persons01表中主键
ALTER TABLE persons01 DROP PRIMARY KEY;
了解bug :删除主键约束之后,会保留非空约束
方式二:创建表时,在constraint约束区域,声明指定字段为主键
格式:[constraint 主键名] primary key(字段)
注意:
如果不给主键起名字,那么[constraint 主键名]可以省略。
CREATE TABLE persons02(
-- 主键字段
pid INT ,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20),
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10),
-- 在constraint约束区域,声明指定字段为主键
CONSTRAINT persons02_pk PRIMARY KEY(pid)
);
方式三:创建表之后,通过修改表结构,声明指定字段为主键
格式:
alter table 表名 add [constraint 主键名] primary key(字段);
CREATE TABLE persons03(
-- 主键字段
pid INT ,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20),
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
ALTER TABLE persons03 ADD PRIMARY KEY(pid);
联合主键:使用多个字段作为一个主键,多个字段同时重复,才算主键重复
CREATE TABLE persons05(
-- 主键字段
pid INT ,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20),
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
ALTER TABLE persons05 ADD PRIMARY KEY(lastname,firstname);
非空约束:约束某列的数据不能为空
使用关键字:not null
注意:可以给多个字段添加非空约束
格式一:创建表时,在字段描述处,声明指定字段非空
字段 数据类型(长度) not null
CREATE TABLE persons06(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
格式二:在创建表之后,使用修改表结构,修改指定字段的约束为非空约束
alter table 表名 modify 字段名 数据类型(长度) not null
ALTER TABLE persons06 MODIFY lastname VARCHAR(20) NOT NULL
删除非空约束:修改表结构,字段不写非空约束
ALTER TABLE persons06 MODIFY lastname VARCHAR(20)
唯一约束:约束某列数据不能重复
使用关键字:unique
注意:如果列中值是null,那么就失去了唯一约束的作用
方式一:创建表时,在字段描述处,声明唯一
格式: 字段名 数据类型(长度) unique
CREATE TABLE persons08(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50)UNIQUE,
-- 城市
city VARCHAR(10)
);
方式二:创建表时,在约束区域,声明唯一
格式: [constraint 唯一约束名] unique(字段)
CREATE TABLE persons09(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10),
CONSTRAINT persons09_unique UNIQUE(address)
);
方式三:创建表后,修改表结构,声明字段唯一
格式:alter table 表名 add [constraint 唯一约束名] unique(字段)
CREATE TABLE persons10(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
ALTER TABLE persons10 ADD UNIQUE(address);
删除唯一约束:修改表结构,删除列
注意:必须指明要删除的是哪个唯一约束
格式:alter table 表名 drop index 字段名/唯一约束名
ALTER TABLE persons10 DROP INDEX address
ALTER TABLE persons09 DROP INDEX persons09_unique
方式一:创建表时,添加默认约束
CREATE TABLE persons11(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10) DEFAULT '北京'
);
INSERT INTO persons11(lastname) VALUES('李')
CREATE TABLE persons12(
-- 主键字段
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 名
lastname VARCHAR(20),
-- 姓
firstname VARCHAR(20) NOT NULL,
-- 地址
address VARCHAR(50),
-- 城市
city VARCHAR(10)
);
ALTER TABLE persons12 MODIFY city VARCHAR(20) DEFAULT '上海';
INSERT INTO persons11(lastname) VALUES('李')
删除默认约束:
ALTER TABLE persons12 MODIFY city VARCHAR(20);