show databases;显示mysql中的所有数据库。
show tabbles;显示mysql中的表。
describe 表名:显示表的的具体信息。
help show;显示help所有能用的语句。
select 列名 1,列名2 from 表名
order by 列名(desc)
limit 数字
:从指定表中选择一个指定列,列名用逗号隔开。可以按列排序,desc是按降序排列。写 limit表示要显示几行
select column_name1,column_name2 from table_name
where column_name = 指定值;
返回列1,列2中等于指定值的数据行
where 列名 between 5 and 10;表示判断的值在5-10之间。
where 列名 in (条件),与or语句的功能一样,但是in书写的语句更加直观,运行更快。
where 列名 not in (条件语句),比如 where names not in (1002,1003)
通配符(like %):
% 任何字符出现的任意次数
表示以jet开头的任何字符,如果字符前端也有%,表示任何含有jet的字符都将被匹配
%不能匹配NULL字符
_下划线通配符只能匹配单个字符。
正则表达式匹配(like regexp ‘‘表达式’),如果要区分大小写,则要变成 like
regex binary ‘表达式’,正则表达式要匹配多个选项,于是应该这样写like regex
‘1000|2000’.
字段拼接函数 concat() as new_name:
as可以对拼接的对象命名
rtrim(),ltrim(),trim()函数可以对字段空格进行修剪。
字段计算直接生成新的字段
注意也用了as关键字对新字段重新命名
比较常用的字段处理函数
trim(),upper()大写字符,left()字符串左边的字符
soundex()发音相识的函数
日期处理函数
日期格式的表达式必须是 yyyy-mm-dd
常用数字处理函数
distinct 参数在对对象求平均值的时候,只会考虑各个不同的价格。
数据分组
having 语句和where语句很相似,having对分组进行过滤
在分组之后,再用order by语句对分组进行排序,参数desc降序排列
子查询
例子可以发现,where语句中嵌套了多层select语句。
外键:一个表中的列,包含另一个表的主键值。
select vend_name,prod_name,prod_price
from vendors inner join products
on vendors.vend_id = products.vend_id(内部联结;等同于
select vend_name,pro_name,pro_price
from vendor,products where vendors.vend_id = products.vend_id;(等值联结)
select p1.prod_id,p1.prod_name
from products as p1,products as p2
where p1.vend_id = p2.vend_id
and p2.prod_id = ‘dtntr’(自联结),选择都是同一个表,表被命名为别名。
select customers.cust_id,oreders.order_num
from customers left outer join orders
on customers.cust_id = orders.cust_id
order by orders.order_num(外部联结),关键字left outer join,left指的是左边的表,选择了左边表的所有行。
union关键字可以将多条select语句组合起来,实现组合查询,union all 组合查询的时候,不取消重复的行
插入数据
insert into 表名 (对应的列) values(列对应的值)
insert into 表名 (对应的列) select语句
更新数据
update 表名 set 要更新的值 where指定要更新数据的行,update 后面可以接关键字ignore表明在更新多行是,即使发生错误也可以继续更新。
删除数据
delelet from 表名 where指定行,如果没有那么删除表中所有的数据,但是不删除表本身。
创建表
create table 表名(相关列名),表名后接 if not exsists 可以先判断表是否存在,然后再创建。
select last_insert_id()可以返回最后一个auto_increment值
更新表
alter table 表名 add 列名 给表增加列
alter table 表名 drop column 列名 删除表的列名
重新命名表
rename table 表名 to另外一个名字。
创建视图
作用隐藏复杂SQL,简化SQl操作
create view 视图名 as 其他一些比较复杂的表联结语句,为查询结果创建一个虚拟的表。