0.下载mysql
下载mysql:
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源:
yum install mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功:
yum repolist enabled | grep "mysql.*-community.*"
安装MySQL:
yum install mysql-community-server
启动mysql服务
service mysql start
停用mysql服务:
service mysql stop
reference link: https://blog.csdn.net/shj_php/article/details/86712408
1.登陆、退出mysql
mysql -uroot -p123456
退出:exit
2.基本语法
显示所有数据库
show databases
创建数据库
create database test;
切换数据库
use test;
显示数据库中的所有表
show tables;
创建数据表
create table pet(
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date);
查看数据表结构
describe pet;
查询表
select * from pet;
插入数据
insert into pet values ('puffball', 'Diane', 'hamster', 'f', '1990-03-30', NULL);
修改数据
update pet set name = 'squirrel' where owner = 'Diane';
删除数据
delete from pet where name='squirrel';
删除表
drop table myorder;
3.1主键约束(使某个字段不重复且不得为空,确保表内所有数据的唯一性。)
create table user (
id INT primary key ,
name VARCHAR(20)
);
如果忘记设置主键,还可以通过SQL语句设置(两种方式):
ALTER TABLE user ADD PRIMARY KEY(id);
ALTER TABLE user MODIFY id INT PRIMARY KEY;
ALTER TABLE user drop PRIMARY KEY; 删除主键
3.2 联合主键 (每个字段都不能为空,可以部分相同 但不能完全相同)
create table user (
id int,
name VARCHAR(20),
password VARCHAR(20),
PRIMARY KEY(id, name)
);
3.3 自增约束(主键由系统自动递增分配)
CREATE TABLE user3 (
id int primary key auto_increment,
name VARCHAR(20)
);
4.唯一主键(和primary key相似,但是可以为空)
建表时创建唯一主键
CREATE TABLE user(
idINT,
nameVARCHAR(20),
UNIQUE(name)
);
如果建表时没有设置唯一建,还可以通过SQL语句设置(两种方式)
ALTERTABLEuser ADD UNIQUE(name);
ALTERTABLEuser MODIFY nameVARCHAR(20) UNIQUE;
删除唯一主键
ALTERTABLEuser DROP INDEX name;
5.非空约束(约束某个字段不能为空)
CREATE TABLE user(
idINT,
name VARCHAR(20) NOT NULL
);
移除非空约束
alter table user modify name varchar(20);
6.默认约束(约束某个字段的默认值)
CREATE TABLE user2(
id INT,
name VARCHAR(20),
age int default 10
);
7.外键约束
班级表
create table classes(
id int primary key,
name varchar(20)
);
学生表
create table students(
id int primary key,
name varchar(20)
这里的 class_id 要和 classes 中的 id 字段相关联
class_id int,
表示 class_id 的值必须来自于 classes 中的 id 字段值
foregin key(class_id) references classes(id)
);
1. 主表(父表)classes 中没有的数据值,在副表(子表)students 中,是不可以使用的。
2. 主表中的记录被副表引用时,主表不可以被删除。