MySQL学习笔记

MySQL学习笔记

学习时间 :2017.09.28—2017.10.01

整理时间:2017.10.02—2017.10.03

学习资源:职坐标网上课程《MYSQL数据库基础》

  1. 创建数据库:CREATE DATABASE database_name

  2. 删除数据库:DROP DATABASE database_name

  3. 创建数据表:

    CREATE TABLE table_name

    (

             /*

             至少定义一个字段,包括字段名,字段类型,是否为空可选

             定义字段语句之间用’,’隔开

             */

             col_name1 col_type [NOT NULL], 

    col_name2 col_type [NOT NULL],

    col_name3 col_type [NOT NULL]

    )

  4. 主键约束:

    col_name col_type [NOT NULL]PRIMARY KEY

  5. 外键约束:

    col_name col_type [NOT NULL]REFERENCES another_table_name(col_name_from_another_table_name)

  6. 检查约束:

    col_name col_type [NOT NULL]CHECK(condition_expression)

  7. 默认约束

    col_name col_type [NOT NULL]DEFAULT value

  8. 自增列

    col_name col_type [NOT NULL]AUTO_INCREMENT

  9. 查看表的基本结构

    DESCRIBE/DESC table_name

  10. 查看表的详细结构

    SHOW CREATE TABLE table_name

  11. 修改表名

    ALTER TABLE old_table_nameRENAME TO new_table_name

  12. 修改字段名

  13. ALTER TABLE table_name CHANGE old_col_namenew_col_name new_col_type

  14. 修改字段类型

    ALTER TABLE table_nameMODIFY col_name new_type

  15. 添加字段

    ALTER TABLE table_name ADDnew_col_name new_col_type

  16. 删除字段

    ALTER TABLE table_name DROPcol_name

  17. 添加主键约束

    ALTER TABLE table_name ADDCONSTRAINT con_name PRIMARY KEY(col_name)

  18. 添加外键约束

    /*

    con_name为约束名,可写成:约束类型_表名_字段(type_table_col),其中约束类型可简写成PK——主键约束,FK——外键约束,CK——检查约束。

    */

    ALTER TABLE table_name ADDCONSTRAINT con_name FOREIGN KEY(col_name) REFERENCES referenced_table_name(referenced_col_name)

  19. 添加检查约束

    ALTER TABLE table_name ADDCONSTRAION con_name CHECK(condition_expression)

  20. 添加默认值

    ALTER TABLE table_name ALTERcol_name SET DEFAULT value

  21. 添加自增

    ALTER TABLE table_nameMODIFY COLUMN col_name col_type [Not NULL] AUTO_INCREMENT [NOT NULL] [PRIMARYKEY]

  22. 删除数据表

    /*

    如果table_list不存在关联,可以直接删除

    table_list存在关联,即存在引用关系,先删除外键所在的表,再删除被引用的表

    如果只删除被引用的表,要先解除关联关系,再删除被引用的表

    */

    DROP Table [IF EXISTS]table_list

  23. 为所有的列插入值(插入记录)

    /*

    特点:列值同数,列值同序

    有默认值,可用default

    */

    INSERT [INTO] table_nameVALUES(value_list1),(value_list2),……,(value_listN)

  24. 为指定列插入值

    /*

    特点:列值同数,列值对应

    若没指定,但有默认值,则添加默认值

    */

    INSERT [INTO]table_name(col_list) VALUES(value_list1),(value_list2),……,(value_listN)

  25. 修改数据

    /*修改特定条件的数据,若没指定条件,则修改全部数据*/

    UPDATE table_name SETcol_name = expression [WHERE condition_expression]

  26. 删除数据

    /*删除特定条件的数据,若没指定条件,则删除全部数据*/

    DELETE [FROM] table_name[WHERE condition_expression]

    /*删除全部数据*/

    TRUNCATE TABLE table_name

  27. 查询列

    /*

    查询全部记录中col_list出现的字段,若查询全部列用’*’代替con_list

    DISTINCT关键字可选,表示取消查询结果集中重复的数据

    LIMIT关键字可选,表示指定结果集中数据的显示范围

    LIMIT i,l,表示从结果集第i条开始显示l条数据

    LIMIT l,表示从结果集第0条开始显示l条数据

    */

    SELECT [DISTINCT] col_listFROM table [LIMIT]

  28. 普通条件查询

    SELECT col_list FROMtable_name WHERE condition_expression

  29. 模糊查询

    /*

    表示查询col(不)在mn范围内的数据

    */

    SELECT col_list FROMtable_name WHERE col [NOT] BETWEEN m AND n

    /* wildcard—通配符

    查询col(不)符合某些特性的数据

    */

    SELECT col_list FROMtable_name WHERE col [NOT] LIKE wildcard

    /*

    查询col(非)空的数据

    */

    SELECT col_list FROMtable_name WHERE col IS [NOT] NULL

  30. 对查询结果集排序

    /*

    ASC是升序,默认

    DESC是降序

    先出现的col优先级高

    */

    SELECT col_list FROMtable_name ORDER BY col1 [ASC|DESC], col2 [ASC|DESC],……,colN [ASC|DESC]

  31. 对查询结果分组

    /*

    对查询结果以col进行分组

    col_list可以包含字段或聚合函数

    */

    SELECT col_list FROMtable_name GROUP BY col

  32. 对查询结果分组筛选

    /*

    对查询结果以col进行分组

    col_list可以包含字段或聚合函数

    HAVING要写在GROUP BY之后

    condition_expression要以聚合函数统计的结果作为条件

    */

    SELECT col_list FROMtable_name GROUP BY col HAVING condition_expression

  33. 查询语句执行顺序

    /*

    首先在table_name中查找符合where_condition_expressioncol_list,

    对查询的结果集以group_by_col分组

    对分组结果以having_condition_expression筛选

    对筛选结果集按order_by_col [ASC|DESC]排序

    */

    SELECT col_list [AS alias]FROM table_name

    WHERE where_condition_expression

    GROUP BY group_by_col

    HAVING having_condition_expression

    ORDER BY order_by_col[ASC|DESC]

  34. 内连接

    /*

    横向连接多个查询结果集

    两张表的地位平等

    如果一张表中在另一张表中没有不存在对应数据,则不做连接

    col_listcol来自不同的表,它来自表的顺序与table_listtable的顺序相同

    condition_expression应是不同表中相同col的关系

    */

    /*

    隐式内链接

    */

    SELECT col_list FROMtable_list WHERE condition_expression

    /*

    显示内连接

    /

    SELECT col_list FROM table1

    [INNER] JOIN table2 ONcondition_expression

    [INNER] JOIN table3 ONcondition_expression

    ……

  35. 外连接

    /*

    横向连接多个查询结果集

    连接的两张表地位不平等,其中一张表是基础表,基础表中每条数据必须出现,即使另一张表中没有数据与之匹配,要用NULL补齐

    在语句中先出现的表是左表,后出现的表是右表

    左外连接时左表时基础表,有外连接时右表是基础表

    col_listcol来自不同的表,它来自表的顺序与table_listtable的顺序相同

    condition_expression应是不同表中相同col的关系

    */

    SELECT col_list FROM table1

    LEFT|RIGHT [OUTER] JOINtable2 ON condition_expression

    LEFT|RIGHT [OUTER] JOINtable3 ON condition_expression

    ……

  36. 子查询

    /*

    使用IN关键字

    (SELECT语句)为子查询

    父查询以子查询返回的结果集作为条件

    */

    SELECT col_list FROMtable_name WHERE col IN (SELECT语句)

    /*

    使用EXISTS关键字

    (SELECT语句)为子查询

    如果子查询有结果才返回父查询的结果集

    */

    SELECT col_list FROMtable_name WHERE col EXISTS (SELECT语句)

  37. 联合查询

    /*

    纵向连接多个查询结果集

    列的数量和类型要兼容

    ALL表示数据重复部分多次显示

    ALL表示数据只出现一次

    */

    SELECT col_list1 FROMtable_name1

    UNION [ALL]

    SELECT col_list2 FROMtable_name2

  38. 比较运算符

    等于:=

    不等于:<>

    大于:>

    小于:<

    大于等于:>=

    小于等于:<=

  39. 逻辑运算符

    并且:AND

    或者:OR

    非:NOT

  40. 通配符

    _:表示一个字符

    %:表示任意长度的字符

    []:表示指定范内

    [^]:不在括号中

  41. 聚合函数

    求和:SUN(col)

    求平均:AVG(col)

    求最小:MIN(col)

    求最大:MAX(col)

    计数:COUNT(col)

  42. 日期与时间函数

  1. 返回当前日期:

    SELECT CURFATE()|SELECTCURRENT_DATE()

    SELECTCRDATE()+0/*将年月日拼接成数字*/

  2. 返回当前时间

    SELECT CURTIME()|SELECTCURRENT_TIME()

    SELECT CURTIME()+0/*将时分秒拼接成数字*/

  3. 返回当前日期时间

    SELECTCURRENT_TIMESTAMP()|SELECT LOCALTIME()|SELECT NOW()|SYSDATE()

  4. 返回月份

    SELECT MONTH(date)/*返回月份数字*/

    SELECT MONTHNAME(date)/*返回月份英文名称*/

  5. 获取星期

    SELECT DAYOFNAME(date)/*返回星期几英文名称*/

    SELECT DAYOFWEEK(date)/*返回一周中第几天,星期日是第1*/

    SELECT WEEKDAY(date)/*返回一周中第几天,星期一是第0*/

    SELECT WEEK(date) /*返回一年中第几周,第一周是0*/

    SELECT WEEKOFYEAR(date) /*返回一年中第几周,第一周是1*/

  6. 获取天数

    SELECT DAYOFYEAR(date)/*一年中第几天,11日是第一天*/

    SELECT DAYOFMONTH(date)/*一月中第几天,1日是第一天*/

  7. 获取年份

    SELECT YEAR(date)

  8. 获取季度

    SELECT QUARTER(date)

  9. 获取小时

    SELECT HOUR(time)

  10. 获取分钟

    SELECT MINUTE(time)

  11. 获取秒数

    SELECT SECOND(time)

  1. 数学函数

  1. 绝对值函数

    SELECT ABS(x)

  2. 符号函数

    SELECT SIGN(x)

  3. 获取随机数数函数

    /*

    生成(0,1)的随机数

    X为随机数种子,x固定生成的随机数固定

    */

    SELECT RAND()|RAND(x)

  4. 获取整数函数

    SELECT CEIL(x)|CEILING(x)/*取不小于x的整数中最小的一个*/

    SELECT FLOOR(x) /*取不大于x的整数中最大的一个*/

  5. 四舍五入函数

    SELECT ROUND(x)/*保留整数*/

    SELECT ROUND(xy)/*x保留小数点后y*/

    SELECT TRUNCATE(x,y)/*x的小数点后y位舍去*/

  6. 求余函数

    SELECT MOD(x,y)/*x除以y的余数*/

  7. 求幂运算函数

    SELECT POW(x,y)|POWER(x,y)/*xy次方*/

    SELECT EXP(x) /*ex次方*/

    SELECT SQRT(x) /*x的算数平方根,x小于0,输出NULL*/

  8. 角度弧度互换函数

    SELECT RADIANS(x)/*角度转弧度*/

    SELECT DEGREES(x)/* 弧度转角度*/

  9. 圆周率函数

    SELECT PI()/*返回π值*/

  10. 三角函数

    SELECT SIN(x)

    SELECT ASIN(x)

    SELECT COS(x)

    SELECT ACOS(x)

    SELECT TAN(x)

    SELECT ATAN(x)

    SELECT COT(x)

  1. 字符串函数

  1. 计算字符串字符数函数

    SELECT CHAR_LENGTH(str)

  2. 计算字符串字节函数

    SELECT LENGTH(str)

  3. 合并字符串函数

    SELECT CONCAT(str_list)/*如果存在NULL参数,返回结果为NULL*/

    SELECT CONCAT(x,str_list)/*x为连接符/

  4. 替换字符串函数

    SELECT INSERT(str,i,len,s)/*str从第i个字符开始len个字符替换成s*/

    SELECT REPLACE(str,s1,s2)/*str中全部的s1都替换成s2*/

  5. 截取字符串函数

    SELECT LEFT(str,len)|RIGHT(str,len)/截取str左边(右边)开始数len个长度的字符串*/

  6. 重复生成字符串函数

    SELECT REPEAT(str,n)/*nstr连接一起*/

  7. 大小写转换函数

    SELECT LOWER(str)|LCASE(str)/*str全部字符转成小写*/

    SELECT UPPER(str)|UCASE(str)/*str全部字符转成大写*/

  8. 填充字符串函数

    SELECT LPAD(str,len,s)/*str左边填充s到该字符串长度为len*/

    SELECT RPAD(str,len,s)/*str右边填充s到该字符串长度为len*/

  9. 删除空格函数

    SELECT LTRIM(str)|RTRIM(str)/*删除str左边(右边)空格*/

    SELECT TRIM(str)/*删除两边空格*/

  10. 删除指定字符串函数

    SELECT TRIM(s FROM str)/*str中删除s*/

  11. 获取子字符串函数

    SELECT SUBSTRING(str,i,len)|MID(str,i,len)/*str的第i个字符开始截取长度为len的字符串*/

  12. 返回指定位置字符串函数

    SELECT ELT(i,str_list)/*返回str_list中第i个字符串*/

  13. 返回指定字符串位置函数

    SELECT FIELD(str,str_list)/*str_list中返回str的位置,若没找到返回0*/

  1. 系统函数

  1. 获取MySQL版本号

    SELECT VERSION()

  2. 查看当前用户连接数

    SELECT CONNECTION_ID()

  3. 查看当前所用数据库

    SELECT DATABASE()

    SELECT SCHEMA()

  4. 获取用户名

    SELECT USER()

    SELECT CURRENT_USER()

    SELECT SYSTEM_USER()

    SELECT SESSION_USER()

  1. 关系型数据库常用概念

/*

关系型数据库以表格形式表示数据

字段(域)

行(记录)

冗余:可以不存在的数据但真实存在

完整性:数据的正确性

失去数据完整性:数据输入有误

主键:某一字段,主键的值不能重复,也不能为空

外键:表的某列数据来源于另一张表的某列

失去实体完整性:主键重复或主键为空

失去引用完整性:引用不存在数据

失去域完整性:数据输入在类型或范围或格式输入有误

*/



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值