MySQL创建表格、增删改列、起别名,MySQL表格的操作之增删改大全

1、创建表格

方法一:自建

创建表格语法如下:

CREATE TABLE 表名(字段1,字段2,....);
字段语法规则:'字段名'+字段类型+约束条件
-- '字段名'+字段类型+约束条件
-- 如:
CREATE TABLE namelist
(
id int primary key ,-- 设置id为整型和主键
name varchar(20) not null,-- 可变字符串最大20字节,非空
sex char(1) default '女',-- 固定1字节,默认值为‘女’
);

推荐把表级约束(如主键的设置)放到最后写,增加可读性:

CREATE TABLE namelist
(
id int ,
name varchar(20) not null default '张三',
sex char(1),
primary key(id,name)-- 主键设置放到了最后
);

常见创建表时加上if not exists: 表示检测要创建的表是否已存在,如果不存在就继续创建

CREATE TABLE IF NOT EXISTS namelist(age varchar(20));
数据库的数据类型和字段属性:

字段类型

字段含义

字段属性

tinyint

十分小的数据

1个字节

smallint

较小的数据

2个字节

mediumint

中等大小的数据类型

3个字节

int

标准的整数

4个字节

big

较大的数据

8个字节

float

浮点数

4个字节

double

浮点数

8个字节

decimal

字符串形式的浮点数(常用于金融计算)

8个字节

char

固定大小的字符串

0~255

varchar

可变字符串

0~65535

tinytext

微型文本

2^16-1

text

文本串(保存长文本)

2^16-1

date

日期格式

2023-2-6

time

时间格式

21:40:23

datetime

常用的时间格式

2023-2-6 21:40:23

timestamp

时间戳

1970.1.1至今的毫秒数

year

年份

2023

Null

没有值,null参与的运算结果也为null

约束条件的种类

分类

约束

含义

not null

非空,用于保证该字段的值不能为空;如姓名、学号等

default

默认,用于保证该字段有默认值;比如性别

zerofill

表示若数值不满设置位数,则前面用"0"填充,例0001

auto_increment

表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增

primary key

主键,用于保证该字段的值具有唯一性,并且非空;比如学号、员工编号等

unique

唯一,用于保证该字段的值具有唯一性,可以为空;比如座位号

check

检查约束【mysql中不支持】;比如年龄、性别

foreign key

外键,用于限制两个表的关系;比如学生表的专业编号等

方法二:复制

只复制索引和表的结构

CREATE TABLE 新表 LIKE 旧表;

只复制数据,相当于将查询结果导出成一个表

CREATE TABLE 新表 SELECT * FROM 旧表;

完整复制:先复制表结构,再向新表插入数据,可以有选择的插入

CREATE TABLE 新表 LIKE 旧表;
INSERT INTO 新表 SELECT * FROM 旧表;

2、增删改列

对于已经创建好的表格,增加新列使用ALTER-ADD语句:

ALTER TABLE 表名 ADD(字段1,字段2,....);
-- 如alter table student add(sex char(1),age tinyint);#添加信息目录

删除列使用ALTER-DROP语句:

ALTER TABLE 表名 DROP column 字段名;

对于已经创建好的列,整列重新修订(重写列)使用ALTER-CHANGE语句,此语句必须带有新字段名称、字段类型:

ALTER TABLE 表名 CHANGE 旧列名 字段名称 字段类型 [完整性约束条件];
-- 如alter table student change id s_id int;#修改信息

同时修改数据类型、非表级的列级约束使用ALTER-MODIFY语句

ALTER TABLE 表名 MODIFY COLUMN 列名 数据类型;
-- 如alter table qq modify xb char(1) default 'c';

修改列名使用ALTER-RENAME COLUMN语句

ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

修改主键使用ALTER-ADD/DROP

ALTER TABLE 表名 ADD primary key(字段);  -- 修改某列为主键
ALTER TABLE 表名 DROP primary key(字段); -- 删除表主键

修改唯一约束

ALTER TABLE 表名 ADD unique key(字段);  -- 添加唯一约束
ALTER TABLE 表名 DROP index 约束索引; -- 删除唯一约束
-- 约束索引使用“show index from 表名“查看

修改默认值可以使用ALTER-ALTER语句:

ALTER TABLE 表名 ALTER COLUMN 字段名 DROP default; -- (若本身存在默认值,则先删除)
ALTER TABLE 表名 ALTER COLUMN 字段名 SET default 默认值;-- (若本身不存在则可以直接设定)
-- 注:以上语句中除重命名外,COLUMN在MySQL中可以省略

3、为表起别名

表名 AS 别名;
-- 表名:数据中存储的数据表的名称。
-- 别名:查询时指定的表的新名称,不能与数据库中的其他表的名称冲突。
-- AS:关键字为可选参数。
-- 例:SELECT stu.name,stu.height FROM tb_students_info AS stu;

在为列起别名时也遵循相同规则

4、删除表

方法一:drop

DROP TABLE 表名;

直接删除表所有信息,无法找回数据

方法二:truncate

TRUNCATE TABLE 表名;

删除表数据,不删除表的结构,删除后将重建索引(新插入数据后id从0开始记起)。

drop、truncate都是DDL语句(数据定义语言),执行后会自动提交,不记录MySQL日志,不能回滚。

方法三:delete

DELETE FROM 表名 WHERE 条件;

删除表中的数据,不删除表结构,可以与where连用,可以删除指定的行。

delete语句是数据库操作语言(DML),delete不会删除索引 (新插入的数据将在删除数据的索引后继续增加),会记录MySQL日志,能回滚。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值