MySQL入门全了解

前言

学习MySQL数据库也有一段时间了,操作上还是不太熟练,在此记录一下,以便后期忘记了也可以查找核对。新手上路,请多多包涵。

环境介绍

安装环境:腾讯云 CentOS 7.4 64位

MySQL版本:5.7.20

操作工具:Xshell 5

数据库操作

一、数据库的安装

具体操作参考我上一篇文章

https://blog.csdn.net/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.csdn.net/bobo89455100/article/details/72922087
http://www.w3school.com.cn/sql/sql_foreignkey.asp

你可能感兴趣的:(数据库)