1、整理今天讲解的数据库命令
2、整理今天讲解的数据库命令相关的单词并解释
3、创建数据库表
1、一对一 外键设置唯一约束
2、一对多 外键
3、多对多 中间表
要求
1、sql语句创建
2、每个数据库表insert至少5条语句
3、基本查询
4、update测试
5、delete测试
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1、mysql是管理数据库的软件
2、安装
sudo apt install mysql-server
3、默认是本地连接,如果需要,可以开启远程连接
登陆
mysql -h127.0.0.1 -uroot -p
运行命令
use mysql;
update user set Host="%" where User="root";
flush privileges;
重启服务
service mysql restart
测试登陆
mysql -h192.168.0.134 -uroot -p
4、客户端
默认的客户端是黑窗口,不方便。一般使用第三方的,比如navicat,有linux版的和windows版的
5、命令
1、连接数据库
mysql -h ip地址 -P 端口号 -u 用户名 -p 密码
2、显示所有数据库
show databases;
3、创建数据库
create database 数据库名字 default charset=utf8;
4、使用数据库
use 数据库名字;
5、删除数据库
drop 数据库名字;
6、备份和恢复数据库
mysqldump -h 192.168.0.138 -u root -p mydb > ./mydb.sql
mysql -h 192.168.0.138 -uroot -p mydb < ./mydb.sql
7、查询数据库下所有的表
use 数据库名;
show tables;
8、创建表
create table 表名(
列名 类型,
列名 类型,
列名 类型
);
9、常用的类型
数字 int,float,decimal
字符串 char,varchar,longtext
日期 date,datetime
10、删除表
drop table 表名
11、描述表的信息
desc 表名
12、显示表的创建sql语句
show create table 表名
13、约束
1、主键约束
2、非空约束
3、唯一约束
4、默认约束
5、外键约束
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
/*1对1*/
drop table if exists husband;
drop table if exists wife;
create table husband(
id int primary key auto_increment,
name varchar(100) not null,
wid int,
foreign key(wid) references wife(id) on delete cascade
);
create table wife(
id int primary key auto_increment,
name varchar(100) not null
);
insert into wife(id,name) values(1,'小红');
insert into wife(id,name) values(2,'小兰');
insert into wife(id,name) values(3,'小亭');
insert into wife(id,name) values(4,'小晶');
insert into wife(id,name) values(5,'小美');
select * from wife;
update wife set name = '小妹' where id = 1;
insert into husband(id,name,wid) values(1,'小白',1);
insert into husband(id,name,wid) values(2,'小李',2);
insert into husband(id,name,wid) values(3,'小赵',3);
insert into husband(id,name,wid) values(4,'小钱',4);
insert into husband(id,name,wid) values(5,'小孙',5);
select * from husband;
delete from husband where id = 5;
/*1对m*/
drop table if exists emp;
drop table if exists dept;
create table emp(
id int primary key auto_increment,
name varchar(100) not null,
did int,
foreign key(did) references dept(id) on delete cascade
);
select * from emp;
insert into emp(id,name,did) values(1,'小白',3);
insert into emp(id,name,did) values(2,'小李',4);
insert into emp(id,name,did) values(3,'小赵',4);
insert into emp(id,name,did) values(4,'小钱',2);
insert into emp(id,name,did) values(5,'小孙',5);
create table dept(
id int primary key auto_increment,
name varchar(100) not null
);
select * from dept;
insert into dept(id,name) values(1,'市场部');
insert into dept(id,name) values(2,'人力部');
insert into dept(id,name) values(3,'采购部');
insert into dept(id,name) values(4,'研发部');
insert into dept(id,name) values(5,'营销部');
/*m对n*/
drop table if exists student;
drop table if exists subject;
create table student(
id int primary key auto_increment,
name varchar(100) not null
);
insert into student(id,name) values(1,'小明');
insert into student(id,name) values(2,'小王');
select * from student;
create table subject(
id int primary key auto_increment,
name varchar(100) not null
);
insert into subject(id,name) values(1,'语文');
insert into subject(id,name) values(2,'数学');
insert into subject(id,name) values(3,'英语');
select * from subject;
create table middle(
id int primary key auto_increment,
stuid int not null,
subid int not null
);
insert into middle(id,stuid,subid) values(1,1,1);
insert into middle(id,stuid,subid) values(2,1,2);
insert into middle(id,stuid,subid) values(3,1,3);
insert into middle(id,stuid,subid) values(4,2,1);
insert into middle(id,stuid,subid) values(5,2,2);
insert into middle(id,stuid,subid) values(5,2,3);
select * from middle;