MySQL:是用于管理文件的一个软件 - 服务端软件 - socket服务端 - 本地文件操作 - 解析指令【SQL语句】 - 客户端软件(各种各样) - socket客户端 - 发送指令 - 解析指令【SQL语句】 PS: - DBMS:数据库管理系统 - SQL语句 需要掌握的技能: - 安装 服务端和客户端 - 连接 - 学习SQL语句规则;指示服务端做任意操作 其他类似软件: 关系型数据库:sqllite,db2,oracle,access,sql server MySQL 非关系型数据库:MongoDB,redis
MySQL安装
Windows: 可执行文件安装: while True: 下一步 压缩包 放置任意目录 初始化 服务端:E:\somewhere\mysql-5.7.16-winx64\bin\mysqld --initialize-insecure # 默认用户名 root 密码:空 启动服务端: E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysqld 客户端连接: E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysql -u root -p 发送指令: show databases;#查看数据库 create database db1;创建数据库 环境变量的配置: E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin mysqld 添加到系统环境变量PATH windows服务:(制作成为Windows服务,可开机自动运行) E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --install net start MySQL E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --remove net start MySQL net stop MySQL
关于连接数据库
连接: 默认:用户root show databases; use 数据库名称; #使用数据库 show tables; #查看数据表 select * from 表名; #查询 select name,age,id from 表名; mysql数据库user表 #系统自带(存放mysql用户账号信息) use mysql; select user,host from user; 创建用户: create user 'alex'@'192.168.1.1' identified by '123123'; create user 'alex'@'192.168.1.%' identified by '123123'; create user 'alex'@'%' identified by '123123'; 授权: 权限 人 grant select,insert,update on db1.t1 to 'alex'@'%'; grant all privileges on db1.t1 to 'alex'@'%'; revoke all privileges on db1.t1 from 'alex'@'%';
学习SQL语句规则
操作文件夹 create database db2; create database db2 default charset utf8; ***** show databases; drop database db2; 操作文件 show tables; create table t1(id int,name char(10)) default charset=utf8; create table t1(id int,name char(10))engine=innodb default charset=utf8; create table t3(id int auto_increment,name char(10))engine=innodb default charset=utf8; ***** create table t1( 列名 类型 null, 列名 类型 not null, 列名 类型 not null auto_increment primary key, id int, name char(10) )engine=innodb default charset=utf8; # innodb 支持事务,原子性操作(错误回滚) # myisam myisam auto_increment 表示:自增 primary key: 表示 约束(不能重复且不能为空); 加速查找 not null: 是否为空 数据类型: 数字:(注意区分有无符号,unsigned,signed) tinyint int bigint FLOAT 0.00000100000123000123001230123 DOUBLE 0.00000000000000000000100000123000123001230123 0.00000100000123000000000000000 decimal (精确小数表示,底层用字符串实现,推荐使用) 0.1 字符串: char(10) 速度快() varchar(10) 节省空间 PS: 创建数据表定长列往前放 text类型:最大字符65535 上传文件: 文件存硬盘 db存路径 时间类型 DATETIME enum set create table t1( id int signed not null auto_increment primary key, num decimal(10,5), name char(10) )engine=innodb default charset=utf8; 清空表: delete from t1; #自动列信息保留 truncate table t1; #自动列信息清除 删除表: drop table t1; 操作文件中内容 插入数据: insert into t1(id,name) values(1,'alex'); 删除: delete from t1 where id<6 修改: update t1 set age=18; update t1 set age=18 where age=17; 查看数据: select * from t1;
外键:
create table userinfo( uid bigint auto_increment primary key, name varchar(32), department_id int, constraint fk_user_depar 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;