mysql表操作

Posted _小溢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表操作相关的知识,希望对你有一定的参考价值。

 

1.创建表

1.1通过Navicat for mysql界面操作

(1)创建出来自己使用的库以后,双击库,然后右键选择新建表

(2)名:数据表中的字段名;

  类型:类型有很多种。varchar表示的就是字符串,可变程度的,如果指定长度为20,实际只用了2个字节,则只占两个字节。  char固定长度字符,如果指定长度为2,实际只用了1个字节,那也占两个字节。

  长度:类型选择int等数字时不用填写长度,填了也是没有用

  小数点:

  允许空值:可以是空值则勾选

  最后还有个钥匙:叫做主键,主键名是不能重复的,点击下后有个小钥匙。

  添加栏位:点击后添加下一个字段。

  填好后点击保存按钮,提示你输入一个名字,这个名字就是这张表的名字。我起名为user_info.

(3)双击刚创建好的user_info表内容为

 

 

(3)之后便可以在表中输入内容

1.2在Navicat For MySQL中通过命令创建表

 (1)创建一张表,名字为info,创建3个字段,创建每个字段之间要用,分隔。

  id:字段名 int:数据类型 not null:不能数值为空 auto_increment:设置该字段为自增属性,之后该字段没插入一个值值都会递增,不管删除了还是怎么样,在插入都会是最后一次值的+1值。一般创建的第一个字段都为id,表为主键,都会设置为递增。PRIMARY key(主键):表示点亮了钥匙,值不能重复,表示将这个字段设置为主键。说明:auto_increment这个递增属性,一般只结合和主键PRIMARY key和索引使用。id此时就是递增主键。

  name:字段名 VARCHAR(20):数据类型为字符串,最长为20。not null:值不能为空。

  sex:字段名 CHAR(1):数据类型为固定长度字符,固定长度为1,值可以为空。

create table info(
    id int not null auto_increment PRIMARY key,
    name VARCHAR(20) not null,
    sex CHAR(1) NULL       
)

2.查表

2.1查询表信息

select * from user_info1; -- 查看表所有数据

2.2查询表结构

DESC user_info1; -- 查看表结构

2.3查询表创建信息

SHOW CREATE table user_info1; -- 查看表创建信息

2.4注释

(1)使用-- 空格 内容。进行注释

(2)使用# 进行注释

 3.删除表

drop table user_info;    -- 删除user_info表

4.在表中添加一个字段

ALTER table user_info1 add age int not null;    -- 在user_info1表中添加一个字段age,int类型,不能为空值。默认值为0

5.删除表中的一个字段

alter table user_info1 drop age; -- 删除user_info1表中的age字段

6.修改表中的一个字段的属性

alter table user_info1 modify name char(10) null; -- 修改user_info1表中的name字段属性为char类型10个固定长度的可为空值的属性。modify只能修改属性

7.修改表中的一个字段的名字与属性

alter table user_info1 CHANGE name names VARCHAR(20) not null; -- 修改user_info1表中的name字段的名字为names,并且修改其属性为VARCHAR(20)、不能为空值。CHANGE可以修改字段的名字和属性
alter table user_info3 CHANGE name names VARCHAR(20) DEFAULT"haha" not null; -- 修改字段名和属性的同时还能未改字段添加默认值,这里添加默认值为haha

 8.通过命令向表中添加主键,如下添加了一个联合组件id与name,则一个id和name确定后,不能在出现id和name都相同的

alter table user_info3 add PRIMARY key(ID, name) -- 添加主键。()括号中写主键名称,括号中写两个则表示联合组件(联合组件不能重复)

9.通过命令删除表的主键

alter table user_info3 drop PRIMARY key -- 删除主键,删除user_info3表中的主键

10.设置表中字段的默认值

alter table user_info3 alter sex set default\'\'; -- 设置user_info3表中的sex字段默认值为啥

 

 12.删除表中字段的默认值

alter table user_info3 alter sex drop default; -- 删除表中sex字段的默认值

13修改表名

rename table user_info3 to user_user; -- 修改表名,由user_info3改为user_user

14复制表

create table user_user2 select * from user_user; -- 复制user_user表的表结构和数据到一个新的user_user2表中。注意:主键和递增/索引/触发器/外键这些不会被复制

create table user_info select * from user_info1 where id = 1; -- 复制user_info1表中的id为1的那条记录到user_info表中。

15复制表结构

create table user_info3 LIKE user_info;    -- 创建一个新的表user_info3,其表结构与user_info相同。 注意:只复制表结构,数据/触发器/外键都不会被复制。主键、自增、索引会被复制

create table user_info4 SELECT * FROM user_info where 1 != 1; -- 另外一种复制表的形式,创建一个表user_info4,从user_info中查询所有的内容,因为1永远不等于1,所以没有数据查询出来,所以只创建了一个空表,表结构与user_info一样。
注意:主键和递增/索引/触发器/外键这些不会被复制

 

以上是关于mysql表操作的主要内容,如果未能解决你的问题,请参考以下文章

sql Closure表操作SQL片段

Mysql Innodb 表碎片整理

sqlalchemy——单表操作

部分代码片段

MySQL表操作过程的基础代码解析

linux中怎么查看mysql数据库版本