标签:语句 语法 ... MySQL 笔记 查询 学习 表名 select
目录
一、子查询
定义:select语句中嵌套select语句,被嵌套的select语句称为子查询
子查询出现位置: select ...(select).. from ...(select).. where ...(select)..
1、where子句中使用子查询
语法:select 字段 from 表名 where 条件(select 字段 from 表名);
PS:where语句后不能跟分组查询关键字(avg\min\max\ ...)
2、from后使用子查询(常用)
注意:将问题分步处理,将新表与另一张表进行表连接得到所需数据;有时无需看作新表,具体问题具体分析
" " + 字母:表示起别名
3、select后嵌套子查询
语法:select 字段1,字段2(select 字段 from 表名2 where 条件) as 别名(给字段起别名) from 表名1;
二、union(可以将查询结果集相加)
1、语法
PS:使用union上下两段SQL语句查询的字段数必须一样多
union:既可以将两张有关联的表的查询结果相加,又可以将两张不相关联的表的查询结果相加
2、查询结果相加
方法一:select 字段 from 表名 where 条件1 or 条件2;
方法二:select 字段 from 表名 where 条件(字段 in ('...','...'))
方法三:使用union关键字
三、limit
· limit是mysql中特有的,其他数据库中没有,不通用
· limit用于取结果中的部分数据
1、语法机制
limit startIndex,length
startIndex表示起始位置
length表示取几个
语法:select 字段 from 表名 order by 字段 limit 起始位置,取的个数;
PS:省略起始位置时,默认从0位置开始取
2、执行顺序
3、标准分页sql
每页显示pageSize条记录
第pageNo页:(pageNo - 1) * pageSize,pageSize
pageNo:第几页
pageSize:每页几条记录
· 以上DQL部分结束
四、创建表
1、语句
2、常见数据类型
int:整数型(java中的int)
bigint:长整型(java中的long)
float:浮点型(java中的float double)
char:定长字符串(java中的String)
varchar:可变长字符串(StringBuffer\StringBuilder)
data:日期类型(java中的java.sql.Date类型)
BLOB:二进制大对象(存储图片,视频等流媒体信息)
CLOB:字符大对象(存储较大文本)
实际开发中,当某个字段中的数据长度不发生改变的时候,采用char;当数据长度不确定的时候,采用varchar
表名在数据库中一般建议以:t_ 或 tbl_ 开始
五、insert语句插入数据
1、语法
insert into 表名(字段名1,字段名2,字段名3,...) values (值1,值2,值3,...)
要求:字段的数量和值的数量相同,并且数据类型要对应相同
· 当一条insert语句执行成功之后,表格中必然会多一条记录,即使多的这条语句中的某些字段是NULL,后期也不能通过insert语句在该NULL位置插入数据,只能使用update语句进行更新
· insert into 表名(...)——表名后的字段可以省略不写
2、插入多行数据
语法:insert into 表名 (字段1,字段2,...) values (第一条数据),(第二条数据),...;
六、表的复制
1、语法
create table 表名 as select * from 被复制的表名;
2、将表的查询结果插入一张表中
insert into 表名 select * from 被查询的表名;
七、修改(更新)数据
1、语法
update 表名 set 字段1 = 值1,字段2 = 值2,... where 条件;
PS:没有条件整张表的数据全部更新;切记逗号不能写成and
八、删除数据
1、语法
delete from 表名 where 条件;
PS:没有条件表示删除全部数据
2、删除大表
由于delete删除不会释放物理存储空间,所以在删除大表时速度特别慢;删除大表时一般采用truncate(截断) 语法:truncate table 表名;
使用时必须问清楚数据是否还有作用
· 修改表结构直接使用软件即可
标签:语句,语法,...,MySQL,笔记,查询,学习,表名,select 来源: https://blog.csdn.net/weixin_55071129/article/details/122741739
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。