MYSQL
梗概
scrapy 爬虫;
2018.06.06
socket 插座,端
服务端
客户端
DBMS database manager system 数据库管理系统
关系型数据库: 【约束】 sqlserver db2 mysql access oracle
非关系型数据库:MongoDB 、redis
1、:mysql安装
技能
安装 mysql
服务端:mysqld.exe
客户端:mysql.exe
初始化:
服务端:
--initialize-insecure
cmd中cd 路径至D:mysqlmysql-5.7.22-winx64in后,执行mysqld --initialize-insecure
默认用户名root,密码 空;
启动服务端
直接执行 mysqld
启动客户端:
mysql
登录mysql -u root -p
show databases; 显示data下文件夹;
create database db1;创建文件夹db1
添加环境变量
windows 服务;相当于后台进程
D:mysqlmysql-5.7.22-winx64inmysqld --install 服务安装
D:mysqlmysql-5.7.22-winx64inmysqld --remove 服务移除
net start MySQL 服务启动
net stop MySQL 服务停止
2、关于连接
文件夹【数据库】
文件【表】
数据行【行】
数据行
数据行
连接:
默认用户:root
创建用户:
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.* to 'alex'@'%'; --所有权限
revoke all privileges on db1.* to 'alex'@'%'; --移除权限
use mysql 进入文件
show databases;
use 数据库名称;
show tables;
select * from 表名;
3、学习SQL语句规则
操作文件夹
create database db2; 创建
create database db2 default charset utf8; 字符编码utf8
show databases; 查看
drop database db1; 删除
操作文件
use db2;
show tables;
create table t1(id int,name char(10) ) default charset =utf8;
create table t3(id int auto_increment primary key,name char(10) ) default charset =utf8;
create table t1(
列名 类型 null,
列名 类型 not null,
列名 类型 not null default 1,
列名 类型 not null auto_increment primary_key,
id int,
name char(10)
) engine=innodb default charset =utf8;
# innodb 支持事务 原子性操作
# myisam 支持全局索引、存储速度相对快;
# auto_increment 表示 自增;
# primary key 表示约束(不能重复且不能为空); 加速查找
create table t1(
Id int not null auto_increment primary_key,
name char(10)
) engine=innodb default charset =utf8;
清空表
delete from t1;
truncate table t1;
删除表
drop table t1;
操作文件中内容
插入数据
insert into t1(id,name) values(1,'陈飞');
查看数据:
select * from t1;
更新数据
update
删除数据
delete
数据类型
tinyint
int
bigint
float
double
decimal 指定精度小数
char 自动填充位数
varchar 不填充;
时间
date
time
datetime
外键:节省空间、约束
create table userinfo(
uid bigint auto_increment primary key,
name varchar(32),
department_id int,
constraint fk_user_depart foreign key ("department_id",) references department('id')
)engnie=innodb default charset=utf8;
create table department(
id bigint auto_increment primary key,
title char(15)
)engnie=innodb default charset=utf8;
http://www.cnblogs.com/wupeiqi/articles/5729934.html
第二讲:
1、回顾内容
一张表只能有一个主键;
一个主键可以有两列合起来做主键。
create table t1(
nid int(11) not null auto_increment,
Pid int(11) not null,
num int(11) null,
primary key (nid,pid)
)engnie=innodb default charset=utf8;
create tabel t2(
id int auto_increment primary key,
name char(10),
id1 int,
id2 int,
constraint fk_t1_t2 foreign key (id1,id2) references t1 (nid,pid)
)engnie=innodb default charset=utf8;
数据行
insert into tb1(name,age) values('chen',18);
delete from tb1;
truncate tabel tb1;
delete from tb1 where id > 10;
update tb1 set name='root' where id > 10;
select * from tb1;
select * from tb1 where id > 10;
create table t10(
nid int(11) not null auto_increment,
Pid int(11) not null,
num int(11) null,
primary key (nid,pid)
)engnie=innoDB auto_increment=4 efault charset=utf8;
alter table t10 set auto_increment = 2;
disc t10;
show create table t10;
show create table t10 G;
alter table t10 set auto_increment = 2;
自增 步长
SQL语句数据行操作补充
增
insert into tb11(name,age) values('chenfei',12);
insert into tb11(name,age) values('zhangfei',12),('root',18);
insert into tb12(name,age) select name,age from tb11;
create tb11(
id int auto_increment primay key,
name varchar(32),
age int
)engine=innoDB default charset=utf8;
删
delete from tb12;
delete from tb12 where id !=2;
改
update tb12 set name='alex' where id>12 and name='xx'
update tb12 set name='alex',age= 134 where id>12 and name='xx'
查
select * from tb12;
select id,name from tb12;
select id,name from tb12 where id> 12;
as 别名;
条件:
where in, not in, between and,
通配符:
a%
select * from tb12 limit 10; 取前10行;
select * from tb12 limit 10 offset 20; 取前10行;
offset 从。。。开始;
limit 取。。。行数;
排序
order by id
select * from tb12 order by id desc; 降序;
select * from tb12 order by id asc; 升序;
取最后10条;
select * from tb12 order by id desc limit 10;
分组:
group by
select count(id),part_id from userinfo5 group by part_id;
Day 59;
MYSQL基础入门
关系型数据库: 【约束】 sqlserver db2 mysql access oracle
数据库概念介绍
互联网的瓶颈:数据库、存储
数据库种类介绍及关系型数据库原理
数据库:
存放数据的仓库,这个仓库按照一定的数据结构来组织、存储的。
我们可以通过数据库提高的多种方法来管理数据库里的数据。
数据库种类
层次式数据库、网络式数据数据库、
关系型数据库、非关系型数据库(NOSQL数据库)
关系型数据库介绍
模型把复杂的数据结构归结为简单的二元关系。(即二维表格形式)
在关系数据库中,对数据的操作几乎都建立在一个或多个关系表格上,通过对这些关联表格的分类、合并、连接或选取等运算来实现数据的管理。
典型产品:MYSQL、oracle
MYSQL产品2008年被sun公司收购,oracle收购sun公司;
工具:access Power Builder
什么是关系型数据库特点:
1、 类似于excel的二维表;
2、 使用结构化查询语言进行存储;
3、 代办作品:oracle 、mysql
典型产品:
Oracle 数据库
市占率数一数二。
太笨重、太贵、扩展困难。
主要应用范围:传统大企业、大公司、政府、金融、证券;
Mysql数据库
中小型数据库;
体积小、速度快、成本低、开发源代码;
主要应用于:互联网领域、大中型网站、游戏公司、电商平台、BAT都在用
MariaDB数据库
Mysql数据的一个分支;
Mysql被oracle收购后,诞生的;
累计性行业、
SQL Server数据库
微软平台下的数据库;
主要应用范围: 微软平台下的开发应用;
Access数据库
微型数据库
入门级桌面数据库;
应用范围: 早期留言板、校友录
其他 db2、
非关系型数据库(NoSQL)
需求背景:web2.0网站的兴起,用户为主题;
Google的bigtable,
amazon的dynamo
Facebook的cassandra
Apache的HBase
Redis mongodb 典型产品
Key-value数据
面向列数据库
面向文档数据库(Document-Oriented)
典型产品:MongoDB,CouchDB
面向图形(g)数据库
非关系型数据库种类
Memcached数据库
纯内存缓存软件,一旦重启所有数据丢失
Memcachedb 数据库
新浪再用
Redis(key-value)数据库
数据都是缓存在内存中,区别是redis会周期性的吧更新数据写入磁盘。
MongoDB数据库
非关系数据库中比较丰富的一个产品;
Cassandra
MySQL数据库
介绍:
中小型数据库;
体积小、速度快、成本低、开发源代码;
主要应用于:互联网领域、大中型网站、游戏公司、电商平台、BAT都在用
SQL:结构化查询语言
绝大多数使用linux操作系统的大中小互联网网站都在使用MySQL作为其后端的数据库存储。
体积小、品牌口碑效应、LAMP、LEMP流行架构;
版本:
商业版
组织管理、测试严格;
收费
社区版
成熟产品,社区版、商业版性能差异不大;
免费
这两个版本有分别分4个版本:
Alpha版:内部版本,不对外公开。
Beta 版:测试版。
RC 版: 候选版,发布前的最后一个小版本;
GA 版: 正式发布版本;
产品路线
5.1版本后,规划了3条产品线。
安装方式
rum/rpm安装:
大的门户把源码根据企业要求制成rpm,搭建yum仓库;
二进制方式免编译安装
gmake install
gmake是GNU Make的缩写。
Linux系统环境下的make就是GNU
Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。
比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译。
Mysql多实例介绍
开启不同的服务端口。
问题:
某实例并发高或执行慢查询时,其他实例会受到影响;
应用场景:
资金紧张
门户网站应用
耦合性太高。
Navicat使用;
备份:数据表结构+数据;
备份:数据表结构
--临时表
select num from (select num,course_id from score where num>60) as B;
注释
Char 定长;
Varchar 不定长
数字:整数、小数、
字符串
时间
主键;复合主键:多列组合唯一。
索引:
主键索引
唯一索引
外键: 一对多; 一对一;
多对多
数据行:
增、删、改、查、
查 in not in between and
Limit
Group by having
Order by
Like
Join on
临时表
数据字典提取语句
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT from information_schema.columns where TABLE_SCHEMA='haolei'
在新建查询中写入如下查询
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT from information_schema.columns where TABLE_SCHEMA='数据库名'
点击运行,也可以右键——>运行当前语句
10.10.10.1
MYSQL如何设置大小写敏感
2017年06月05日 13:53:51 chpllp 阅读数:12428
1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中
0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
linux下MySQL停止和重启
一、启动方式
1、使用linux命令service 启动:
service mysqld start
2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:
safe_mysqld&
二、停止
1、使用 service 启动:
service mysqld stop
2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld stop
3、 mysqladmin shutdown
三、重启
1、使用 service 启动:
service mysqld restart
2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld restart
备注:查看mysql端口是否已经使用,使用netstat -anp 命令查看服务器端口使用情况。
End