登录

命令:mysql -h [IP 地址/域名] -P [端口] -u [用户名] -p[密码]

端口默认是3306

mysql -hlocalhost -uroot -p

断开

exit;

\q; 或quit;

创建一个数据库,就会产生对应存储数据的的文件夹,每个文件夹下都有opt文件,保存对应的数据库选项。数据库选项有字符集和校对集。

显示数据库

系统数据库:information_schema :保存数据库所有的结构信息。

mysql:保存权限关系

performance_schema:效率库

显示部分数据库:

show databases like "匹配模式"

_:当前位置匹配单个字符

%:匹配多个字符

数据表

表选项:engine:存储引擎;

charset:字符集

collate:校对集

create database.table(

字段名 字段类型,……

)engine= innodb charset=utf8;

复制一个表结构:create table newtable like database.table1

每创建一个数据表,在数据库文件夹下会创建一些文件(如.frm)

查看表结构:desc 表名

查看数据表创建语句:show create table 表名;

修改表结构:alter table 表名 add 字段 属性 first/after 字段;

修改表字段:alter table 表名 change 旧字段名 新字段名 字段类型;

修改字段属性:alter table 表名 modify 字段名 新类型;

删除字段:alter table 表名 drop 字段;

删除表:drop table 表名;

插入数据:

insert into 表名 (字段列表) values (对应字段列表的值); 值列表只需与字段列表对应即可,无需与表结构相同。

查询数据:

查询所有数据:select * from 表;

查询部分数据:select 字段1,字段2,字段3 from 表;

条件查询: select 字段/* from 表 where 条件;

删除数据:delete from 表名 [条件];

更新数据:update 表名 set 字段=新值 where 条件;

显示长度:类型后边的数字指显示长度,指最长可以显示的长度。

zerofill:从左侧填充0.

mysql中小数分浮点型(float、double)和定点型(decimal),定点型可以保证整数部分的精确,浮点型只有前7位可能精确。

定点数应用:涉及钱的时候用定点数

时间日期类型:

date:3个字节,格式为YYYY-mm-dd

time:3个字节,格式为HH:ii:ss

datetime:8个字节,格式为date和time的合并

timestamp:时间戳,格式与datetime相同,默认为当前时间,不能为空。timestamp的记录如果被更改,自己会自动更新。

year:1个字节 范围为1900-2155年。

通常时间的处理在编程中处理,mysql中只保存时间戳,用整数存储。

列属性

NULL,default,comment ,主键,自增长,唯一键。

增加主键:create table 表名(字段 类型 primary key,……) charset utf8;

create table 表名(字段 类型,……,primary key(字段))charset utf8;

alter table 表名 add primary key(字段);

删除主键:alter table 表名 drop primary key;

主键约束:当前字段不能为空,字段的数据不能有重复。

唯一键,创建方式与主键类似。

新增数据:

主键冲突解决方案:

主键冲突更新:如果插入的过程中主键冲突,采用更新方法

insert into 表名 values(值列表) on duplicate key update 字段=新值;

主键冲突替换:主键冲突后,删除原来的数据,重新插入新数据。

replace into [字段列表] values(值列表);

蠕虫复制:从已有的数据中获取数据,并将获取到的数据插入到数据表中。

insert into 表名(字段) select */字段 from 表名;

应用:通常复制的是重复数据,可以在短期内快速增加表的数据量,从而测试表的压力,还可以测试表的索引。

更新数据:

update 表名 set 字段名 = 新值 where 判断条件

如果没有条件,是全表更新,可以使用limit 来显示更新的数量。

update 表名 set 字段名 = 新值 [where 判断条件] limit 数量;

查询数据:

select 选项 字段列表 from 数据源 where 条件 group by 条件 having 条件 order by 条件 limit 限制;

选项:all(默认),distinct

别名:字段 [as] 别名

数据源:from 表1,表2……

动态数据:from [子查询] as 别名;

select * from (select * from table) as alias;

group by : 是为了分组后进行数据统计,将数据按照字段分组后,只会保留每组的第一条记录。count()统计每组中的数量;avg();group_concat(字段):将指定的字段合并。

group by多分组:group by 字段1,字段2;

group by分组排序:group by 字段1 [asc|desc],字段[asc|desc];

h回溯统计:group by 字段[asc|desc] with rollup;

having:

1.用于筛选条件,与where的区别是,having 用在group by后边,用于对分组的数据进行条件筛选,可以使用聚合函数,where是从表中取数据,将数据从磁盘装进内存。

order by:

order by 字段1,字段2……;先按字段1排序,后按字段2排序

limit:

应用:1、用来限制记录获取的数量

2、分页,用来获取指定区间的数据:limit offset,length;

联合查询

union:select 字段 union select 子句;默认去重。

使用order by时,两个select要括起来。且必须加limit才能生效。

行子查询:

主查询 where 条件 (构造行元素)=(行子查询);在行子查询中就可以使用聚合函数。

列子查询:

主查询 where 条件 字段 in (列子查询);

行子查询和列子查询都属于where子查询;

表子查询:

返回多行多列;用于from数据源,属于from子查询。

select 字段表 from (表子查询) as 别名……;

exists子查询:

where exists(查询语句);

整库数据备份(SQL数据备份)

不只备份数据,还备份sql指令。

产生的备份结构很大,不适合特大型数据备份,也不适合数据变换频繁型的数据库备份。

语法:mysqldump -hPup 数据库名 > 备份地址

整库备份

单表备份

多表备份

数据还原:

1、使用mysql客户端:mysql -hPup 数据库

2、导入sql指令

source SQL文件位置

mysql用户管理

mysql中所有的用户信息保存在mysql库中的user表中

创建用户:create user '用户名'@'' identified by '密码';

删除用户:drop user '用户名'@'IP主机';

更改密码:set password for 用户=password();

权限管理:

数据权限:增删改查

结构管理(create\drop)

管理权限(create user\grant\revoke)

授予权限:

grant 权限列表 on 数据库.表 to 用户;

取消权限:

revoke 权限列表 on 数据库.表 from 用户;

刷新权限:

flush privileges;

事务

自动事务:

客户端发送一条sql指令后,服务器不用等待用户反馈,自动将结果同步到数据表。

系统通过autocommit变量来控制,可通过show variables like "autocommit"查看。

关闭自动事务:set autocommit =off;

自动事务关闭后,使用commit命令提交同步到数据表,使用rollback命令回滚,清空之前的操作。提交命令后,在当前客户端可以看到提交后的数据。

手动事务:

需要用户手动发送事务操作指令实现。

对应的命令:

1、start transaction;//这条语句后面的所有语句都不会直接写入数据表

2、事务处理;

3、事务提交:commit、rollback;

回滚点:savepoint,事务中前面一部分事务执行成功,无需重新执行则在该点设置一个记号,如果后面的事务执行失败,则回到这个位置。

增加回滚点:savepoint 回滚点名字;

回到回滚点:rollback to 回滚点。

mysql中整理设置__MySQL整理相关推荐

  1. 在mysql中怎样设置值唯一_mysql怎么设置行值唯一?

    mysql可通过给行(字段)添加唯一性约束来设置行值唯一,语法格式"CREATE TABLE 表名 (字段名 数据类型 UNIQUE);"和"ALTER TABLE 表名 ...

  2. mysql中如何设置时区_如何设置MySQL的时区?

    我认为这可能是有用的: 有三个位置可以在MySQL中设置时区: 在[mysqld]部分中的"my.cnf"文件中default-time-zone='+00:00' @global ...

  3. mysql中的各种join整理

    Join可以分为两种 ①implicit join ②explicit join 举例如下: 类型 SQL举例 explicit join SELECT * FROM A a JOIN B b ON ...

  4. mysql中如何设置定时任务_mysql设置定时任务

    今天遇到了个须要天天定时执行的任务,在mysql数据库里面提供了这样的功能,正好整理下分享出来.mysql 1.首先检查是否开启了定时任务sql 查看event是否开启 : SHOW VARIABLE ...

  5. mysql中如何设置过滤器_mysql 如何动态修改复制过滤器

    MySQL动态修改复制过滤器 说说今天遇到的问题吧,今天在处理一个业务方的需求,比较变态,我大概描述一下: 1.线上的阿里云rds上面有个游戏的日志库,里面的表都是日表的形式,数据量比较大了,每次备份 ...

  6. mysql 自定义序列号_在mysql中怎样设置,才能自动添加序列号

    事件发生的线程ID(THREAD_ID) 活动名称(EVENT_NAME) 起止时间戳以及事件的总持续时间(TIMER_START,TIMER_END 和 TIMER_WAIT) 在事件停止之前完成的 ...

  7. mysql 中手动设置事务提交

    一 描述 一般情况下,mysql的默认情况下 autocommit = 1,是自动提交事务的.autommit 是 session 级别的,就是当前连接更改了 autocommit,对其他连接没有影响 ...

  8. MySQL中如何设置外键

    下面我将以举例的方式说明,作者能力有限,欢迎指正和补充.也欢迎和我交流探讨~ 一.环境 Windows操作系统,MySQL 5.7 二.使用工具 Navicat 三.前提知识 1.什么是主键 Prim ...

  9. mysql中如何设置定时任务_mysql如何实现设置定时任务 mysql实现设置定时任务方法...

    本篇文章小编给大家分享一下mysql实现设置定时任务方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.首先检查是否开启了定时任务 查看event是否开启 : SHOW ...

最新文章

  1. linux shell 输出文件 指定行
  2. sql limit 的用法
  3. oracle_j000,Process J000 died, kkjcre1p: unable to spawn jobq slave process引起的宕机
  4. 【Python 标准库学习】数据科学计算库 — math
  5. SAP License:MES与ERP系统如何分工合作
  6. 7. 吴恩达机器学习课程-作业7-Kmeans and PCA
  7. OSPFv3中LSA详解(八)——Type5类LSA详解
  8. R 语言之数据分析高级方法「GLM 广义线性模型」
  9. IOS CA服务器和客户端的配置
  10. JavaScript栈和队列方法(Array类型)
  11. 复习JQuery validate验证规则
  12. foxmail 登陆gmail报密码错误
  13. Pandas-csv格式转tsv格式
  14. RIP1实验1(实现不同路由器 不同PC机之间的通信)
  15. 一个对中国房地产业忧心忡忡的金融博士生
  16. 淘宝电商api接口获取商品类目信息
  17. 零基础学Python--------入门篇 第1章 初始Python
  18. VisionMaster的脚本模块调试
  19. 基于遗传算法求解TSP问题(旅游路径规划,Python实现,超详细,可视化,结果分析)
  20. C#Winform中DataGridView控件下的右键菜单事件获取行值方法

热门文章

  1. 将数组按指定大小分组
  2. vs服务器连接xp系统,xp系统远程连接服务器
  3. php xml 四种,xml中常见的四种解析方式是什么?
  4. Java黑皮书课后题第10章:10.3(MyInteger类)设计一个名为MyInteger的类
  5. mysql 远程连接
  6. Ex 2_5 求解递推式..._第三次作业
  7. 初识canvas,使用canvas做一个百分比加载进度的动画
  8. 博客作业——创建个人技术博客(建议在cnblogs.com上创建),并写一个自我介绍,列出你对这门课的希望和自己的目标。同时具体列出你计划每周花多少时间在这门课上(包括上课时间)。...
  9. Fortran 入门——函数调用
  10. SqlConnection中 Close()Dispose()Using()的区别