学习Python的日子 MYSQL操作(1)

MySQL
数据库简介
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。mysql就是典型的关系型数据库。
关系型数据库的特点是将数据保存在不同的表中,再将这些表放入数据库中,而不是将所有数据统一放在数据库里,这样的设计增加了MySQL的读取速度,灵活性和可管理型也得到了很大提高,访问以及管理MySQL数据库的最常用标准化语言为SQL结构化查询语句。数据持久化存储在硬盘当中;
数据库 ----- 表 ----- 数据
关系型数据库设计规则
设计遵循ER模型和三范式  
E    entity   代表实体的意思      对应到数据库当中的一张表          
R    relationship 代表关系的意思  
三范式:1、列不能拆分     2、唯一标识    3、关系引用主键
字段类型
数字:int,decimal(小数的);
例如decimal(5,2)的意思是,最大5位数,其中小数2位,1.2和2.33都行,但10000.21就不行,超出位数了
字符串:char ,varchar,text
text存储比较多的字符串,比如商品的描述信息
char存储的是固定的字符串数据
char(8)存储的数据不满8个字符会在右侧自动补上空格字符-->"abcd    "
存手机号码固定的就可以使用char(11)
varchar存储的是可变的数据
varchar(8)存储数据不满8个字符,不会自动空格字符-->"abcd"
例如存姓名用varchar(8)
datetime,date,time    1987-07-24 
布尔:bit
bit(8)八个二进制位
bit表示一个位
存储性别的时候:
存储0或者1开销少
如果存储male和female开销大
两个状态存储的时间建议使用存储0和1方式
比如性别,数据是否删除
主键primary key;不能重复,唯一标识,物理的存储方式,速度快
非空not null;比如要姓名不能为空,当保存为null的时候就会报错。
惟一unique;这个值是唯一的。有重复的了会报错(比如身份证)
默认default;如果不写就会有个默认值,这种叫默认,只有类型。
外键foreign key
检查mysql安装情况
ps   -ajx|grep  mysql       查看进程方式查看
mysql  -uroot   -p你的密码       进入mysql代表安装成功
MySQL服务的启动停止重启操作
Sudo service mysql start       开启服务
Sudo service mysql stop       停止服务
Sudo service mysql restart    重启服务
外部链接
1、进入数据库  mysql –uroot –p你的密码
2、Show databases    查看所有的数据库
3、Use mysql             使用mysql数据库
4、Show tables          查看mysql库中所有的表
5、Select  user,host from user; 在user 这个表里面查看用户和用户权限字段 
6、grant all privileges on *.* to root@"%" identified by "123456" with grant option;   创建用户并且赋予权限
7、delete from user where user=’root’ and host = ‘localhost’; 删除原来初始创建的root用户
8、flush privileges;  刷新数据库特权
9、sudo  vi /etc/mysql/mysql.conf.d/mysqld.cnf
打开配置文件,将bind_address修改为0.0.0.0
10、重启mysql服务,使用windows下客户端进行连接
数据库命令行操作
对数据库的操作
查看所有数据库   show databases;
查看当前所用数据库  select database();
切换数据库   use [数据库名];
创建数据库 create database [数据库名] charset=utf8;
删除数据库  drop database [数据库名];
对表的操作
查看所有表       show tables; 
创建表    create table [表名](字段1  类型1  约束1,字段2 类型2 约束2);
修改表名字    rename table [表名] to [新名]
删除表    drop table [表名]
对字段的操作
查询字段(表结构)  desc [表名]
增加字段  alter table [表明]add [字段名  类型 约束]
删除字段  alter table [表名]drop[字段名]
修改字段  alter table [表名] change [字段名] [新字段名  类型  约束]
删除主键:需要先把主键的改为普通的id 不能是自动增长,然后再删除主键 
① 、alter table students change id id int;
②、alter table students drop primary key;
③、alter table students change id id int auto_increment primary key not null;
对数据的操作
增加数据
插入一个全字段
insert into students values(0,’liuyuan’,31,1)
插入多个全字段
insert into students values(0,’liudehua’,24,0),(0,’yangmi’,31,0)
插入一个部分字段
insert into students(id,name) values(0,’zhaoliying’)
插入多个部分字段
insert into students(id,name) values(0,’liushishi’),(0,’linzhiling’)
删除数据
删除某一条
delete from students where id=1;
清空
delete from students;
修改数据
update student set name=’liuyuan’ where name=’liudehua’
查找数据
查找所有数据
select * from students
数据库备份和恢复
备份
sudo mysqldump –uroot –proot  test1 > ~/Desktop/test1back.sql
恢复
进入mysql先要创建一个新的数据库,注意字符集
然后退出mysql
sudo mysql –uroot –proot test1  < ~/Desktop/test1back.sql

猜你喜欢

转载自blog.csdn.net/qq_42240071/article/details/80487026