MYSQL
2021-09-08 12:06:00 21 举报
AI智能生成
mysql基础
作者其他创作
大纲/内容
重置mysql密码
1停止服务
子主题
子主题
二在cmd下启动MySQL服务
子主题
三重新开启cmd的命令行
子主题
四修改root密码
子主题
五结束mysqld进程
六重新启动mysql服务
数据库备份及还原
备份
还原
1
2
多表设计
外键约束
子主题
一对多
子主题
多对多
子主题
多表查询
多表查询概述
子主题
内连接
内连接得到的是两个表的交集部分
显示内连接
select * from classes c inner join student s on c.cid=s.con;
子主题
隐示内连接
select * from classes c,student s where c.cid=s.con;
内连接和外连接的区别
子主题
外连接
左外连接(以左边表为基准查询)
select * from classes c left outer join student s on c.cid=s.con;
子主题
右外连接(以右边表为基准查询)
select * from classes c rightouter join student s on c.cid=s.con;
子主题
子查询
带in的查询
(查询生日在81年以后的学生班级)SELECT * FROM classes WHERE cid IN(SELECT con FROM student WHERE birthday >'1981-01-01');
子主题
带exists的查询
(查询大于这个生日的学生,为true才会执行)SELECT * FROM classes WHERE EXISTS (SELECT con FROM student WHERE birthday >'1980-01-01');
子主题
带any的查询
SELECT * FROM classes WHERE cid>ANY (SELECT con FROM student);
带all的查询
SELECT * FROM classes WHERE cid>All (SELECT con FROM student);
SQL
创建数据库
create database 数据库名称 [character set 字符集 collate 字符集校对规则];
查看数据库
show databases;数据库名称 [character set 字符集 collate 字符集校对规则];
子主题
修改数据库
alter database 数据库名称 character set字符集 collate 校对规则;
删除数据库
drop database 数据库名称;
切换数据库
数据库表
创建表
create table 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束…);
create database web_test1;
use web_test1;
create table user(
id int primary key auto_increment,
username varchar(20) unique,
password varchar(20) not null,
age int,
birthday date
);
use web_test1;
create table user(
id int primary key auto_increment,
username varchar(20) unique,
password varchar(20) not null,
age int,
birthday date
);
字段类型
约束
删除表
drop table表名;
查询
查询所有表
show tables;
查询某个表的结构信息
desc 表名;
修改表
添加列
alter table 表名 add 列名 类型(长度) 约束;
删除列
alter table 表名 drop 列名;
修改列类型,长度和约束
alter table 表名 modify 列名 类型(长度) 约束;
修改列名称
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
修改表名
rename table 表名 to 新的表名;
修改表的字符集
alter table 表名 character set 字符集;
数据库表的记录操作
添加表记录
语法及注意事项
修改表记录
语法
删除表记录
语法
查询
总结
准备条件
create table exam(
id int primary key auto_increment,
name varchar(20),
english int,
chinese int,
math int
);
insert into exam values (null,'张三',85,74,91);
insert into exam values (null,'李四',95,90,83);
insert into exam values (null,'王五',85,84,59);
insert into exam values (null,'赵六',75,79,76);
insert into exam values (null,'田七',69,63,98);
insert into exam values (null,'李老八',89,90,83);
id int primary key auto_increment,
name varchar(20),
english int,
chinese int,
math int
);
insert into exam values (null,'张三',85,74,91);
insert into exam values (null,'李四',95,90,83);
insert into exam values (null,'王五',85,84,59);
insert into exam values (null,'赵六',75,79,76);
insert into exam values (null,'田七',69,63,98);
insert into exam values (null,'李老八',89,90,83);
基本查询
条件查询
like:模糊查询
范围查询
select * from exam where english in (69,75,89); (查询范围在english中的69,75,89)
条件关联
and ,or, not
排序查询
分组统计查询
聚合函数的使用
sum();
select sum(english),sum(math) from exam; (获取英语和数学总和成绩)
select sum(english) from exam where name like '李%';
select sum(english)+sum(chinese)+sum(math) from exam;;(获取各科成绩总和)
select sum(english) from exam where name like '李%';
select sum(english)+sum(chinese)+sum(math) from exam;;(获取各科成绩总和)
count();
select count( * ) from exam;(获取学生总数)
select count( * ) from exam where name like '李%';(获取姓李学生总数)
select count( * ) from exam where name like '李%';(获取姓李学生总数)
max();
select max(math) from exam;(获取数学成绩最高分)
min();
select min(chinese) from exam;(获取语文成绩最低分)
avg();
select avg(chinese) from exam;(获取语文平均值)
分组查询
准备
create table item(
id int primary key auto_increment,
product varchar(20),
price double
);
insert into item values (null,'电视机',2999);
insert into item values (null,'电视机',2999);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'冰箱',3999);
insert into item values (null,'冰箱',3999);
insert into item values (null,'空调',1999);
id int primary key auto_increment,
product varchar(20),
price double
);
insert into item values (null,'电视机',2999);
insert into item values (null,'电视机',2999);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'洗衣机',1000);
insert into item values (null,'冰箱',3999);
insert into item values (null,'冰箱',3999);
insert into item values (null,'空调',1999);
语法
0 条评论
下一页