1.MYSQL基本概念:
MYSQL是用于管理数据的关系型数据库软件,分为客户端和服务端
客户端功能:连接服务端 发送指令 解析SQL语句
服务端功能:接收指令 解析SQL语句 对本地文件进行操作
数据库基本结构:
数据库-文件夹
数据表-文件
数据行-文件行
数据库分为关系型数据库和非关系型数据库:关系型数据库指的是每列的属性都有很多约束存在
常见的软件如下:
关系型数据库:sql lite,db2,oracle,access,sql server,MYSQL(有很多约束)
非关系型数据库:Mongo DB,redis
2.MYSQL数据库的安装:
exe:直接安装就行
zip:需要对MYSQL进行初始化
初始化:在dos命令行执行以下操作
初始化服务端:
D:\MYSQL\mysql-8.0.18-winx64\bin\mysqld --initialize insecure
服务端连接:
服务端:D:\MYSQL\mysql-8.0.18-winx64\bin\mysqld
客户端登录:
客户端:D:\MYSQL\mysql-8.0.18-winx64\bin\mysql -u root -q root用户的密码为空
设置环境变量 :将D:\MYSQL\mysql-8.0.18-winx64\bin\设置为环境变量,以后起服务就无须敲前面的目录名
设置成Windows服务:可以减少dos命令窗的个数
3.MYSQL数据库的连接:
创建用户:
create user ‘用户名‘@‘IP地址‘ identified by ‘密码‘;(%代替ip地址的任一部分)
例子:
creat user ‘jjy‘@‘%‘ identified by ‘123123‘;
授权:
grant 操作 in 数据库和数据表 to 用户
例子:
grant insert update on db.* to ‘jjy‘@‘%‘;
grant all privileges on db.t1 to ‘jjy‘@‘%‘
(收回授权)revoke 操作 in 数据库和数据表 to 用户
例子:
revoke insert update on db.* to ‘jjy‘@‘%‘;
4.SQL语句的使用:
操作文件夹
show databases; 查看所有数据库
create database db1 default charset=utf8 ;创建数据库db1,默认编码是utf-8
use db1 ;对db1进行操作
drop database db1 ;删除数据库db1
操作文件(数据表):
create table t1( 列名 类型 约束 not null(null) signed(unsigned) auto_increment primary key uid int not null auto_increment primary key, name char(20) not null, num decimal(10,5) size ENUM(‘small‘,‘middle‘,‘large‘) )engine=innodb,default charset=utf8
引擎:帮助用户处理一切操作的机器或者代码:
innodb:支持事务(原子性操作),遇到异常时可以回滚(经典使用在转账系统中)
myisam:不支持事务
数据类型:
数字类型:
int
tinyint
bigint
float(不准确)
double(不准确)
decimal(以字符串形式存储,永远是准确的)(总位数,小数点后的位数),
字符串类型:
char:不可变字符串类型,如果长度不够,数据库自动帮添加空格,优点是处理数据迅速
varchar:可变数据类型,优点是节省空间
ps:可以组合使用char和varchar,将定长字符串列放在前面,变长字符串列放在后面
时间类型:时间格式不同,最常使用的类型是DATETIME
DATE
YEAR
TIME
DATETIME
TIMESTAMP
二进制类型:Blob
枚举类型:enum(只能选择括号中的类型)
集合类型:set(只能选择括号中元素的任意组合)
清空表:
delete from t1;(t1表之后添加的数据的序号会接着上次清空表的最后一个元素)
truncate from t1;(t1表之后添加的数据的序号会从头开始)
删除表:
drop table t1;
操作文件内容:
添加数据:
insert into t1(‘uid‘,‘name‘) value (‘01‘,‘htt‘);
删除数据:
delete from t1 where id<6;
修改数据:
update t1 set age=18 where age=17;
查询数据:
select * from t1;
外键 :表示1对多的关系,作用:对数据进行约束,节省空间
create table user_info( uid bigint not null auto_increment primary key, name varchar(20) not null, num decimal(10,5), department_id int, constraint fk_user_depart foreign key (department_id) references department(id) )engine=innodb,default charset=utf8 create table department( id bigint auto_increment primary key, title char(15) )engine=innodb,default charset=utf8
原文:https://www.cnblogs.com/lovejjy/p/11830947.html