Mysql数据库基础入门学习
介绍
类型:
关系型数据库: (rdbms):mysql,oracle,db2,sql serve 非关系型数据库(no sql):mongodb,redis,键值对数据库,文档数据库
mysql
数据库–>库–>表–>数据链 安装启动
安装mysql服务端: sudo apt install mysql-server 安装mysql服务端:sudo apt install mysql-client 检查是否安装成功:sudo netstat -tap | grep mysql 关闭mysql服务器: service mysql stop 开启mysql服务器:service mysql start 重启: service mysql restart 需要远程登陆时需要更改配置文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address= 127.0.0.1注释掉 重启数据库 进入mysql数据库: mysql -uroot -p —>输入密码 退出:ctrl+d /exit/quit 创建用户:grant all privileges on . to username@”%” identified by “password” with grant option;(grant:授权命令. %表示允许host操作) 修改密码:
1.退出mysql 2.mysqladmin -u用户名 -p旧密码 passwod 新密码 查看用户:1.use mysql; 2.select user,host from users;
数据库操作
显示有哪些数据库:show databases; 选用某个数据库:use name; 查看某个表的结构:desc name; 查看当前使用的是那个数据库:select database();
创建数据库: create databases name charset=utf8;
删除数据库:drop database name;
数据表操作
把当前数据库所有表列出来:show tables;
创建表:
create table 数据表名(
id int(10) auto_increment primary key not null,
name varchar(40)
) charset=utf8;
查看所有信息:select * from name;
查看id为1的学生表的数据:select * from students where id=1 查看name为wukong的学生表的数据:select * from students where name=’wukong’;
- 删除数据表:drop table tab_name;
增加一条数据: insert into students(id,name) values(0,’wukong’),(0,’bajie’); 删除一条数据:delete from 表名 删除全部
删除id为13 : delete from students where id=13; 修改数据:
update 表名 set 列1=值1,… where 条件
备份与恢复
备份:
切换到root : sudo -s 切换到/var/lib/mysql目录 mysqldump -uroot -p 数据库名 > ~/desktop/备份文件.sql; 恢复:
创建一个数据库 mysql -uroot -p test1 < atguigudb.sql; source 数据
查询
select * from 表名—>查询所有
select id,name from students;—>只查看id,name 取别名:as —select id as 编号,name as 姓名 from students; 消除重复行:distinct—select distinct name from students; 条件 -where :
比较运算符:=,>,>=,<,<=,!=或者<> 逻辑运算符: and,or,not 模糊查询:like–%表示任意多个字符 _表示一个字符
select * from students where name like ‘黄_’ 范围查询:in,between…and…
select * from students where id in(1,2,4) select * from students where id between 3 and 8; 空判断: is null—非空判断:is not null 聚合
count 计算表中的记录(行数)—select count(*) from students; sum 计算表中数值列的数据合计值(只适用于数值型的列)—select sum(id) from students where gender=1; avg 计算表中数值列的数据平均值(只适用于数值型的列)—select avg(id) from students where isdelete=0 and gender=0; max 求出表中任意列中数据的最大值—select max(id) from students where gender=0; min 求出表中任意列中数据的最小值—select min(id) from students where isdelete=0;
分组
语法:select 列1,列2,聚合… from 表名 group by 列1,列2,列3…
select gender as 性别,count(*) from students group by gender; select isdelete as 是否删除, count(*) from students group by isdelete; 分组后的数据筛选
select 列1,列2,聚合… from 表名 group by 列1,列2,列3… having 列1,…聚合… select count(*) from students where gender=1; select gender as 性别,count(*) from students group by gender having gender=1;
排序:
select * from 表名 order by 列1 asc|desc,列2 asc|desc,… 默认按照列值从小到大排列 asc从小到大排列,即升序 desc从大到小排序,即降序 select * from students where gender=1 and isdelete=0 order by id asc,name; 分页select * from 表名limit start,count
分页公式:select * from 表名 limit (n-1) * m,m 连接查询 自关联 视图 :对查询的一个封装
1
事物
四大特性:
原子性 :要么全部执行要么不执行 一致性 : 隔离性 :
- 持久性 :
pymysql
交互类型
connection
创建connection对象调用connect()方法 conn=pymysql.connect(参数列表)
参数: host:连接的mysql主机,如果本机是’localhost’ port:连接的mysql主机的端口,默认是3306,可以不写 db:数据库的名称 user:连接的用户名 password:连接的密码 charset:通信采用的编码方式,建议是’utf8’ ? commit()事务,所以需要提交才会生效; ? close()关闭连接 ? cursor()返回cursor对象,用于执行sql语句并获得结果 cursor对象
创建对象:调用connection对象的cursor()方法
cursor=conn.cursor() execute:执行sql语句
sql = “insert into students(name) value(‘李四’)” cursor.execute(sql) cursor.close()关闭