码迷,mamicode.com
首页 > 数据库 > 详细

python 基础复习之数据库01

时间:2019-01-09 11:44:35      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:假设   这一   code   art   pre   base   不能   回滚   mysq   

什么是数据库?
存储数据的仓库

MySQL
MySQL就是帮我来操作文件的
MySQL :是用于管理文件的一个软件(包括两个软件)
- 服务端的软件
-socket服务端
-本地文件操作
-解析指令 【SQL语句】
- 客户端软件
-socket客户端
-发送指令
-解析指令 【SQL语句】

文件夹【数据库】
文件【表】
数据行【行】
数据行
 
连接:
show databases; # 列出所有数据库
use 数据库名称; 切换数据库
show tables; 查看数据库里的所有文件
select * from 表名; 去哪个表里查看表下面所有的列
select name from 表名; # *号 代表表下面的列 可以根据列来查看不同的信息
select name,age from 表名; # 既看name列,又看age
列。
 
默认:用户 root
创建用户:
create user ‘lizy‘@‘192.168.1.1‘ identified by ‘123123‘; 密码
create user ‘lizy‘@‘%‘identified by ‘123123‘;
 
授权:
给谁授权 权限是什么
grant select(查找权限)
grant select,insert,update on db1.t1 to ‘lizy‘@‘%‘;
(意思是:可以在任何电脑上对‘lizy‘@‘%‘ 里的数据里的t1表进行增删改查)
revoke select on db1.tb1 from ‘用户名‘@‘IP‘ # 删除授权

  1 3.学习SQL语句规则
  2     
  3 操作文件夹
  4         create database db2 default charset utf8;
  5         show databases;
  6         drop database db2; # 删除数据库
  7 
  8 操作文件
  9         show tables;
 10         create table t1(id int,name char(10)) default charset=utf8;  # char 表示字符串类型
 11         create table t1(id int,name char(10)) engine=innodb default charset=utf8;
 12         create table t2(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8;
 13         t1表的名称      id 是表的列名  类型是int类
 14          # 在MySQL里只有engine=innodb的时候,才支持回滚  (假设在银行转账,突然断电了,钱转出去了,但是对方没有收到,钱就不知道去哪里了。有了engine=inndb 就可以让转账失败的钱回到原账户)。
 15                  #   (引擎)
 16         
 17 
 18 create table t1(
 19             列名 类型 null, # 可以为空
 20             列名 类型 not null, # 不可以为空
 21             列名 类型 not null default 1, # 不能为空,且默认值为1
 22             列名 类型 not null auto_increment, # 这一列会自增
 23             列名 类型 not null auto_increment primary key,            
 24             id int,
 25             name char(10)        
 26         )engine=innodb default charset=utf8;
 27 
 28         # innodb 支持事务,原子性操作
 29         # auto_increment 表示:自增
 30         # primary key 表示 一是约束(不能重复且不能为空);二是加速查找
 31         # 注意:一个表里只能有一个自增列 并且也只能有一个主键
 32             如果是auto_increment 那么它必须是主键
 33         # not null:是否为空
 34 
 35 #数据类型:
 36            # 数字:
 37                 tinyint     
 38                 int
 39                 bigint
 40                 
 41                 FLOAT   
 42                 DOUBLE
 43                    # 不太精准的小数
 44                 decimal
 45                    # 这个也是小数,但是永远都是精准的  # 推荐用这个decimal
 46                
 47             #字符串:
 48                 char(10)  # 会多占内存 # 优点:速度快
 49                 varchar(10)  # 输入多少就占多少内存 #优点:节省空间
 50                   #  都要加上一个长度           
 51                # PS:创建数据表 定长列往前放
 52                 
 53                # text:存的更多
 54                 
 55                # 上传文件:
 56                 #    文件存硬盘
 57                  #   数据库存路径
 58                      
 59           #  时间类型:
 60                 DATE 
 61                     YYYY-MM-DD(1000-01-01/9999-12-31)
 62                 
 63                 TIME
 64                     HH:MM:SS(时:分:秒)
 65                 
 66                 YEAR
 67                     YYYY(1901/2155)
 68                     
 69                 DATETIME
 70                     YYYY-MM-DD HH:MM:SS
 71                     
 72                 TIMESTAMP
 73                     YYYYMMDD HHMMSS
 74             
 75                          
 76 create table t1(
 77             id int not null auto_increment primary key,
 78             num decimal(10,5),     # 10表示总位数,就是小数点儿前和后。 5表示小数点后的位数。 
 79             name char(10)
 80         )engine=innodb default charset=utf8;
 81     
 82          
 83 # 清空表:
 84             delete from t1; # 使用它 会清空表 但是序号会从清空之前的序号开始计算,例如:清空前是4,那么插入新数据后,就是从5开始。
 85             truncate table t1; # 清空列表后 新插入数据 序号从1 开始(速度比delete快) 
 86  # 删除表:
 87             drop table t1;
 88   
 89# 操作文件中的内容
 90 #        插入数据
 91             insert into t1(id,name) values(1,alex);
 92         
 93  #       删除:
 94             delete from t1 where id < 6 #(删除条件id小于六的)
 95             
 96   #      修改:
 97             update t1 set age=18;# (年龄那一列都会变成18)
 98             update t1 set age=18 where age=17; #(找到年龄是17的改成18)
 99         
100     #    查看数据:
101             select * from t1;
102    
103 
104 # 外键:
105   #  原来只有一张表A,因为原因又创建另一张表B,B表里的id是A里的一个属性
106 
107 create table userinfo(
108     uid bigint auto_increment primary key,
109     name varchar(32),
110     department_id int,
111     constraint fk_user_depar foreign key ("department_id") references department("id") # 外键约束
112 )engine=innodb default charset=utf8;
113         # constraint 约束   fk_user_depar:外键的名称    references:关联
114 
115 create table department(
116     id bigint auto_increment primary key,
117     title char(15)
118 )engine=innodb default charset=utf8;
119    
120 
121         

# 注:本文是根据老男孩课程内容整理而成的,本文仅供个人笔记使用,如果有侵犯,请联系我,我立即撤销。
 




 

python 基础复习之数据库01

标签:假设   这一   code   art   pre   base   不能   回滚   mysq   

原文地址:https://www.cnblogs.com/pioneerLee/p/10242550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!