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. 索引 : 用来排序数据以加快搜索金额排序操作的速度.

原文地址:https://www.cnblogs.com/zhaodun/p/7525317.html