标签:假设 这一 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
# 注:本文是根据老男孩课程内容整理而成的,本文仅供个人笔记使用,如果有侵犯,请联系我,我立即撤销。
标签:假设 这一 code art pre base 不能 回滚 mysq
原文地址:https://www.cnblogs.com/pioneerLee/p/10242550.html