------------------ 操作mysql的命令 --------------------
cmd命令行中查看mysql版本:
mysql -V
mysql --version
登陆mysql:
mysql -uroot -pluis
mysql -uroot -p
在mysql中查看数据库版本:
select version();
查看所有数据库:
show databases;
切换数据库:
use xxx;
查看当前库中的表:
show tables;
查看其他库中的表:
show tables from 库名;
创建数据库:
create database xxx;
删除数据库:
drop database xxx;
导表:(需要先有数据库)
source sql脚本;
查看表结构:
desc 表名;
查看当前库:
select database();
终止一条语句:
\c
退出mysql:
exit 或 Ctrl + c
查看某建表语句:
show create table 表名;
------------------ SQL语句 --------------------
条件查询 between and
条件查询 is null 和 is not null
and or
条件查询 in
模糊查询 like
数据排序 desc 和 asc
分组函数 group by
多字段分组查询
group by 之 having 二次过滤
去除重复记录 distinct
判空函数 ifnull()
内连接、外连接、全连接
内连接:等值连接、非等值连接、自连接
外连接:左外连接、右外连接
多表连接查询
够用测试题:找出每一个员工的部门名称、工资等级以及上级领导(内连接和外连接之多表查询)
select、where、from 后嵌套子查询(from后接子查询用的最多)
union 数据拼接
分页查询 limit mysql特有
desc asc 默认升序
count() 分组函数/多行处理函数
分组函数(sum,count,max,min,avg)自动忽略null
分组函数不可直接用于while子句中,因为分组函数是在group by之后执行,而group by是在while之后执行
ifnull() 空处理函数 有null参与的运算结果都为null
count() 和 count(字段) 区别:
count(*) 统计总记录条数
count(字段) 统计不为null的该字段记录的条数
分组函数一般都会和group by联合使用
重要结论:当一条语句后面有group by的话,select后面只能跟分组函数和参与分组的字段,其他
字段不能跟,有的话会有问题!(mysql中无意义,oracle中直接报错。)
多字段联合分组:group by后使用逗号分隔,按照字段先后顺序进行分组。
查询结果去重用distinct关键字
distinct出现在多字段最前面表示多字段联合去重
建表create、添加数据insert、修改数据update、删除数据delete、删除大表中数据truncate(留表头,删其他数据,不可回滚,永久删除)
表的复制create as select、表的删除drop
总结 DQL 语句执行顺序:
select 5
xxx
from 1
xxx
where 2
xxx
group by 3
xxx
having 4
xxx
order by 6
xxx;
约束:
非空约束: not null 只存在列级
唯一性约束:unique 列级&表级(唯一不可重复,但是可以为null)
主键约束:primary key 列级&表级(唯一不可重复,且不可为null)
外键约束:foreign key(字段) reference 表名(一般填父表主键)
原则:
删除:先删除子表,再删除父表
建表:先创建父表,再创建子表
主键自增:primary key auto_increment
三大搜索引擎:
MyISAM(不支持事务,但可压缩,占空间小,最常用的)
InnoDB(支持事务,安全,但执行效率较低,mysql默认引擎)
MEMORY(不支持事务,但查询效率最高,数据存在内存中,断电清空)
事务四大特性:
原子性:最小单元,不可再分
一致性:同时成功,同时失败
隔离性:四大隔离级别(读未提交、读已提交[oracle默认]、可重复读[mysql默认]、串行化读)
使用分组函数后,查询的时候只允许有参与分组的字段和分组函数,其他字段不允许写,
写了的话,其结果显示无意义。在oracle中会报错!
DQL 数据查询语言 (Date Query Language) select
DML 数据操控语言 (Date Manipulation Language) insert delete update
DDL 数据定义语言 (Date Definition Language) create drop alter
TCL 事务控制语言 (Transactional Control Language) commit rollback
DCL 数据控制语言 (Data Control Language) grant revoke
数据库设计三范式:
第一范式:所有表必须有主键,每个字段原子性不可再分
第二范式:所有非主键字段完全依赖主键,不能产生部分依赖
第三范式:所有非主键字段完全依赖主键,不能产生传递依赖
口诀:
多对多,三张表,关系表两个外键。
一对多,两张表,多的表加外键。
目的:减少数据冗余
提醒:实际开发中,以满足客户需求为主,有时候会拿冗余换执行速度。
(多表联查会降低执行速度,放一起虽然冗余,但效率有时会高一些)
一对一设计两种方案:主键共享、外键唯一
情景:用户登录和用户详情,登录单独出一张表就不用查全部信息。
分组函数是在分完组后可用,所以可以用在having二次过滤中!!!
select
deptno,count(*)
from
emp
group by
deptno
having
count(*) >= 5;
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?
我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。
目录1、yum安装mysql修改密码(1)在mysql里面修改(2)第二种方式,利用mysqladmin修改密码2、没有密码,登录mysql修改密码3、mysql的安全设置1、yum安装mysql在CentOS中默认安装有MariaDB(MySQL的一个分支),安装完成之后可以直接覆盖MariaDB。rpm-qa|grepmariadb查询是否安装了mariadbrpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64卸载mariadwgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.
我是Ruby的新手。我安装了DataMapper并且正在尝试安装dm-mysql-adapter-1.0.2gem。但是当我尝试安装时,出现以下错误。我正在使用ubuntu操作系统。vinoth@vinoth-laptop:~/Downloads$geminstalldm-mysql-adapter-1.0.2----with-mysql-lib=/usr/lib/mysql----with-mysql-conf=/usr/bin/mysqlWARNING:Installingto~/.gemsince/home/vinoth/gemsand/home/vinoth/gems/bina
我目前正在构建一个需要mysql2gem的RoR项目。我成功安装了gem。因为它出现在我的gem列表中。[root@vc2cmmka035538nsimple_cms]#gemlist***LOCALGEMS***actionmailer(3.2.3)actionpack(3.2.3)activemodel(3.2.3)activerecord(3.2.3)activeresource(3.2.3)activesupport(3.2.14,3.2.3)arel(3.0.2)bigdecimal(1.1.0)builder(3.2.2,3.0.0)bundler(1.1.5)c2c_li
我想使用托管在我自己服务器上的mysql数据库。我已经更改了DATABASE_URL和SHARED_DATABASE_URL配置变量以指向我的服务器,但它仍在尝试连接到heroku的amazonaws服务器。我该如何解决? 最佳答案 根据Herokudocumentation,更改DATABASE_URL是正确的方法。Ifyouwouldliketohaveyourrailsapplicationconnecttoanon-Herokuprovideddatabase,youcantakeadvantageofthissamemec
使用mysql2做查询总是得到警告/usr/local/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:463:warning::database_timezoneoptionmustbe:utcor:local-defaultingto:local我确实看到了时区选项Mysql2现在支持两个时区选项::database_timezone-thisisthetimezoneMysql2willassumefieldsarealreadystored