在关系型数据库中,主键一般交给数据库自己维护(主键自增):
|-- MySQL auto_increment
|-- sql server identity
|-- oracle 序列(sequence)
create table t_hero (
id int primary key auto_increment,
username varchar(255) unique not null,
age int check(age >= 18),
gender char(5) check( gender in ("男", "女")),
tel char(20) default '110' )
增加(insert):
insert into t_name[(字段1 ...)] values(v1 ....);
insert into t_hero(id, username, gender, age, tel) values(null, "张波涛", "男", 20, default);
insert into t_hero values(null, "张波涛", 20, "男", default);
insert into t_hero(username, gender, age) values("陈家成", "哈哈", 40);
更新(update):将表中原有数据修改为我们需要的数据
update t_name set 字段1 = 新值, 字段2 = 新值 ... where 条件
update t_hero set age = 18, gender = "女" where id = 7;
删除(delete):
delete from tablename where 条件
delete from t_hero where id =11;
truncate 语句(慎用)
该语句也是用来删除表,是无法恢复的
select
select * from 表名;
select id, username, age, gender, tel from t_hero;
select username from t_hero;
表的修改:
表结构的修改:alter table
|-- 增加新的字段
ALTER TABLE 表名 ADD 列名 列类型 约束条件;
alter table t_hero add address varchar(255);
|-- 修改字段的类型
ALTER TABLE 表名 MODIFY 列名 列类型;
alter table t_hero modify id bigint;
|-- 修改字段名称
ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
alter table t_hero change id hero_id int;
|-- 修改表名称
ALTER TABLE 表名 RENAME 新表名;
alter table t_hero rename hero;
-- 第二种写法
rename table hero to t_hero;
表的复制:
|-- create table 新表名 like 源表
create table xiyou like t_hero;|-- create table 新表名 select * from 源表
create table sanguo select * from xiyou;