mysql的简单语法

一、基本语句语法:

        选择:select * from table1 where 条件表达式


  插入:insert into table1(field1,field2) values(value1,value2)

  删除:delete from table1 where 条件表达式

  更新:update table1 set field1=value1 where 条件表达式

  查找:select * from table1 where field1 like ’%value1%’ (%      _     正则匹配) 
  
  排序:select * from table1 order by field1,field2 [desc]

  总数:select count as totalcount from table1

  求和:select sum(field1) as sumvalue from table1

  平均:select avg(field1) as avgvalue from table1

  最大:select max(field1) as maxvalue from table1

  最小:select min(field1) as minvalue from table1

二、关键字顺序结构

SELECT select_list   
FROM table_name  
[ WHERE search_condition ]   行级过滤
[ GROUP BY group_by_expression ]   分组说明
[ HAVING search_condition ]          组级过滤
[ ORDER BY order_expression [ ASC | DESC ] ] 排序依据     (多个排序列,中间用逗号隔开,默认ASC)
[limit m开始位置, n查多少条] 分页查询

  
-- 示例:
-- limit 0,10是从第一条开始,取10条数据
select classNo  from table_name  
group by classNo   
having(avg(成绩)>70) 
order by classNo  
limit 0,10


三、where比较操作符 
=        等于
<>  != 不等于
<        小于
<=         小于等于
!<   >= 不小于
>         大于
>=          大于等于
!>          不大于
between 在指定的两值之间
is nll 为null


 四、where逻辑操作符 

and  


or  或

IN   指定条件范围,范围中的每个条件都可以进行匹配


Not 否定后跟的条件


LIKE
   % 表示任何字符出现任意次数(0~n)
   _ 表示单个字符   下划线
    [] 表示一个字符集      [A-Z]   可以用^(脱字号)来取反
^ [^A-Z]

五、聚集函数 (聚合函数)

AVG()       平均值 给定数值列做参数(NULL值允许) 


COUNT()      计数 count(列)忽略null值,count(*)不忽略null


MAX()     最大值 忽略null


MIN()     最小值


SUM()    总计 列值得总和


以上五个函数,参数默认使用ALL  可以指定DISTINCT,表示只计算不同指。AVG(DISTINCT name)。 DISTINCT不能用作COUNT(*),用作MIN() MAX()也意义不大。


六、分组      GROUP  BY 
只能使用选择列或者表达式列,而且必须要使用每个选择的列表达式。即以什么分组,就要查询或者使用它
例:

七、过滤分组 HAVING 
HAVING支持所有的WHERE操作符。 

WHERE过滤的是行; HAVING过滤的是分组。


即WHERE在数据分组前先进行行过滤,然后HAVING在分组后进行过滤

查询courses表中 超过5名学生的课(出处LeetCode

 例:select class from courses group by class having count(student)>=5

八、嵌套子查询 
子查询:嵌套在其他查询中的查询。 子查询总是从内向外处理的。

例:


注意事项:
   作为子查询的select语句只能查询单个列,查询多个列会报错。查询性能问题。


九、联结表 与(left  right  full inner ) join 
from 多表 where 联结条件 (表名用,隔开;联结条件用and隔开)

例子: select id,name,price

 from goods,prices 

where price.id=goods.id;


不带联结条件的语句是两表的笛卡尔积(行*行)。联结是非常耗费资源的。

内部联结   inner join .. on ..

select id,name,price from goods inner join prices on price.id=goods.id;

其他join的使用略


高级联结 
  *=    =*  (+)

 十、复合查询  union 
任何具有多个WHERE子句的select语句,都可以作为一个组合查询给出。

例:


union必须有两条或者两条以上的select语句组成,语句之间用关键词union分割。
union中的每个查询必须包含相同的列、表达式或者聚合函数。顺序不必相同
列数据类型必须兼容。
union,重复的行数据自动取消。不想取消使用union all。



十一、插入查找的数据 

insert into 表(列名,...)select 列名...from ...

例:


插入时是使用列的位置,并不要求前后列名相同,但需要数据类型相同,或者可以转换。


select * into 表1 from 表2;
从一个表复制到另一个表

例:


十二、库表类操作

 创建数据库

  CREATE DATABASE database-name

 删除数据库

  drop database dbname

 备份sql server

  --- 创建 备份数据的 device

  USE master

  EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

  --- 开始 备份

  BACKUP DATABASE pubs TO testBack

 创建新表

  create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

  根据已有的表创建新表:

  A:create table tab_new like tab_old (使用旧表创建新表)

  B:create table tab_new as select col1,col2… from tab_old definition only

 删除新表

  drop table tabname

 增加一个列

  Alter table tabname add column col type

  注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

 添加主键: Alter table tabname add primary key(col)

  说明:删除主键: Alter table tabname drop primary key(col)

 创建索引:create [unique] index idxname on tabname(col….)

  删除索引:drop index idxname

  注:索引是不可更改的,想更改必须删除重新建。

 创建视图:create view viewname as select statement

  删除视图:drop view viewname




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值