新增
1.单行插入 insert into 表名 values (值,值...);
2.指定列插入 insert into 表名 (列名,列名...) values (值,值...);
3.多行插入 insert into 表名 values (值,值...), (值,值...)...;
查询
1.全列查询 select * from 表名;
2.指定列查询 select 列名,列名... from 表名;
3.查询带表达式 select 表达式 from 表名;
4,查询带别名 select 表达式 as 别名 from 表名;
5.查询去重 select distinct 列名 from 表名;
6.查询结果排序 select 列名 from 表名 order by 列名 asc/desc; 升/降
7.条件查询 select 列名 from 表名 where 条件;
(基本:and且 or或 范围 [前闭后闭的]:between...and... in 模糊 like %_ is null )
8.分页查询 select 列名 from 表名 limit N offset M;
修改
update 表名 set 列名 = 值, 列名 = 值... where 条件
删除
delete from 表名 where 条件; 删除条件控制的列
delete from 表名; 删除所有列
修改表结构的关键字都是 alter table 表名 ,再跟具体修改的语句
添加表字段
alter table table_name add 字段名称 字段类型
删除表字段
alter table table_name drop 字段名称
修改表字段
alter table table_name change 旧字段名称 新字段名称 字段类型
alter table table_name modify 字段名称 字段类型
目录
insert into 表名 values (值 , 值 ...);
(1)这里值的类型和个数,要和表的列的类型和个数要匹配
(2)使用单引号和双引号都可以表示字符串
(3)在创建数据库时就要确定好,要使用的字符集


在SQL中,没有字符类型,使用单引号和双引号都可以表示字符串
🤠 下面看这个

如果我们放入的字符是汉字就会报错,这是因为MySQL默认是拉丁文,是不支持中文的
下面可以输入SHOW VARIABLES LIKE 'character%';查看字符编码方式

1. 如果要支持中文,那就要重新创建数据库来支持中文比如utf8
create database 数据库名 character set utf8;
但这种方法,每次创建库时都要指定,比较麻烦
2. 还可以,直接修改mysql配置文件,把数据库字符集配置成默认的想要设置的字符集
这样以后就不用指定,可以直接插入了
下面来修改一下mysql配置文件
(1)先找到一个my.ini的文件
可以搜索电脑中的服务找到mysql这一项,点击属性


(2)在电脑中找到这个路径下的my.ini文件,先备份,然后再打开它

(3)分别找到mysql和mysqld下的 这两项去掉# 给后面加上utf8保存
(4)重新启动服务器,重新建库、建表
指定列插入 多行插入
insert into 表名(列名,列名...) values (值,值,,,); 指定列插入
insert into 表名 values (值,值...),(值,值)...; 多行插入

select * from 表名; 查询出当前表所有的行,和所有的列

select 列名 from 表名;

这里查询只能看见两列,不代表其它列被删除,这只是一个临时表
临时表示根据服务器的数据生成的,所有的查询操作,都不会影响服务器磁盘上的数据
select 表达式 from 表名;

表达式查询,列和列之前进行计算

如果列和列之间计算,加上字符就会发出警告
临时表的列名,就是表达式的内容,这样看不美观,可读性不高
所以可以在查询时,给临时表的列指定别名
select 列名 as 别名 from 表名;

select distinct 列名 from 表名;

升序排列 select 列名 from 表名 order by 列名(排序列); 或者给后面加asc
降序排列 select 列名 from 表名 order by 列名(排序列) desc;

降序排序,要在最后加上desc

指定多个列排序,哪个列在前,哪个列优先级高

也可以分别,指定一个列升序,一个列降序
查询时指定筛选条件, where 子句来表示子句
select 列名 from 表名 where 条件;
条件查询需要注意各种运算符,这里特别说明
= :等于,NULL不安全,例如:null = null 的结果是null
<=> : 等于,null安全,例如:null<=>null 的结果是true
按条件,查询单行

按条件,两行比较

按条件表达式,进行查询


and和or

(1)between...and... 范围是前闭后闭的
当表很大时,条件查询遍历表,效率非常低
所以可以优化查询,最有效的方法是根据索引
(2)in

依赖一些通配符来表示要匹配的值是啥样的(like 匹配的是0个以上的字符,包含0)
% 代替任意个任意字符 _代替一个任意字符

like 匹配时比较低效的
NULL的查询
is null / is not null

很多时候数据太多,分成多个页进行显示
select 列名 from 表名 limit N; 查询前N条记录
select 列名 from 表名 limit N offset M; 从第M条记录开始,


update 表名 set 列名 = 值, 列名 = 值 ... where 条件;



delete from 表名 where 条件;

要是不写条件,就全部删除了 ,但是表换在,只是表剩一个空表了

文章目录一、概述简介原理模块二、配置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
我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。
RGeo有可用的凸包方法,但在这方面根本没有文档。给定一组点,我如何找到它们的凸包? 最佳答案 好问题。事实证明,有一种名为“MultiPoint”的几何类型适用于此。我做了一个简单的例子来测试它,它似乎运行良好。f=RGeo::Geos.factory(:srid=>3361,:buffer_resolution=>8)#mytypicallocalrectilinearprojectionfactorywithmydefaultsettings.coords=[[1,1],[2,2],[1,3]]points=[]coords.
使用rubyonrails,我想做类似的事情:@tasks=Task.where(:def=>true||:house_id=>current_user.house_id)执行此操作的最有效/最干净的方法是什么? 最佳答案 你可以这样做:Task.where("def=?orhouse_id=?",true,current_user.house_id)一般情况是:Model.where("column=?orother_column=?",value,other_value)您还可以利用Arel:t=Task.arel_tabl
目录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