mysql 基础语法掌握~ This is just the beginning.
create database 数据库名;
drop database 数据库名;
use 数据库名;
create table table_name ( column_name, column_type ); //创建表
//column_type
/**
* 数值、日期/时间和字符串 三大类型
* 数值 范围
tinyint (-128, 127)
smallint (-32 768,32 767)
mediumint (-8 388 608,8 388 607)
int\integer (-2 147 483 648,2 147 483 647)
bigint (-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
float (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
double (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
* 字符串
char 0-255字节 定长字符串
varchar 0-65535 字节 变长字符串
tinyblob 0-255字节 不超过 255 个字符的二进制字符串
tinytext 0-255字节 短文本字符串
blob 0-65 535字节 二进制形式的长文本数据
text 0-65 535字节 长文本数据
mediumblob 0-16 777 215字节 二进制形式的中等长度文本数据
mediumtext 0-16 777 215字节 中等长度文本数据
longblob 0-4 294 967 295字节 二进制形式的极大文本数据
longtext 0-4 294 967 295字节 极大文本数据
*/
drop table table_name; 删除表
修改某一条数据
update student set sex='男' where id=4;
删除数据
delete from student where id=5;
insert into table_name (对应的列表名称) values (对应的值); 向表中添加数据
//多条数据擦汗如的话 需用逗号把值隔开
例如: insert into table_name (对应的列表名称) values (对应的值),(对应的值),(对应的值) ;
select 列名儿/星号(多个,逗号隔开) from 表名儿; 查询数据
select 列名儿/星号(多个,逗号隔开) from 表名儿 where (过滤条件) and (链接其他条件) // or (选择过滤);
select 列名儿/星号(多个,逗号隔开) from 表名儿 where (过滤条件) like '%含有的字符%' and (链接其他条件) // or (选择过滤);
//引号必须要加
//百分号就相当于 任意字符串 中间是要过滤的字符 可以理解为 含有****字符
select 列表名儿 from 表名儿 union all / union select 列表名儿 from 表名儿;
union // 链接两个或多个语句 输入到一个返回结果中 且 返回的结果 不重复
union all // 链接的后的结果全部显示出来 不去重
select * from 表名 order by 列名(,逗号隔开,可以有多个) asc(升序) / desc(降序);
select 列名 from 表名 group by 列名;
可以用到的聚合函数有 avg(求平均值) sum(求和) count(记数) max(最大) min(最小)
count 可以结合 having 语句来实现删除重复数据
select count(*) from table_name group by (列表名) having > 1;
select 列名 from 表名 group by 列名 with rollup;
在 合并分组的基础上继续 求出总和
select coalesce(列名, '代替的名字') from 表名 group by 列名 with rollup;
基于 rollup 计算得来的 综合 名字一般 为 null
coalesce(name, '总数') means: 将名字为空的name, 也就是最后一行计算的总和的名字 改为 总数。
此处 如果名字不为空 则不能替换 只能替换为null的
链表查询
<inner join 选择的是公共部分> 这里可以用
select a.列名,b.列名(选择任何你想要的列数据(注意 此处是两个表的数据都可以的)) from 表名 a(代替名) inner join 表名 b(代替名,和前面一致) on a.列表名 = b.列表名;
<left join> 左表里的所有数据会被查询出来 右表无数据对应 显示的null
select a.列名,b.列名(选择任何你想要的列数据(注意 此处是两个表的数据都可以的)) from 表名 a(代替名) left join 表名 b(代替名,和前面一致) on a.列表名 = b.列表名;
<right join> 右表里的所有数据会被查询出来 右表无数据对应 显示的null
select a.列名,b.列名(选择任何你想要的列数据(注意 此处是两个表的数据都可以的)) from 表名 a(代替名) right join 表名 b(代替名,和前面一致) on a.列表名 = b.列表名;
查询表中某字段为空/不为空的值
select * from 表名 where 列表名 is null;
select * from 表名 where 列表名 is not null;
正则查找
select * from 表名 where 列表名 REGEXP '正则规则';
对存在的数据库表进行增删改;
alter table 表名 add 列名 该列类型 (可以跟 first / after 列名 表示插入列的位置);
alter table 表名 drop 列名;
alter table 表名 modify 列名 字段类型; //只修改字段类型
alter table 表名 modify 表名 修改的类型 not null default 100;
alter table 表名 change 表名 修改后的表名 对应的类型; //连着表名一起修改
修改字段默认值(只有修改默认值的时候用到alter)
alter table 表名 alter 表名 set default 1000;
修改数据库表名
alter table 表名 以前的名字=修改后的名字;
防止数据重复
建表的时候设置
指定字段 primary key(主键) 或者 unique(唯一) 索引
如果我们设置了唯一索引,那么在插入重复数据时,SQL语句将无法执行成功,并抛出错。
insert ignore into //插入的数据如果重复,就忽略插入的数据,数据库中保留 老数据
读取数据的时候 过滤重复数据
select distinct 列名 from 表名; / 使用 group by 来处理
建立新的表格 来存储 不重复的数据
create table table_name select 列表名 from 表名 group by (要获取的列表名);
查询第i条以后到第j条的数据(不包括第i条)
//两个数字
select * from student limit 2,5; 显示从第三条数据开始显示五条数据
//一个数字的时候
select * from student limit 3; 获取前三条数据;
mysql 基础语法掌握~ This is just the beginning.的更多相关文章
- MYSQL基础语法的使用
喜欢的朋友可以关注下,粉丝也缺. MYSQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之 ...
- MYSQL从入门到放弃系列:mysql基础语法
Mysql基本语法 启动MySQL net start mysql 连接与断开服务器 mysql -h 地址 -P 端口 -u 用户名 -p 密码 跳过权限验证登录MySQL mysqld --ski ...
- mysql基础语法之(全文索引)
1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引.对于FULLTEXT索引的内容可以使用MATCH()…AGAIN ...
- Mysql 基础语法1
MySQL的软件架构 1.开启MySQL服务器:以windows服务的形式开启,在cmd下net startmysql|net stop mysql,在cmd下使用mysqld –default-fi ...
- 一. MySQL基础语法
1. 案例库表 2. DQL语言(数据查询) 2.1 基础查询 -- 进入指定的库 USE myemployees; DESC employees; -- 使用SELECT查询字段 # 1.查询表中的 ...
- mysql基础语法及拓展到web中的sql注入
本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建, 昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, ...
- mysql 基础语法
以下为自己学习mysql 的一些笔记,以方便查询 目录 一. ALTER的 语法 二. 表的完整性约束 三. 索引的操作(mysql 数据库支持至少 16 个索引) 四. 视图的操作 五. 触发器的操 ...
- MySQL基础语法命令
1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: ...
- Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)
前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...
随机推荐
- Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(下)Samba经典应用案例
五.[Samba应用案例二] 设置Samba共享目录/software,允许用户jack和mary可以通过Windows客户端访问,并具有读写权限. 1.创建目录/software,添加用户jack, ...
- 【翻译】在Ext JS中创建特定主题的重写
Ext JS提供了大量的功能来使类的创建和处理变得简单,还提供了一系列的功能来扩展和重新现有的Javascript类.这意味着可以为类添加行为和创建属于自己的类,或者重写某些函数的行为.在本文,将展示 ...
- FPGA学习笔记(二)模块建立及变量连接
Verilog所写的工程是由一个一个的模块连接起来的,每个文件代表一个模块,模块的名字和文件名要保持一致,一个模块的基本声明方法为: //FileName:main_module module mai ...
- infiniDB的论坛
http://infinidb.co/community 包括了基本的内容. 安装目录?
- x265 (HEVC编码器,基于x264) 介绍
x265要出来了.简单翻译了一下项目网站首页的介绍. x265是一个开源项目,是一个将视频编码为h.265/高效率的视频编码(HEVC)格式的免费的库,在GNU GPL条款下发布.它的源代码是免费提供 ...
- StarUML配置Word生成文档模板
来源:fasiondog 许多UML建模工具可以自动生成文档,让需求人员.开发人员专心于需求.设计的建模.当然为了能够生成符合自己要求的模板,需对建模时的目录结构(模型和包)有所规划和要求,否则很难生 ...
- 【Android 应用开发】Android中的回调Callback
回调就是外部设置一个方法给一个对象, 这个对象可以执行外部设置的方法, 通常这个方法是定义在接口中的抽象方法, 外部设置的时候直接设置这个接口对象即可. 例如给安卓添加按钮点击事件, 我们创建了OnC ...
- winform编程设定listview选中行
在做项目中,需要用到listview显示数据.同时,项目要求,通过检索用户输入的数据,程序通过搜索,确定数据所在的行并通过程序设定为选中状态并高亮显示.同时,正常响应鼠标单击响应的效果,单击时,程序设 ...
- linux下分割和重组文件
linux shell命令里的split和cat命令可以轻松完成这两个功能,举个例子来说,比如一个1GB大小的文件foo.zip,以100M为块分割: 分割: split -b 100M -d foo ...
- ruby读取源代码自身的一种方法
我们知道ruby中如果源代码中一行开头(必须在行的开头)有__END__标示,则表示下面的都是数据行,可以用IO对象DATA来访问这些行.但是如果我们用DATA.rewind一下的话,就可以将文件流指 ...