目录
二:修改表使用 ALTER TABLE 语句追加, 修改, 或删除列的语法
一:建表
CREATE TABLE IF NOT EXISTS runoob_tbl(
runoob_id INT UNSIGNED AUTO_INCREMENT,
runoob_title VARCHAR(100) NOT NULL,
runoob_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( runoob_id )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据表时如果输入该字段的数据为NULL ,就会报错。
UNSIGNED不重复
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
UNSIGNED AUTO_INCREMENT不能与not null一起使用
当字段值是固定的时比如男女可以用枚举enum;
sex enum(‘0’,‘1,)
注意:int可以转成varchar,反过来不可以。
字段类别是固定的可以使用数字来节约空间。例如男女,可以定义为1,0。
使用枚举类型使用enum直接指定可以使用什么值。
创建一个学生表 有id,name,age,sex字段把id字段设为主键(类型为varchar时需要后面加数据长度,int不用加)
create table if not exists students(
id int unsigned auto_increment,
name varchar(255),
age int,
sex enum('0','1'),
primary key(id))engine =innodb default charset=utf8;
注意:为了写方便我用了其他软件来连接数据库,可视化更好看一些软件是navicat。
二:修改表使用 ALTER TABLE 语句追加, 修改, 或删除列的语法
1:向表中添加字段
ALTER TABLE tablename
ADD (column datatype [DEFAULT expr]
[, column datatype]...);
注意:添加字段可以是一个也可以是多个后面加数据类型和限制
向students中加入clazz字段
alter table students add(clazz varchar(255));
2:修改字段
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);
modify只能修改表中已有的字段类型,不能修改字段名。修改表中没有的字段会出错
修改表students中clazz字段数据类型为int型
alter table students modify clazz int;
3:删除字段
ALTER TABLE table
DROP (column);
删除students表中clazz字段
alter table students drop clazz;
4:修改字段名
CHANGE (columnold columnnew datatype [DEFAULT expr]
-- [, columnold columnnew datatype]...);
修改列的名称: alter table change [column] old_col_name column_definition;
修改students中id的字段名为stu_id
alter table students change id stu_id int;
5:修改表的名称
rename table 表名 to 新表名;
将students表名修改为student
rename table students to student;
6:修改字符集
修改表的字符集
alter table salary convert to character set utf8;