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一样。
注意:主键和递增/索引/触发器/外键这些不会被复制