sql基本语法
某些数据库可能要求关键字大写,这里我就忽略了,若运行报语法错误时可改为大写,
注意(table名称不可以是关键字)否则会报错
创建,删除,查database
-- 创建(default charset utf8告诉数据库支持中文)
create database database_name default charset utf8;
-- 删除
drop database database_name
-- 查
show tables;
创建,删除,清空tabel
-- 创建 engine=innodb default charset=utf8(引擎设置为innodb 支持中文)
create table table_name (
id int,
name varchar(32), -- 可变长,最大长度32
phone char(11), -- 固定长度11,长度小于11时填充‘ ’空字符
momey decimal(5,2), -- 以字符串形式保存 取值范围是 -999.99 到 999.99
details text,
create_at datetime -- 2021-05-06 17:14:22
) engine=innodb default charset=utf8
-- 删除
drop table table_name
-- 清空
delete from table_name -- 自增Id会保留
truncate table table_name -- 自增Id不保留
增删改查
-- 增
-- 一次新增一行
insert into table_name values(value1,value2,...)
insert into table_name (column_name,...) values(value1,...)
insert into table_name set column_name=value1 ...
-- 一次新增多行
insert into table_name (column_name,...) values(value1,...),(value1,...)
-- 删
delete from table_name where id=1
-- 改
update table_name set id=2 where id=1
-- 查
select * from table_name
主键
-- not null非空 auto_increment自增 primary key主键
create table table_name (
id int not null auto_increment primary key,
name varchar(32) -- 可变长,最大长度32
) engine=innodb default charset=utf8
外键
create table table1(
id int not null auto_increment primary key,
name varchar(32),
t2_id int,
-- t2_id作为外键,其关联约束为table2的id,外键名称为fk_name
constraint fk_name foreign key(t2_id) references table2(id)
) engine=innodb default charset=utf8
create table table2(
id int not null auto_increment primary key
) engine=innodb default charset=utf8
唯一索引
作用:单单使用索引,可以提供查询速度,唯一索引通过变种使用,还可以衍生出一对一等等关系
create table table1(
id int not null auto_increment primary key,
sid int,
constraint uq_name unique(sid)
-- unique(sid,...)可设置多个字段,组成组合约束
)