MySql学习小记

SQL(Structure Query Language)结构化查询语言是数据库的核心语言,又分为四大类:

  1. DQL(Data Query Language)                数据查询语言      (select)
  2. DML(Data Manipulation Language)     数据操作语言      (insert , update , delete)
  3. DDL(Data Defination Language)          数据定义语言      (create, alter , drop)
  4. DCL(Data Control Language)               数据控制语言        (grant , revoke)

 

DQL:

mysql使用limit作为分页关键词:

select * from table limit 20         #查询前20条数据
select * from table limit 10,20     #从索引为10的数据开始查询20条数据(索引从0开始)

DML:

       数据类型

类型     长度 备注
数字 整型 tinyint 1字节 默认有符号
smallint 2字节
mediumint 3字节
Int/integer 4字节
bigint 8字节
浮点型 float 4字节 小数点后数字个数浮动
double  8字节
dec/decimal(M,D) 8字节 小数点后数字个数固定
字符 固定长度 char(L) L表示最大字符长度

还可用于枚举和集合

enum('a','b','c')

set('a','b','c')

可变长度 varchar(L)
日期 日期 date 4  
日期时间 datetime 8
时间戳 timestamp 4
时间 time 3
year 1

     插入语句:

  1. insert  into tableName values(....)
  2. insert int tableName set cloumn1 = ...

     删除语句:

  1. delete from tableName where...
  2. trancate tableName 清空表

 

DDL:

        更新表:ALTER更改表字段时,CHANGE关键字还可以修改表名称,MODIFY只能修改表字段属性

        复制表:create table tableName select * from tableExsited

 

多表连接方式:

内连接 JOIN = INNER JOIN = CROSS JOIN

              MySql学习小记_第1张图片

  SELECT  *  from  t_kc_tmplt_info tmplt    inner join    t_kc_tmplt_groups groups   on tmplt.tmplt_Id = groups.tmplt_Id

 外连接

 左连接 LEFT JOIN = LEFT OUTER JOIN                           右连接  RIGHT JOIN =RIGHT CROSS JOIN

               MySql学习小记_第2张图片                                                         MySql学习小记_第3张图片

 外连接如果另一边无符合条件,则以空补全

笛卡尔积    显示两张表A * B 的所有记录

 

 

存储过程

是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

#存储过程有入参和出参
CREATE PROCEDURE p1(IN p_id INT , OUT countNum INT)
BEGIN
	SELECT COUNT(id) from girlinfo where id = p_id  INTO countNum;
END

#调用方式
CALL p1(1,@num);
select @num;

常用函数

  1. 文本函数
    1. length(str)                                     长度
    2. upper(str)                                      大写
    3. lower(str)                                       小写
    4. concat(str1, str2, str3...)                连接
    5. substr(str, startIndex, length)        取子串(mysql索引以1开始)
    6. lpad(str, length, context)               左填充
    7. rpad(str, length, context)               右填充
    8. repalce(str, source, target)            替换
    9. instr(str, substr)                             取索引
    10. trim( substr from str)                      去前后某字段
  2. 数字函数
    1. round()             四舍五入
    2. ceil()                 向上取整
    3. floor()               向下取整
    4. truncate()         截断
    5. MOD(int, int)    取余
  3. 日期函数
    1. now()                                    当前日期+时间
    2. curdate()                               当前日期
    3. curtime()                                当前时间
    4. year(date)                             日期的年份
    5. month(date)                          日期的月份
    6. monthName(date)                日期的月份英文
    7. str_to_date(str, format)         字符串转日期
    8. date_format(date, format)    日期转字符串
  4. 其他函数
    1. version()                        当前数据库版本
    2. database()                     当前数据库
    3. user()                             当前用户
  5. 流程控制函数
    1. if(expr1, expr2, expr3)    if函数              ---select if(10>5, '大于啊', '不大于啊')
    2. case expr  when  常量1  then  语句1; when  常量2  then  语句2; else 语句3;end


 

 

 

 

 

 

你可能感兴趣的:(数据库,MySql)