天天看点

mysql

sql是Structured Query Language(结构化查询语言)的缩写。sql是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。

sql规范

在数据库中,sql语句不区分大小写(建议用大写)。但字符串常量区分大小写。建议命令大写,表名库名小写

sql语句可单行或多行书写,以;结尾。关键词不能跨多行或简写

用空格和缩进来提高语句的可读性。字句通常位于独立行,便于编辑,提高可读性

注释:单行注释:--

多行注释:/*.....*/

DDL,DML和DCL

下载

https://dev.mysql.com/downloads/mysql/

mysql

安装

解压到任意目录

初始化服务端

mysql

启动服务端

mysql

客户端连接

mysql

密码默认为空

查看内置的文件夹:show databases;

创建目录:create database db1;

 设置环境变量

 <code>【右键计算机】</code><code>-</code><code>-</code><code>》【属性】</code><code>-</code><code>-</code><code>》【高级系统设置】</code><code>-</code><code>-</code><code>》【高级】</code><code>-</code><code>-</code><code>》【环境变量】</code><code>-</code><code>-</code><code>》【在第二个内容框中找到 变量名为Path 的一行,双击】 </code><code>-</code><code>-</code><code>&gt; 【将MySQL的</code><code>bin</code><code>目录路径追加到变值值中,用 ; 分割】</code>

window服务

安装mysql服务

mysql

出现这个情况用管理员身份运行cmd就能解决

cmd路径:C:\Windows\System32,右键管理员身份运行

mysql

服务安装成功

 如果还不行就结束mysql进程

移除mysql服务

mysql

启动mysql服务

mysql
mysql

一样的效果

或者

mysql

停止mysql服务

mysql

文件夹【数据库】

    文件【表】

        数据行【行】

        数据行

 use 文件夹;     进入这个文件夹

show tables;    查看这个文件夹下的文件

创建表

create table 表名(id int,name char(10)) engine=innodb default charset=utf8

#innodb引擎, 支持事务,原子性操作,推荐写上

create table t1(

列名 类型 null,

列名 类型 not null,

列名 类型 not null auto_increment primary key,

id int,

name char(10)

)engine=innodb default charset=utf8;

null:可以为空

not null:不可以为空

auto_increment表示:自增 一个表里面只有一个自增列

primary key:不能约束(不能重复且不能为空) 加速查找 一个表里面只有一个主键

查看表信息

desc 表名;   查看表结构

show colums from 表名;   查看表结构

show tables;   查看当前数据库中的所有表

show create table 表名 \G;    查看当前数据库表建表语句,\G能竖着看

修改表结构

增加列(字段)

alter table 表名 add 列名 类型[完整性约束条件]

修改列类型

alter table 表名 modify 列名 类型[完整性约束条件]

修改列名

alter table 表名 change 列名 新列名 类型[完整性约束条件]

删除列

alter table 表名 drop 列名 

修改表名

rename table 表名 to 新表名;

修改该表所用的字符集

alter table 表名 character set utf8

修改自增的值

alter table 表名 auto_increment=10

清空表

delete from 表名 下次id从原来的自增

truncate table 表名   速度快,id从1开始

删除表

drop table 表名

mysql

表记录的增删改查

增加表记录

insert into 表名()values()

插入数据,查看数据

mysql

修改表记录

删除表记录

查询表记录

简单查询

 select * from 表名    查看表中所有的数据,*表示所有列

 select name,age,id from 表名  查看表中指定的字段,按列名先后顺序显示

使用where子句,进行过滤查询

order by排序

group by分组查询

聚合函数

limit记录条数限制

正则表达式

外键约束

多表查询

约束条件:

主键一张表只能有一个 

一个主键可以由多个列组成

primary key(非空且唯一):能够唯一区分出当前记录的字段称为主键,加速查找

unique 唯一

not null 非空

auto_increment:自增,和主键搭配着才能用,主键必须是数字类型

数据类型:

数字   

tinyint    unsigned加上这个就是无符号

int

bigint

float

double

decimal  精准  decimal(10,5)总位数,小数点后位数

字符串

char   速度快

varchar    节省空间

最大字符255,大于255用test

ps:创建数据表定长列往前放

上传文件:

文件存硬盘

db存路径

时间类型

datetime 

enum 枚举

set 集合

数据库存储引擎

什么是存储引擎

数据库的表有不同的类型,表的类型不同,会对应不同的存取机制,表类型又称为存储引擎

存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系型数据库中的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

mysql数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎

mysql

mysql支持的存储引擎

mysql常用的数据引擎

mylsam存储引擎

由于该引擎不支持事务,也不支持外键,所以访问速度较快,因此当对事物完整性没有要求并以访问为主的应用适合试用该存储引擎。

innodb存储引擎(主要使用)

由于该存储引擎在事务上具有优势,即支持具有提交、回滚及崩溃恢复能力等事务的特性,所以比mylsam存储引擎占用更多的磁盘空间,因此当需要频繁的更新、删除等操作,同时还对事务的完整性要求较高,需要实现并发控制,建议选择。

memory

memory存储引擎存储数据的位置是内存,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。

blackhole

黑洞存储引擎,可以应用与主备复制中的分发主库

使用存储引擎

方法1:建表时指定

方法2:在配置文件时指定默认的存储引擎

查看

查看用户

mysql

创建用户:

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'

 授权管理:

show grants for '用户'@'IP地址'   查看地址

grant select,insert,update on db1.t1 to 'alex'@'%';  

grant all privileges on db1.* to 'alex'@'%';    除了授权功能其他功能都有,db1数据库下的所有表

revoke all privileges from db1.* to 'alex'@'%';  取消授权

mysql

再开个终端进入

mysql