MySQL中一些关键字段

MySQL

like、join

A:% 包含零个或多个字符的任意字符串:
1、like’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、like’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、like’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。

B:_(下划线) 任何单个字符:
like’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl,Sdheryl则不可以,字符长度超过六了)。

正则匹配:
REGEXP

inner join, left join, right join 和full join区别
执行顺序:on在上游,where在中游,having在下游。
1.inner join(内连接),在两张表进行连接查询时,只保留两张表中完全匹配的结果集。(笛卡尔乘积)
2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。
4.full join把左右两个表的数据都取出来,不管是否匹配。

分组:Group by
DESC 降序
ASC 升序
between and 和 not between and
[not] in (‘值1’,’值2’,’值4’,’值6’)
四表联查问题:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

not exists、exists存在,返回布尔值
datediff函数来计算日期差
前十条

select top 10 * form table1 where 范围

UNION 并集 (union all)、except(差集)、intersect(交集)
order by 一般是根据某一字段排序
newid()每次产生的值都不一样
随机函数:rand()
随机取得表中任意N条记录的方法,很简单,就用newid():

select top N *  from table_name order by newid() 

----N是一个你指定的整数,表是取得记录的条数.

查询库里所有表的名字

select table_name from information_schema.tables where table_schema='examdb'; 

('examdb’为库名)
查询表里的所有的列名

select column_name from information_schema.columns  where table_name='exam';(exam表名)

1=1,1=2的使用,在SQL语句组合时用的较多
“where 1=1” 是表示选择全部 “where 1=2”全部不选,
转移数据库给新用户以已存在用户权限
exec sp_change_users_login ‘update_one’,‘newname’,‘oldname’
SQL SERVER中直接循环写入数据

declare @i int
set @i=1
while @i<30
begin
    insert into test (userid) values(@i)
    set @i=@i+1
end

当语法元素由许多替代项组成时,替代项由竖线(“ |”)分隔。TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
当必须选择一组选项中的一个成员时,替代项将在大括号(“ {”和 “ }”)中列出

limit

SELECT * FROM table LIMIT 5,10; //检索记录行6-15。
SELECT * FROM table LIMIT 5; //检索前 5 个记录行。
只使用limit来查询语句,并且偏移量特别大的情况,使用limit效率低。
select * from table limit 150000,1000; //这种并不采用,效率很低。
select * from table while id>=150000 limit 1000; //LIMIT 和其他条件一起使用,效率提高。
SELECT * FROM sys_wait_list LIMIT 14 offset 3; //检索记录行4-17,跳过前三行offset 3

MySQL~~SQL server区别

优点区别:
MySQL:短小精悍,容易上手,操作简单,免费
SQL server:大型数据库,稳定,运行速度明显比MYSQL快N多(海量数据下优势显而易见)。
缺点区别:
MySQL:难担当大系统的数据仓库,运行速度慢,不够稳定,有掉线的情况。
SQL server:价格贵,使用起来比MYSQL要难一些。
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。

索引的类型:
UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值
INDEX(普通索引):允许出现相同的索引内容
PROMARY KEY(主键索引):不允许出现相同的值
fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维
组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值