mySQL 函数

InnoDB和MyISAM的使用场合
MyISAM储存引擎:由于不支持事物处理,也不支持外键,访问速度比较快,以访问为主优先选择。
InnoDB储存引擎:在事务处理上有优势,有事物控制能力,可以保证事物的完整性,还可实现并发控制。这样的需求优选。
默认引擎的的更改:在配置文件my.ini文件中可以修改。
修改defaultstorage-engine=InnoDB
也可以在创建表时修改:engine=MyISAM;


MySIAM:每个MySIAM文件都有这样三个文件。
.frm:表结构定义文件。主要存放表的元数据。
.MYI:索引文件,存放表的索引信息。
.MYD:数据文件,存刚表中数据文件。


InnoDB:每个表都有一个.frm文件,ibdate1文件是共享的。
.frm:同上。
.ibdata1:数据文件,保存所有InnoDB类型表数据。
修改表的操作
ALTER TABLE `库名`.`表名` AUTO_INCREMENT=1000;
DML语句知识点。


插入单行数据语法:insrt into 表名 (字段名列表)values(值列表) ;
1省略字段名列表时,要依次插入所有值。
2字段名列表和值列表一一对应就行。
3值的类型要和字段的类型匹配。
4字段名和字段名之间用逗号隔开。值与值之间也用逗号隔开。
插入多行值的方法:insrt into 表名 (字段名列表)values(值列表1),(值列表2),……;


更新、修改,数据的语法:update 表名 set 字段名1=value1,字段名2=value2 where 条件
删除数据语法:delete from 表名 where 条件(删除的是一整条数据)一行
摧毁时删除(连带表一起删除且不可恢复):truncate table 表名 
查询的语法:select * from 表名 where 条件
其中*表示所有列。可以用某一字段来替换。
重新命名字段名(列名)显示的语法:select 字段名 as 新字段名 from 表名;伪修改就是改变显示了;
重新修改数据显示的语法:select 'value' as 自定义值 from 表名 ;伪修改就是改变显示了
将查询结果插入到新表的方法:crate table 新表 (select 字段1,字段二,……from 原表);


函数
聚合函数:对数据进行汇总,例如求和,平均值等。
常用的聚合函数
avg()返回某字段平均值
count()返回某字段的行数
max()返回某字段的最大值
min()返回某字段的最小值
sum()返回某字段的和
备注:用的时候就传一个参数,参数是某个字段名;
语法:select 函数(列名) from 表名;
字符串函数:对字符串进行各类处理。




常用的字符串函数
concat(str1,str2,……)连接字符串
insert(str,index,len,str1)将str中从index开始len个长度的字符串替换为str1
lower(str)将str变成小写的新字符串
upper(str)将str变成大写的新字符串
substring(str,index,len)将str截取为从index开始len个长度的新字符串。




时间函数:得到各种时间
curdate()返回当前日期2018-6-8;
curtime()返回当前时间12:01:50;
now()返回当前日期和时间2018-6-8 12:01:50;
week(now())返回一年中的第几周
year(now())返回年份
hour()返回小时值
minute()返回分钟值
datediff(date1,date2)返回date1和date2的相隔天数
adddate(date,n)返回从date那天开始过去n天的日期




数学函数:数值运算
常用的数学函数
ceil(x)向上取整
flool(x)向下取整
rand()返回0-1间随机数


排序查询:order by
升序(asc)、降序(desc)
语法:select 字段名1[,字段名2,(函数(字段名3*number))as 自定义名,……] from 表名 order by 字段名1[,字段2] 升序/降序


查询的总语法:
select <字段名列表> from <表名/试图> [where <查询条件>] 
[group by <分组的字段名>] [order by <排序列名称>[asc/desc]
[limit [位置偏移量n],行数x]
位置偏移量:下标概念,一般下标从0开始计数。意思是从下标为n的那条数据开始显示。
行数:从下标为n的那条数据开始,显示x行数据。


子查询
嵌套使用查询语句 小括号里面是子查询,外面的查询叫父查询。 子查询作为 where 的一部分
语法:
select 字段名1 [,字段名2] from student where (select 字段名 from student where 条件);
备注:子查询还可以和update、insert、delete一起使用。
      子查询和比较运算符使用时返回值只能是一个。
备注:*的运行效率低建议以指定字段来替代。因为*代表所有字段值所占用的资源。


in和not in
当子查询返回多个值时我可以用 in 和 not in 来判断。 表示,字段是否存在于子查询里。




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值