python 与数据库 1 基础了解和库的命令行操作

平时工作中数据库主要由DBA(数据库管理员)负责,但python中会有用程序调用数据库的时候,所以每个Python程序员需要了解并精通数据库,主要是掌握数据库中命令以及增删改查。首先我们要了解数据库是个什么样的东西,在Python中大部分的数据库是
这样的一个形式。它的优点在于
持久化存储
读写速度极高
保证数据的有效性
对程序支持性非常好,容易扩展
常用的数据库有orcale,mysql,sqlite,orcale一般用于银行等大型项目,收费的。Mysql是比较广泛使用的,免费的。Sqlite一般用于移动端上。本文主要简述一个mysql。首先第一步是安装,在Linux环境下,输入命令sudo apt-get install mysql-server来安装mysql。之后启动 sudo service mysql start 可以启动mysql。如果想关闭的话输入 sudo service mysql stop 就可以停止运行配置文件目录为/etc/mysql/mysql.cnf


进入conf.d目录,打开mysql.cnf,发现并没有配置


进入mysql.conf.d目录,打开mysql.cnf,可以看到配置项


主要配置项如下
bind-address表示服务器绑定的ip,默认为127.0.0.1
port表示端口,默认为3306
datadir表示数据库目录,默认为/var/lib/mysql
general_log_file表示普通日志,默认为/var/log/mysql/mysql.log
log_error表示错误日志,默认为/var/log/mysql/error.log
--01 mysql 数据库的操作
-- 链接数据库
mysql -uroot -pmysql;
-- 不显示密码
mysql -uroot -p
-- 退出数据库
--quit/exit/ctrl + d
-- sql语句最后需要有分号;结尾
-- 显示数据库版本 version
select version();
-- 显示时间 now
select now();
-- 查看当前使用的数据库
select database();
-- 查看所有数据库
show databases;


- 创建数据库
-- create database 数据库名 charset=utf8;
create database python13 charset=utf8;


-- 查看创建数据库的语句
-- show create database 数据库名
show create database python13;


-- 使用数据库
-- use 数据库的名字
use python13;


-- 删除数据库
-- drop database 数据库名;
drop database python13;


--02 数据表的操作


-- 查看当前数据库中所有表
show tables;


-- 创建表
-- int unsigned 无符号整形
-- auto_increment 表示自动增长
-- not null 表示不能为空
-- primary key 表示主键
-- default 默认值
-- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);


create table students(name varchar(50) not null,age int unsigned );


-- 查看表结构
-- desc 数据表的名字;
desc students;
-- 创建 classes 表(id、name)
create table classes (id int unsigned primary key auto_increment,name varchar(30));
-- 创建 students 表(id、name、age、high (decimal)、
--gender (enum)、cls_id)
create table students(id int unsigned primary key auto_increment,name varchar(30) not null,age int unsigned,
high decimal(3,2),gender enum("男",'女','中性','保密','妖') default "保密",cls_id int unsigned);


-- 查看表的创建语句
-- show create table 表名字;
show create table students;


-- 修改表-添加字段 mascot (吉祥物)
-- alter table 表名 add 列名 类型;
alter table students add mascot varchar(30);


-- 修改表-修改字段:不重命名版
-- alter table 表名 modify 列名 类型及约束;
alter table students modify mascot varchar(100);


-- 修改表-修改字段:重命名版
-- alter table 表名 change 原名 新名 类型及约束;
alter table students change mascot jxw int;


-- 修改表-删除字段
-- alter table 表名 drop 列名;
alter table students drop jxw;


-- 删除表
-- drop table 表名;
-- drop database 数据库;
drop table students;
drop database python13;


--03 增删改查(curd)


-- 增加
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
-- 全列插入
-- insert [into] 表名 values(...)
-- 主键字段 可以用 0 null default 来占位
-- 向classes表中插入 一个班级
insert into classes(id,name) values(1,'oldyang');
insert into classes(name) values("python13");
insert into classes(name) values("python14"),("python15");


-- 向students表插入 一个学生信息
+--------+-------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------------------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| age | int(10) unsigned | YES | | NULL | |
| high | decimal(5,2) | YES | | NULL | |
| gender | enum('男','女','中性','保密') | YES | | 保密 | |
| cls_id | int(11) | YES | | NULL | |
+--------+-------------------------------------+------+-----+---------+----------------+
-- 全部插入
-- 部分插入
-- insert into 表名(列1,...) values(值1,...)


-- 多行插入
insert into students(id,name,age,high,gender,cls_id) values(1,'oldyang','22','1.80','保密',1);
insert into students(name) values("小花");


insert into students (name) values("小花2"),("花3");




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值