mysql总结

* / % binary greatest() least() ASCII() replace() week() yearweek() date_add() date_format()
select version();
select now();
select curdate();
select curtime();


数据库

创建:create database [if not exists]my_db;
删除:drop database my_db;
查看:show databases; show create database my_db;
select database();
连接:mysql -uroot -p
退出:exit
使用:use my_db;


数据表

创建:create table [if not exists] table_name (字段名 类型 约束,[字段名 类型 约束]...)|like|as;
删除:drop table [if not exists] table_name;
修改:alter table table_name add|modify|change|rename to|drop;
查看:desc table_name; desc table_name 字段名;
show create table table_name; show tables;


表记录

增加:insert into table_name values|set ... 共有四种方式(全列|指定列|多行批量|使用set子句)
删除:delete from table_name [where 条件];
修改:update table_name set 字段1=值1[,字段2=值2,...] [where条件];
replace into table_name values (字段值,字段值,字段值...);
查看:!!!!


表记录查找之选择select列
  1. 选择指定列:select 字段1,字段2 from table_name;
  2. 定义列别名:select 字段1 as 别名1,字段2 as '别 名2' from table_name;
  3. 替换查询结果中的数据:
    case
    when 条件1 then 表达式1
    when 条件2 then 表达式2
    ......
    else 表达式
    end
  4. 计算列值
  5. 清除结果集中的重复行:select distinct 字段1,字段2 from table_name;
  6. 聚合函数:count() max() min() sum() avg() group_concat() ... ...

表记录查找之from子句

***专门的关系运算 选择(行)|投影(列)|连接(join)|除***

  1. 引用一个表:select * from db2.tb; select * from tb;
  2. 多表连接 ("不同列组合")
    (1)全连接 (笛卡尔积+where子句=等值连接)
    select distinct course.Cno,course.Cname
    from score,course where score.Cno = course.Cno;
    (2)join连接
    ① 内连接 inner
    on连接表,where指定其它|内连接用于多个表连接|
    自连接|using子句
    ② 外连接 outer (只对两个表进行)
    左外连接(left join)|右外连接(right join)
    |自然连接(natural join) =>自然左外连接 自然右外连接
    ③ 交叉连接 cross join
    cross join 与 inner join 与 straight_join

表记录查找之where子句

***where子句会根据条件对from子句的中间结果中的行,一行一行地进行判断,
当条件为True的时候,一行就被包含到where子句的中间结果中。***

  1. 比较运算 =、<、<=、>、>=、<=>、<>、!=
  2. 模式匹配
    (1)like运算符:"%" "_" escape
    (2)regexp运算符:正则表达式的应用
  3. 范围比较 between in | in
  4. 空值比较 is null
  5. 子查询!!!
    (1)in子查询
    (2)比较子查询
    (3)exists查询
    (4)表子查询|标量子查询|行子查询

表记录查找之其它子句
  1. GROUP BY子句
    GROUP BY子句主要用于根据字段对行分组。通常和聚合函数一起使用
  2. HAVING 子句
    使用having子句的目的与where子句类似,
    不同的是where子句是用来在from子句后面之后选择行,
    而having子句是用来在group by子句后选择行!
  3. ORDER BY子句
    排序 关键字ASC表示升序排列,DESC表示降序排列,系统默认值为ASC
  4. LIMIT子句
    LIMIT子句,主要用于限制被SELECT语句返回的行数。
  5. UNION子句
    使用UNION语句,可以把来自许多SELECT语句的结果组合到一个结果集合中。

你可能感兴趣的:(mysql总结)