【MySQL】MySQL入门学习笔记

目录

SQL

SQL语句分类

DDL语句

    DDL语句操作数据库

    DDL语句操作数据表

DML语句

    增

    删

    改

DQL语句

DQL语句增强

limit语句

数据库约束:


SQL

    结构化查询语言(Structured Query Language),是对数据库的一种操作语言。我们可以使用SQL语句方便的对数据库中的数据   表    数据库进行操作。

SQL语句分类

  • DDL:数据定义语言
    • 用来定义数据库对象:数据库 、表、列等。
    • 关键字:create   drop   alter     truncate
  • DML:数据操作语言
    • 用来对数据库中表的数据进行增删改
    • 关键字:insert     delete    update
  • DQL:数据查询语言
    • 对数据库进行查询操作的语言
    • 关键字:select
  • DCL:数据控制语言
    • 用来定义数据库的访问权限和安全级别以及创建用户
    • 关键字:GRANT    REVOKE
  • TCL:事务控制语言
    • 用于控制数据库的事务操作
    • 关键字:COMMIT    SAVAPOINT   ROLLBACK

DDL语句

通过DDL语句操作数据库:                   创建库     显示库     修改库        删除库

通过DDL语句操作数据库表:               创建表     显示表      修改表     删除表操作

通过DDL语句操作数据库表中的列:    添加列      修改列     删除列   

    DDL语句操作数据库

//创建数据库
CREATE DATABASE 数据库名;

//判断是否存在并创建数据库
CREATE DATABASE IF NOT EXISTS  数据库名

//创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

//查看数据库
SHOW  Database

//查看某个数据库的定义信息
SHOW CREATE DATABASE 数据库名

//修改数据库(修改字符集)
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;


//删除数据库
DROP DATABASE 数据库名

//使用数据库
//查看正在使用的数据库
SELECT DATABASE();

//使用/切换数据库
USE 数据库名

    DDL语句操作数据表

//创建表
CREATE TABLE 表名 (
    字段名1 字段类型1,
    字段名2 字段类型2…
);

//查看表
SHOW TABLES;

//查看表结构
DESC 表名;

//查看创建表的SQL语句
SHOW CREATE TABLE 表名;

//快速创建一个相同的表
CREATE TABLE 新表明 LIKE  旧表名



//删除表
DROP TABLE 表名;
//表存在则删除
DROP TABLE IF EXISTS 表名;


//修改表
//表中添加列
ALTER TABLE 表名 ADD 列名 类型;

//修改列类型
ALTER TABLE 表名 MODIFY 列名 新的类型;

//修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

//删除列
ALTER TABLE 表名 DROP 列名;

//修改表名
RENAME TABLE 表名 TO 新表名;

//修改字符集
ALTER TABLE 表名 character set 字符集;

DML语句

    增

//插入全部字段
INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);
//或者
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
//注意:不写字段名的情况下,values后面值的顺序要和数据内字段的定义顺序要保持一致。
//注意:
//值与字段必须对应 ,个数相同,类型相同
//值的数据大小必须在字段的长度范围内
//除了数值类型外,其他的字段类型的值必须使用引号引起(建议单引号)
//如果要插入空值,可以不写字段,或者插入null



//批量插入数据
INSERT INTO 表名 
    (字段名1, 字段名2, ...) 
    VALUES     
    (值1, 值2, ...),
    (值3, 值4, ...);

    删

//不带条件的删除数据
DELETE FROM 表名;

//带条件的删除
DELETE FROM 表名 WHERE 字段名=值;

    改

//不带条件的修改
UPDATE 表名 SET 字段名=值;


//带条件的修改
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

DQL语句

//简单查询
Select *  from 表名

//查询某列数据
select 字段名1, 字段名2 ...from 表名

//别名查询
select 字段名1 as 别名,字段名2 as 别名 ... from 表名

//查询结果参与运算
select 列名1+固定值  from 表名
select 列名1+列名2 from 表名

去除重复值和null值处理:


  • //清除重复值
    //清除字段名的关键字是DISTINCT
    //一个select语句只能有一个distinct,且只能写在select后面
    select distinct 字段名 from  表
  • IFNULL(表达式1,表达式2):若表达式1的值为null,则返回表达式2的结果.如果表达式1的值不为null,则返回表达式1的结果

DQL语句增强

  • 判断一个变量是否为null(字段 is  null )
    • select * from  表名 where  列名   is   null 
  • 比较运算符
    • > 大于               <  小于              <=  小于等于       >= 大于等于
    • = 等于              <>   !=   不等于
      • select * from 表名  where  列名  比较运算符  比较值
  • 逻辑运算符
    • and(&&):多个条件同时满足
    • or(||): 多个条件其中一个满足
    • not(!) :不满足
      • select * from 表名  where 条件1  逻辑运算符  条件2
  • 范围
    • in  :in里面的每个数据都会作为一次条件,只要满足条件就会显示
      • SELECT 字段名 FROM 表名 WHERE 字段 in (数据1, 数据2...);
    • between... and..:用于表示满足一个范围条件的数据,包头包尾
      • select * from 表名 where 条件 between 值1  and  值2 
    • ​​​​​​​Like关键字:表示模糊查询,满足以下通配符的规则的数据就会显示出来
      • % : 表示0个或多个字符(任意个字符)
      • _ : 表示一个字符
//查询姓马的学生
select * from student where name like "马%";

//查询姓马的且为两个字符的学生
select * from student where name like "马_"

//查询姓名含有马的学生
select * from student where name like"%马%" 
  • 排序(ORDER BY)
    • 单列排序
    • SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
      ​​​​​​​
      • ​​​​​​​ASC: 升序,  是默认值
      • DESC: 降序
    • 组合排序
      • 先按照第一个字段进行排序,如果第一个字段相同,按第二个字段进行排序,一次类推
      • ​​​​​​​
        SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
        
  • 聚合函数(写在select 后字段名的地方)
    • count : 统计指定列记录数,记录为NULL的不统计
    • sum : 计算指定列的数值和,如果不是数值类型,那么计算结果为0
    • max : 计算指定列的最大值
    • min : 计算指定列的最小值
    • avg : 计算指定列的平均值,如果不是数值类型,那么计算结果为0
select 聚合函数(字段名) from 表名
  • 分组
    • GROUP BY 将分组字段结果中相同内容作为一组,并且返回每组的第一条数据,分组的目的是用来统计数量,一般分组和聚合函数一起使用.
    • SELECT 字段1,字段2... FROM 表名 GROUP BY 分组字段 [HAVING 条件];
  • having与where的区别
    • having是在分组后对数据进行过滤.
    • where是在分组前对数据进行过滤
    • having后面可以使用聚合函数
    • where后面不可以使用聚合函数

limit语句

     limit有限制的意思,Limit的作用是用于限制查询记录的条数,​​​​​​​

  • limit的语法格式:
    • ​​​​​​​LIMIT offset,length ;  或者LIMIT length
    • offset 是指跳过的记录数量 ( 学名: 偏移量 ) ,默认为0
    • length 是指需要显示的总记录数
//跳过前面2条,取6条数据 
SELECT * FROM student3 LIMIT 2,6;

数据库约束:

  • 主键约束:PRIMARY  KEY
    • ​​​​​​​用来唯一标识一条记录,每个表只能有一个主键
  • 唯一约束:UNIQUE
    • ​​​​​​​唯一性,约束这个字段的值不能重复
  • 非空约束:NOT NULL
    • ​​​​​​​约束某个字段不能为null值
  • 默认值:DEFAULT
    • ​​​​​​​往表中添加数据的时候,不指定字段的数据,默认显示设定的值

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/108685823