表语句

结构层面

创建和查看表

  • 创建表
create table 表名(字段名1 类型 约束条件,字段名2 类型 约束条件);


not null 非空 default 默认值 comment 注释 auto_increment 自增
如果字段名、表名、数据库名跟关键字一样如order,可以用``跟关键字区分开,`order`
键的设置可以放到最后,下面第2张图就是这样。

  • 查看表的结构
desc 表名;


在Navicat中

  • 查看创建表的语句
show create table 表名;

修改和删除表

  • 修改表名
alter table 旧表名 rename as 新表名;

  • 添加表的字段
alter table 表名 add 字段名 类型 约束条件;

  • 修改表的字段的约束条件
alter table 表名 modify 字段名 约束条件;

也可以用change但要符合change的格式

  • 修改表的字段名
alter table 表名 change 旧字段名 新字段名 (类型);

change新字段名可以和旧字段名相同

  • 在已创建的表中添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键所在字段名) REFERENCES 被引用的表 (被引用的字段名);


  • 删除外键
ALTER TABLE 表名 drop CONSTRAINT 外键名;


在数据库创建外键属于物理外键,当主表A有引用外键当主键的表B的数据id_b=1时,B不能被删除和修改id_b对应的id=1为其他值
更推荐在程序中实现外键的逻辑。

  • 删除表的字段
alter table 表名 drop 字段名;

  • 删除表
drop table 表名;


empty set表示没有内容,这里表示数据库里一张表都没有。

数据层面

查询表的数据

  • 查询表中所有的信息
select * from 表名;

  • 查询表中指定字段的信息
select 字段名 from 表名;
# 可以在字段名后加as 别名,as可以省略

添加表的数据

  • 添加单行数据
INSERT INTO 表名 (字段1,字段2,...) VALUES(数据1, 数据2,...);
# 字段个数任选,不写默认是全部字段,values后面的数据要跟字段一一对应。自增的主键数据也不能省略。如果是自选字段,可以为空的字段和自增主键的数据可以省略


因为除了id都是varchar都是数据中加''


顺序不能打乱,要按照表结构的字段顺序填写数据

  • 添加多行数据
INSERT INTO 表名 (字段1,字段2,...) VALUES(数据1, 数据2,...),(数据3, 数据4,...);

修改表的数据

update 表名 set 字段名=新数据 where 条件;
# 不加where就默认把所有数据都改掉


多个字段的修改

删除表的数据

delete from 表名 where 条件;
# 如果不加where会删掉整张表中的数据


delete清空表数据,但不会影响自增。

truncate也能清空数据

truncate table 表名;

truncate清空表数据,自增列会归零

SQL语句分类

posted @ 2022-04-12 14:10  ben10044  阅读(75)  评论(0)    收藏  举报