1.概念:
关系型数据库管理系统
2.特点
开源
支持大型的数据库
使用标准的SQL数据语言形式
可以安装在不同的操作系统
3.MySQL数据库服务端软件的安装
sudo apt-get install mysql-server
查看安装信息
apt-cache show mysql-server
查看mysql服务状态
sudo service mysql status
停止MySQL服务
sudo service mysql stop
启动MySQL服务
sudo service mysql start
重启MySQL服务
sudo service mysql restart
MySQL配置文件路径
/etc/mysql/mysql.conf.d/mysqld.cnf
4.MySQL数据库客户端软件的安装
图形化界面客户端Navicat(Ubuntu)的使用:
tar zxvf navicat112_mysql_cs_x64.tar.gz
启动命令:
./start_navicat
过期破解
cd ~
rm -r .navicat64
5.命令行客户端mysql
安装命令
sudo apt-get install mysql-client
登录数据库命令
mysql -uroot -p
-u: 表示MySQL服务端的用户名
-p: 表示MySQL服务端的密码
显示当前时间
select now()
登出数据库
quit/ exit/ ctrl + d
远程登录数据库(配置过程)
查看防火墙关闭状态
sudo service ufw status
打开配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉:bind-address 127.0.0.1那一行
重启服务器
sudo service mysql restart
切换到mysql 数据库
use mysql
select host, user from user
修改权限
update user set host="%" where user="root";
再次重启服务
sudo service mysql restart
数据库操作sql语句
查看所有数据库
show databases;
创建数据库
create database 数据库名 charset=utf8;
使用数据库
use 数据库名;
查看当前使用的数据库
select database();
删除数据库
drop database 数据库名;
查看创库SQL语句
show create database 数据库名;
表结构操作的sql语句
查看当前数据库中所有表
show tables;
创建表
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) not null,
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','人妖','保密')
);
修改表-添加字段
alter table 表名 add 列名 类型 约束;
修改表-修改字段类型
alter table 表名 modify 列名 类型 约束;
温馨提示
modify: 只能修改字段类型或者约束,不能修改字段名
修改表-修改字段名和字段类型
alter table 表名 change 原名 新名 类型及约束;
修改表-删除字段
alter table 表名 drop 列名;
查看创表SQL语句
show create table 表名;
删除表
drop table 表名;
数据库的增、删、改、查
查询数据
select * from 表名;
select 列1,列2,... from 表名;
添加数据
insert into 表名 values (...)
insert into 表名 (列1,...) values(值1,...)
insert into 表名 values(...),(...)...;
insert into 表名(列1,...) values(值1,...),(值1,...)...;
修改数据
update 表名 set 列1=值1,列2=值2... where 条件
删除数据
物理删除
delete from 表名 where 条件
逻辑删除(isdelete=1代表删除)
update students set isdelete = 1 where id = 8;
数据库的备份(扩展)
备份
mysqldump –uroot –p 数据库名 > python.sql;
在库外执行
恢复
mysql -uroot –p 新数据库名 < python.sql;
在库外执行
演示操作步骤
不用进入数据库,直接在外面命令操作就可以
先进入数据库,创建新的数据库
退出数据库,在执行恢复数据库命令
as关键字
使用 as 给字段起别名
select id as 序号, name as 名字, gender as 性别 from students;
可以通过 as 给表起别名
示例:select s.id,s.name,s.gender from students as s;
自连接 的时候,必须要对表起别名。
distinct关键字
去除重复数据行
select distinct 列1,... from 表名;
where条件查询
where语法格式
select * from 表名 where 条件;
比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>
逻辑运算符
and
or
not
提示:多个判断条件作为一个整体,可以使用()
模糊查询
like是模糊查询关键字
%表示任意多个任意字符
_表示一个任意字符
范围查询
between .. and .. 表示在一个连续的范围内查询
in 表示在一个非连续的范围内查询
空判断
判断为空使用: is null
判断非空使用: is not null
排序
语法
select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]
排序规则
先按照列1进行排序,如果列1的值相同时,则按照 列2 排序,以此类推
提示
asc从小到大排列,即升序
desc从大到小排序,即降序
默认按照列值从小到大排列(即asc关键字)
关键字
order by
分页查询
语法
select * from 表名 limit start,count
提示
limit是分页查询关键字
start表示开始行索引,默认是0
count表示查询条数
获取第n页数据的sql语句
select * from students limit (n-1)*m,m