MYSQL基础
注: SQL语句不区分大小写, 但为了使代码易于阅读和调试往往关键字使用大写,并分写在多行的开头,本文为图方便未严格按要求书写,但不影响使用
1.如果出现输入密码不正确的情况 则
再将SQL服务关闭后打开
2.建立一个表的完整过程:
其中-h表示服务器名,localhost表示本地;-u为数据库用户名, root是mysql默认用户名;-p为密码,如果设置了密码 克在-p后键入 如:-p123456
创建和增:
改:
查:
简单查询:
嵌套查询:
删:
3.mysql的端口号为3360
4.1>内连接:根据连接条件,连接两表 ,
例如等值连接:根据等值运算符比较被连接的列值,得到被连接表的所有列,删除匹配不成功的行
eg: select a.*,b.* from a inner join b on a.id=b.parent_id ;
2>外连接包括:左连接,右连接
左连接:以左表为基准,以连接条件进行数据连接,如果右表中在左表没有对应项,则设为NULL;
右连接: 以右表为基准,以连接条件进行数据连接,如果左表中右表没有对应项,则设为NULL;
select a.*,b.* from a left join b on a.id=b.parent_id ;
select a.*,b.* from a right join b on a.id=b.parent_id ;
测试用数据库
5. 指定第几行的起的几行数据
注: 有第0行
6. 注释
7. 按多列排序 order by sth1, sth2;
或者直接用列的相对位置来表示
注: 如果进行排序的列不在SELECT清单中 则不能使用这种方法
8. 排序方向
order by 默认是升序排列 如果是降序则 order by sth desc;
9. where 用法
where子句操作符: <> != 不等于, !> 不大于, between 在两值之间...
order by 必须放在where之后使用
条件定位 where and/or
注:在and/or 混合使用时and在求值过程中优先级最高,为此, 注意()的使用
in/not 使用
注: in操作符的语法更清晰直观
10. 通配符 "%" ,"_","[]"
%和_ 用途类似, _ 只代表一个字符
11. count用法
12. group by 分组数据 他后面不能使用where, 往往与having连用
where 在数据分组前进行过滤, having在数据分组后进行过滤
13.聚类函数:AVG()平均值,COUNT()行数,MAX()最大值,MIN()最小值,SUM()某列之和
14.order by 对产生的输出排序, group by 对行进行分组
15.子查询(嵌套查询):包含子查询的select语句难以阅读和调试, 因此注意分解为多行和适当的缩进
16. 关系数据库: 以供应商与产品关系为例, 其好处有: (1) 供应商信息不重复, 不浪费时间空间 (2)如果供应商数据有变 只需更新供应商表中单个记录
(3) 由于各表数据具有一致性, 处理数据和生成报表更简单
数据联结:用一条select语句检索出数据
内联结语法(相等联结):
17. 自联结:在查询中为一个表取不同的别名, 使用联结比子查询快得多
18.外联结: 左联结:以左边表为基准, 如果右边表没有的行 设为NULL, 右联结类似
mysql 不支持full outer join 全外联结包含两个表的所有不关联行
19. 使用带聚集函数的联结
20. UNION:组合查询
使用情况: (1) 在一个查询中从不同的表返回结构数据(各表的列相同)
(2)对一个表执行多个查询,按一个查询返回数据(可以用OR语句代替)
使用条件:(1)UNION必须由两条或两条以上select语句组成
(2)UNION中必须包含相同的列、表达式或聚集函数(列出现的次序可不同)
(3)列数据类型必须兼容
注:UNION 默认去重,如果不想去重, 则使用UNION ALL
在组合查询中,order by 语句必须置于最后一个select 之后,只能有一个
21.插入数据
插入方式: (1)插入完整行
注:1>into 可省略, 但为了可移植性,最好写上
2> boss后面的列名可以省略,但为了安全性, 最好加上 同时列名可与表中的实际次序不同
(2)插入行的部分
(3) 插入某些查询的结果
从一个表复制到另一个表
22. 更新数据 update(需高权限)
update组成部分: 要更新的表
列名和他们的新值
确定要更新哪些行的过滤条件
23. 删除
delete 删除整行, 若要删除列 则使用update
如果要删除所有行 则用truncate table 速度更快
如果省略where子句,则update 或delete将被应用到表中所有行
24. 创建表
null : 允许在插入时不给出该列的值
not null : 阻止在插入时不给出该列的值,若没有值 则插入失败
default 1; 将默认值设为1, default current_date()默认日期
25. 更新表:
增加列项
删除列
删除表
26. 使用视图
27. 索引 : 用来排序数据以加快搜索金额排序操作的速度.