数据库
用来存储数据的仓库,本质是个文件(结构化的文件)。
数据可以持久化存储或缓存。持久化存储在磁盘内。缓存在内存中
mysql操作步骤
1- 安装mysql
去网站直接加载(具体安装步骤查看mysql安装)
2- cmd中安装mysql
sudo apt-get install mysql-server
3- 登录数据库
mysql -u root -p
SQL分类
DDL: Date Definition Language:数据定义语言,用户创建、修改、删除表结构
DML: Date Manipulation Language:数据操作语言,用于对数据表进行增删改的操作
DQL: Date Query Language:数据查询语言,用于负责数据表的查询工作
DCL: Date Contril Language:数据控制语言,用来定义访问权限和安全级别
DDL
1- 创建数据库
create database user charset=utf8;;
2- 切换数据库
use user;
3- 查看数据库信息
select database();
4- 查看系统中所有数据库
show databases;
5- 退出数据库
exit
6- 查看所有表
show tables
7- 创建表
create table User(
sname varchar(20) primary key,
sage int,
ssex varchar(20) not null,
sbirthday datetime,
);
8- 查看表结构
desc User
9- 修改表名
alter table User rename userinfo;
10- 修改字段类型
alter table userinfo modify ssex varchar(10)
11- 替换字段
alter table userinfo change ssex sgender varchar(10)
12- 新增字段
alter table userinfo add ssore int after sages;
13- 删除字段
alter table userinfo drop ssore.
14- 字段排行
数据库的数据类型
1- 数字类型
int 大小正负: 2147483648
tinyint 大小正负:128
smallint 大小正负:32767 (3w)2^15
mediumint 大小正负:8388608 (百万)2^23
bigint 大小正负:9223372036854775808 (百亿亿)2^53
floalt 大小正负:
double 大小正负:
decimal 大小正负:
2- 时间类型
data
datatime
timetamp
time
year
3- 字符串类型
char 大小正负:255 (默认为1)
varchar 大小正负:255
blob/text 大小正负:65535
tinyblob/tinytext
mediumblob/mediumtext (1千6百万)
longblog/longtext (42亿)
enum
DML
1- 插入整条数据
insert into stu(sname,sage,sgender,sbirthday) values('张三',20,'男',1990,1,1),('李四',20,'男','2000,1,1');
2- 插入部分数据
insert into stu(sname) values('王五')
3- 更新数据
update stu set sgender='female',sage=18 where sname='王五';
4- 删除数据
delete from stu where sname='王五';
drop table stu(删除表)
drop database user(删除数据库)
5- 查看数据
select * from stu
DQL
1- 条件查询
between..and.. (两则都包含,左右都为闭区间)
and
or
in
not in
is
is not
2- 模糊查询
where子句中=表示精准查询
like:与where配合使用进行模糊查询
通配符:
_:匹配任一个字符
select * from user where name like "zhang___"
%:匹配0-n个字符【n>=1】
select * from user where name like "%wang%"
3- 起别名
select name as username from user(并不改变原表)
4- 去重
select distinct sex from user
5- 排序
asc:升序
desc:降序
select * from user order by sex asc,age desc
聚合函数
聚合函数也数据DQL中
1- count()查总数
select count(*) from stu where sage>=18;
2- sum()己算指定列的数值和
select sum(sage) from stu;
3- max() / min()最大最小值
slect max(sage) from stu;
4- avg()平均值
select avg(sage) from stu
5- 分组
group by
6- 分页
limit
约束
1- 主键约束(primary key)
1- 方式一:
create table stu1(
id int primary key,
name varchar(50),
);
2-方式二:
create table stu2(
id int,
name varchar(50),
primary key(id,name)
)
3- 方式三:
create table stu3(
id int,
name varchar,
)
alter table stu3 add constraint stu3_id primary key(id)
查询
1- 联合查询并去重
select * from A union select * from B;
2- 联合查询不去重
select * from A union all select * from B;
3- 连接查询 (两表相乘,返回结果)
select * from A,B;
4- 去重连接查询(只显示两表id相同的字段)
select stu1.name,class1.score,class1.courseid from stu1,class1 where student1.stuid=class.stuid;
5- 取别名
select s.name,c.score,c.courseid from stu1 s,class1 c where s.id=c.id;
5- 内连接
select s.name,c.score,c.courseid from stu1 s join class1 c on s.id=c.id;
6- 内连接后添加条件 (将查询出的数据添加条件score>90)
select s.name,c.score,c.courseid from stu1 s,class c where s.id=c.id and score>90;
7- 左连接 (将左表所有字段显示,字段为空则显示null)
select * from student s left join class c on s.id=c.id
备份与恢复
备份
1- 进入指定备份目录
2- 获取需要备份的数据库mydb1
3- 指定文件名mydb1.sql(在某某目录下某某文件)
4- 指定命令
mysqldump -u root -p mydb1>/home/rock/Desktop/mydb1.sql
恢复
1- 进入mysql
mysql-uroot-p
2- 创建数据库
create database mysqldb1 charset=utf8;
3- 找到备份文件
/home/rock/Desktop/mydb1.sql;
3- 指定恢复命令
source /home/rock/Desktop/mydb1.sql;
note:
1- 修改密码:
set password for root@localhost=password('123456')
2- 在创建虚拟环境时。可在环境变量中新增WORKON_HOME变量名来定义环境变量安装默认路径。