最近开始学习MySQL,希望通过写博客的方式能使自己得到提高,也算是一个小小的总结。
教材是基于Mysql5.5的
使用的是RedHatEnterpriseLinux6.4环境
MySQL使用的V5.1.69
(1)进入MySQL,展示已创立的数据库(ps:后面用到数据库的test_db我已经创建好了,先说一下)
mysql> show databases;
(2)然后开始建立数据库 test_db
mysql> create database test_db;
ps:我所使用的是MySQL5.1.69,其默认MySQL引擎是MyISAM(注一),这里先提一下
mysql> show variables like 'storage_engine';
(3)接下来就是使用刚刚建立的数据库 test_db
mysql> use test_db
(4)查看一下刚才创建的数据库 test_db 的定义
mysql> show create database test_db;
(5)这里因为后面的操作,我们退出MySQL,更改一下MySQL的配置文件
#vim /etc/my.cnf
在[mysqld]的下面加入一行 default-storage-engine=InooDB
(6)我们再进入MySQL命令行,创建数据表 tb_emp1
mysql> create table tb_emp1
-> (
-> id int(11) primary key,
-> name varchar(25),
-> deptId int(11),
-> salary float
-> );
在这里制定id为主键,也可以进行联合主键,在定义的最后加入
-> primary key(name,deptId)
此外还有以下几种约束:
1.外键约束
建立一个新表 tb_emp2 并在其中建立一个名为 fk_emp2_emp1 的外键,关联的是tb_emp2中的realname和tb_emp1中的name,其中tb_emp1为父表,tb_emp2为子表
mysql> create table tb_emp2
-> (
-> realid int(11) primary key,
-> realname varchar(25),
-> realdeptId int(11),
-> realsalary float
-> constraint fk_emp2_emp1 foreign key tb_emp2(realname) references tb_emp1(name)
-> );
其中操作(4)的原因就是为设置外键,如果引擎不是InnoDB,则无法成功设置外键
2.非空约束
建立一个新表 tb_emp3 其中对name进行非空约束
mysql> create table tb_emp3
-> (
-> id int(11) primary key,
-> name varchar(25) not null,
-> deptId int(11),
-> salary float
-> );
3.唯一约束
其功能是确定该列中不出现重复值(可以有空值),建立一个新表 tb_emp4 ,设置deptId唯一性约束 mysql> create table tb_emp4
-> (
-> id int(11) primary key,
-> name varchar(25) ,
-> deptId int(11) unique,
-> salary float
-> );
4.默认约束
其功能是让该列数据均为同一个默认值,建立一个新表 tb_emp5 ,设置deptId 默认约束
mysql> create table tb_emp5
-> (
-> id int(11) primary key,
-> name varchar(25) ,
-> deptId int(11) default 1111,
-> salary float
-> );
5.表属性值自动增加
其功能是让其属性每增加一条记录自动增加,只针对整数类型,建立一个新表 tb_emp6 ,设置id 自动增加
mysql> create table tb_emp6
-> (
-> id int(11) primary key auto_increment,
-> name varchar(25) ,
-> deptId int(11) ,
-> salary float
-> );
(7) 接下来我们查看我们所创建的数据表
mysql> describe tb_emp1;
或者
mysql> desc tb_emp1;
(8)下面进行修改数据表操作
1.修改表名
将表 tb_emp1 更名 tb_emp
mysql> alter table tb_emp1 rename tb_emp ;
2.修改字段的数据类型
将表 tb_emp4 中的 name 字段的数据类型 varchar(25) 改为 varchar(22)
mysql> alter table tb_emp4 modify name varchar(22) ;
3.修改字段名
将表 tb_emp4 中的 name 字段改为 realname 数据类型保持不变
mysql> alter table tb_emp4 change name realname varchar(22) ;
4.添加字段
在表 tb_emp4 添加字段
4.1 添加无完整性约束条件的字段
mysql> alter table tb_emp4 add managerId Int(10);
4.2 添加有完整性约束条件的字段
mysql> alter table tb_emp4 add column1 varchar(12) not null;
4.3 在表的第一列添加一个字段
mysql> alter table tb_emp4 add column2 int(11) first;
4.4 在表的指定列之后添加一个字段
mysql> alter table tb_emp4 add column3 int(11) after realname;
5.删除字段
删除表 tb_emp4 中的字段column2
mysql> alter table tb_emp4 drop column2;
6.修改字段的排列位置
其实与操作2是一样的,后面加上first,after即可
7.修改表的存储引擎
mysql> alter table tb_emp4 engine=myisam;
8.删除表的外键约束
删除表tb_emp2中的外键 fk_emp2_emp1
mysql> alter table tb_emp2 drop foreign key fk_emp2_emp1;
9.删除不用的表
mysql> drop table tb_emp3;
(9)接下来就是删除我们刚刚建立的数据库test_db,不想删这个的话,再建一个test_db2吧
mysql> drop database test_db2;