前言
学习MySQL数据库也有一段时间了,操作上还是不太熟练,在此记录一下,以便后期忘记了也可以查找核对。新手上路,请多多包涵。
环境介绍
安装环境:腾讯云 CentOS 7.4 64位
MySQL版本:5.7.20
操作工具:Xshell 5
数据库操作
一、数据库的安装
具体操作参考我上一篇文章
https://blog.youkuaiyun.com/m0_38131049/article/details/79865079
二、数据库操作
使用以下命令登录
mysql -uroot -p
查看MySQL中有多少数据库
show databases;
(1)新建数据库
为防止字符乱码最好是规定好字符集,一般设置为utf8
mysql> create database mybatis default character set utf8; //创建一个名为mybatis的数据库
(2)查看数据库编码格式
mysql> show variables like "%char%";
其中
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database为数据库的编码;
character_set_results为结果集的编码;
character_set_server为数据库服务器的编码;
只要保证以上采用的编码方式一样,就不会出现乱码问题
(3)修改数据库的编码
mysql> alter database mybatis character set gbk;
(4)访问数据库
mysql> use mybatis; //use 数据库名
(5)创建表
//创建tb-user表
mysql> CREATE TABLE tb_user (
-> id INT PRIMARY KEY auto_increment,#主键 整形 自增长
-> username VARCHAR ( 20 ),#用户名
-> PASSWORD VARCHAR ( 32 ),#密码
-> address VARCHAR ( 100 ) #住址
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,mysql中两种数据库引擎
ENGINE=MyISAM
ENGINE=InnoDB
(6)对表结构的操作
1)查看数据库中表的列表
mysql> show tables;
2) 查看表编码
mysql> show create table tb_user;
3)修改数据表的编码格式
mysql> alter table tb_user character set gbk;
4)修改数据库表名称
//alter table 表名 rename 新表名;
mysql> alter table tb_user rename tb_user1;
mysql> rename table tbl_name to new_tbl_name [,tbl_name2 TO new_tbl_namew]……
讲解:可以多表更改名称
5)查看表结构
mysql> desc tb_user;
6)修改数据库表列的名称和定义
//具体操作语句:更改数据表tb_user,修改PASSWORD列 位于address之后
mysql> alter table tb_user modify PASSWORD varchar(50) not null after address;
//语句的语法:修改数据库表tb_user中的PASSWORD列为password,并放在username后面
mysql> alter table tb_user change PASSWORD password varchar(32) NULL after username;
7)给数据库表增加一列
//ALTER TABLE table_name ADD column_name datatype
mysql> alter table tb_user add column email varchar(32);
8)给数据库删除一列
mysql> alter table tb_user drop column email;
(7)对表的CURD操作
1)给数据库插入一条数据
mysql> insert into tb_user(id,username,password,address) values (null,"张三","1234","江西省南昌市");
2)修改数据库中的一条数据
update tb_user set password ="1357" where id = 11;
update tb_user set password ="13579",address = "江西省高安市" where id = 11;
//同一条数据里的多个字段用“,”隔开
3)删除数据库表中一条数据
delete from tb_user where id = 14;
4)查找数据库中的数据
select * from tb_user; //查找数据库表中所有的数据
select * from tb_user where username = "张骞"; //按照条件进行查找
8)外键及约束的理解
1)准备工作
创建另一个表tb_order,在表中增加模拟数据
2)SQL FOREIGN KEY 约束
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
在实例中tb_order表中的user_id指向tb_user表中的id。
tb_user表中的”id”列是tb_user表中的PRIMARY KEY
tb_order表中的“user_id”是tb_order表中的FOREIGN KEY
1.在创建表时添加外键
CREATE TABLE `tb_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`shipping_name` varchar(50) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
CONSTRAINT [外键名] FOREIGN KEY (user_id)
REFERENCES tb_user(Id)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
2.在已有表的情况下添加外键
ALTER TABLE tb_order
ADD FOREIGN KEY (user_id)
REFERENCES tb_user(id)
//如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束
ALTER TABLE tb_order
ADD CONSTRAINT [外键名]
FOREIGN KEY (user_id)
REFERENCES tb_user(id)
3.撤销 FOREIGN KEY 约束
ALTER TABLE tb_order
DROP FOREIGN KEY [外键名]
参考资料
https://www.cnblogs.com/shootercheng/p/5836657.html
https://blog.youkuaiyun.com/bobo89455100/article/details/72922087
http://www.w3school.com.cn/sql/sql_foreignkey.asp