回顾mysql命令(一)
1.创建数据库
创建数据库,以创建名为school的数据库为例
create database school;
查看数据库
show databases;
2.表的操作
1.创建表
创建表之前要确定,在哪一个数据库里创建表,要先调用这个数据库。
use school;
然后创建表,以创建student表为例
create table student(
id int, StuName varchar(32),
age int, phone varchar(11),
sdept varchar(32),
classId int);
查看所建的表
show tables;
查看表的结构
desc student;
查看表的基本信息
show create table student;
删除表
drop table 表名;
2.修改表
修改表名
alter table rename to/as new_tablename;
修改表字段的数据类型
alter table new_student modify column id varchar(11);
表的注释
1.在创建表时给表添加注释
create table student(
id int, StuName varchar(32),
age int, phone varchar(11),
sdept varchar(32),
classId int
)comment='我是表的注释';
2.在表已经创建好的情况下,添加或修改注释
alter table student comment '学生信息表';
3.查看表的注释
在生成的SQL语句中看
show create table student;
在元数据的表里面看
use information_schema;
select * from TABLES where TABLE_SCHEMA='school' and TABLE_NAME='student';
字段的注释
1,在创建表时给字段添加注释
create table student(
id int, StuName varchar(32) comment = '我是字段的注释',
age int, phone varchar(11) comment = '我是字段的注释',
sdept varchar(32) comment = '我是字段的注释',
classId int comment = '我是字段的注释'
)comment='我是表的注释';
2,表创建好后,给字段添加注释
alter table student modify column id varchar(20) comment '学生学号'; //也可同时改变字段类型
3.查看字段注释的方法
-
show full columns from student;
在元数据的表里面看
-
use information_schema; select * from columns where TABLE_SCHEMA='school' and TABLE_NAME='student';
3.表的字段操作
1.添加主键
1.在相应字段后添加主键
create table student(
id int primary key,
StuName varchar(32),
age int,
phone varchar(11)
);
2.在所有字段定义完后添加主键
create table student(
id int,
StuName varchar(32),
age int,
phone varchar(11),
primary key(id)
);
3.表建好后添加或修改主键
修改主键
先删除原有的主键,需要注意的是主键如果设置了自动递增,需要先将自动递增去掉,再删除主键
alter table 表名 modify/change 字段名 字段类型; //将自动递增去掉
alter table 表名 drop primary key; //删除原有的主键
alter table 表名 add primary key(要设为主键的字段名); //设置新的主键
没有主键直接添加主键
alter table 表名 add primary key(要设为主键的字段名); //设置新的主键
4.多字段联合主键
例如将学生id和手机号phone联合起来作为主键
create table student(
id int,
StuName varchar(32),
age int,
phone varchar(11),
primary key(id,phone)
);
2.外键的约束
1. 以class表的主键作为student的外键(因为两表都有班级号,两表因此具有关联性)
create table class(
Id int primary key, //班级号
className varchar(32)
);
create table student(
id int primary key, //班级号
classId int,
StuName varchar(32),
age int,
phone varchar(11),
constraint CS_Key foreign key(classId) references class(Id)
);
2. 表已建好的情况下修改、追加外键
alter table student add constraint CS_Key foreign key(classId) references class(Id);
3.查看外键是否构建成功
-
show create table 表名;
这个命令可以查看表的所有信息,包括一些字段类型,字段的约束,外键,主键,索引,字符编码等等。
4.删除表的外键
-
alter table 表名 drop foreign key 约束名;
3.给表添加常用约束
1.添加唯一性约束
唯一约束要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。
关键字 unique
create table student(
id int primary key,
classId int,
StuName varchar(32),
age int,
phone varchar(11) unique
);
2.添加非空约束
关键词:NOT NULL
;
create table student(
id int primary key,
classId int,
StuName varchar(32) not null,
age int,
phone varchar(11)
);
3.默认约束
关键词:DEFAULT
;
CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22),
sex VARCHAR(2) DEFAULT '男'
) DEFAULT CHARSET=utf8;
- 如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
- 如果要添加的是中文默认值,则需要加上
DEFAULT CHARSET=utf8;
使用英文字符则不需要。
4.设置表的属性值自动增加
关键词:AUTO_INCREMENT
,默认情况下初始值和增量都为1
CREATE TABLE t_emp(
id int primary key auto_increment, //主键,自动增长
name VARCHAR(22),
sex VARCHAR(2),
);
DEFAULT CHARSET=utf8;
- 如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
- 如果要添加的是中文默认值,则需要加上`DEFAULT CHARSET=utf8;`使用英文字符则不需要。
#### 4.设置表的属性值自动增加
##### 关键词:`AUTO_INCREMENT`,默认情况下初始值和增量都为`1`
```mysql
CREATE TABLE t_emp(
id int primary key auto_increment, //主键,自动增长
name VARCHAR(22),
sex VARCHAR(2),
);