MySQL基础语法与常见函数

  1. SQL语句分类

    1. DDL:数据定义语言,定义不同的数据段、数据库、表、列、索引等数据库对象。主要关键字包括:create、drop、alter等

    2. DML:数据操纵语言,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。主要关键字包括:insert、delete、update、select等

    3. DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,定义了数据库、表、字段、用户的访问权限和安全级别。主要关键字包括grant、revoke等

    4. MySQL系统数据库:

      1. information_schema:主要存储系统中的数据库对象信息,如用户表信息、列信息、权限信息、字符集信息、分区信息等
      2. cluster:存储了系统的集群信息
      3. mysql:存储了系统的用户权限信息
      4. test:测试数据库,任何人都可以调用
    5. 方法常用语句记录:

       DDL:
       1. 选择数据库:use dbname;
       2. 删除数据库:drop database dbname;
       3. 创建表:create table tablename(column_name_1 column_type_1 constraints...);
       如:create table student(name varchar。。。。。。。。)
      

    Constraints:表示这个列的约束条件
    4. 删除表:drop table tablename;
    2. 查看表详情:desc tablename;
    3. 修改表:alter table tablename modify [column] column_definition [first|after column_name];如:alter table student modify sex char(2);
    4. 增加表字段:alter table tablename add [column] column_definition [first|after column_name];
    5. 删除表字段:alter table tablename drop [column] col_name;
    6. 字段改名:alter table tablename change [column] old_col_name new_col_name column_definition [first|after column_name];
    注意:change和modify都可以修改表的定义,但是change后面需要写2次列名,不过change可以修改列名称,modify却不能。
    7. 修改表名:alter table tablename rename [to] new_tablename;

     	DML:
     	3. 插入记录:insert into tablename(field1,field2...) values(val1,val2...);
     	2. 批量插入:insert into tablename(field1,field2...) values(val1,val2...), (val1,val2...)...;
     	3. 更新记录:update tablename set field1=val1,field2=val2... [where condition]
     	4. 删除记录:delete from tablename [where condition]
     	5. 查询记录:select * from tablename
     		去重查询:select distinct col_name from tablename;
     		条件查询:select * from tablename where condition
     		排序查询:select * from tablename order by col_name asc|desc
     		限制查询:select * from tablename limit 0, 10;
     
     	DCL:
     	1. 修改用户对于某一数据库的操作权限
     		如:创建一个test1用户,具有数据库studb的select、insert权限
     		grant select,insert on studb.* to ‘test1’@’localhost’ identified by ‘123456’;
     		收回insert权限:
     		remove insert on studb.* to ‘test1’@’localhost’;
    
  2. 聚合函数
    求和:sum(col_name),计数:count(col_name|*),最大值:max(col_name),最小值:min(col_name),分类聚合:group by,对分类后的结果再进行条件过滤:having,是否对分类聚合后的数据再汇总:with rollup
    注意:
    1. having和where的区别在于,having是对聚合后的数据进行过滤,where是对聚合前进行数据过滤,一般使用where,聚合的效率会大大提高。
    2. having和with rollup的示例用法:
    。。。。。。。。

    1. 连接查询

    2. 内连接:仅选出两张表中相互匹配的记录

    3. 外连接:也会选出其他不匹配的记录

    4. 左连接:包含左边表中的记录甚至是右边表中没有和它匹配的记录

    5. 右连接:包含右边表中的记录甚至是左边表中没有和它匹配的记录

  3. 联合查询(将结果合并到一起显示)

    1. union:将union all合并后的结果进行了一次distinct
    2. union all:把结果集直接合并在一起
  4. 数据类型

    1. 数值类型:截图。。。。。。。。。。。。
      tinyint、smallint、mediumint、int、bingint、float、double、dec(m,d),decimal(m,d),bit
      注意:

      1. 数值类型设置宽度后,插入大于限制宽度的值,并不会截断显示,会显示正确的数据;
      2. MySQL中小数分为浮点数(float单精度和double双精度)和定点数(只有decimal),其中decimal在内部是以字符串形式存储,适合用于高精度数据(货币或经纬度),浮点数后面跟(m,d)是非标准用法;
      3. Bit用于存放位字段值,bit(M)可以用来存放多位二进制数,M范围为1~64,查询时直接使用select命令不会看到结果,可以以bin()(显示为二进制)或者hex()(显示为十六进制)函数进行查看;
    2. 日期类型:截图。。。。。。。。。。。。。

注意:
1. MySQL规定timestamp类型字段只能有一列的默认值为current_timestamp
2. Timestamp类型和时区相关,超出下限会显示成0
3. Timestamp支持范围较小,从1970年到2038年的某个时间,datetime支持范围大,是从1001年到9999年
4. 。。。。。。。。。。日期格式YYYY。。。。。。

6. 字符串类型:截图。。。。。。。。。。。。。。。。。。

注意:(char和varchar类型的区别)
1. 都用来存储MySQL中较短的字符串,但char列的长度为创建表时申明的长度,而varchar为可变长字符串;
2. 检索时char删除了尾部空格,但varchar保留了尾部空格;
3. Enum枚举类型的值范围需要在创建表时通过枚举的方式显示指定;

  1. 运算符

    1. 算术运算符:截图。。。。。。。。。。
    2. 比较运算符:截图。。。。。。。。。。
    3. 逻辑运算符:截图。。。。。。。。。。
    4. 位运算符:截图。。。。。。。。。。
      注意:
      1. <=>运算符为null安全的等于(null-safe);
      2. XOR表示逻辑异或,任意一个操作数为null时,返回值为null,对于非null的操作数,如果两个的逻辑真假值相异,则返回1,否则返回0;
      3. 位运算符使用示例:。。。。。。。。。。。。。。
  2. 常用函数

    1. 字符串函数:截图。。。。。。。。。。
    2. 数值函数:截图。。。。。。。。。
    3. 日期和时间函数:截图。。。。。。。。。
    4. 流程函数:截图。。。。。。。。。
    5. 其他函数:。。。。。。。。。。。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值