sql基本语法

248 阅读1分钟

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,...)可设置多个字段,组成组合约束
)