栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

mysql杂记(内容较乱,个人笔记)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql杂记(内容较乱,个人笔记)

DESC stu;
ALTER TABLE stu CHANGE stu_class3 stu_class3 DOUBLE(4,1);

添加数据 insert into stu(列1,列2,列3…列n) values(值1,值2,值3…值n)

INSERT INTO stu(stu_id ,stu_name,stu_nation) VALUES (1,‘张三’,‘汉族’);

SELECt * FROM stu;

INSERT INTO stu VALUES(2,‘李四’,‘北京’,‘汉族’,99.0,80.0,79.0,NULL);

ALTER TABLE stu MODIFY use_time TIMESTAMP(YYYY-MM-dd hh:mm:ss);

INSERT INTO stu VALUES(3,‘王五’,‘America’,‘forige’,77,88,99,NULL);

DELETe FROM stu WHERe stu_id=1;
TRUNCATE TABLE stu; - 删除表,然后再创建一个一模一样的空表

UPDATe stu SET stu_address = ‘天津’,stu_class1=80,stu_class2=60,stu_class3=55 WHERe stu_id =1;

SHOW TABLES;
DESC sheet1 ; S E L E C T ∗ F R O M s h e e t 1 ; SELECT * FROM sheet1 ;SELECt∗FROMsheet1;

ALTER TABLE sheet1$ RENAME TO stu_databases;

SELECt * FROM stu_databases;

ALTER TABLE stu_databases RENAME TO 21stu;

SELECt * FROM 21stu;

SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称;

  • 按照专业,班级人数,所属系部汇总出来
    SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称 HAVINg COUNT(班级名称)>30;
    SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称 HAVINg 人数 >30;
where 和 having的区别 where在分组之前进行限定,如果不满足条件,则不参与分组,having在分组之后进行限定,如果不满足结果,则不会被查询出来 where后不可以跟聚合函数,having可以进行聚合函数的判断。
  • 分页查询

    • 每页显示三条记录
      SELECt * FROM 21stu LIMIT 0,3; - 第一页

    SELECt * FROM 21stu LIMIT 3,3; - 第二页

    SELECt * FROM 21stu LIMIT 6,3; - 第三页

    • 公式:开始的索引 = (当前的页码 - 1)* 每页的条数

      USE student;
      CREATE TABLE student3 (
      id INT, - 编号
      NAME VARCHAr(20), - 姓名
      age INT, - 年龄
      sex VARCHAr(5), - 性别
      address VARCHAr(100), - 地址
      math INT, - 数学
      english INT - 英语
      );
      INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,‘马云’,55,‘男’,’
      杭州’,66,78),(2,‘马化腾’,45,‘女’,‘深圳’,98,87),(3,‘马景涛’,55,‘男’,‘香港’,56,77),(4,‘柳岩’,20,‘女’,‘湖南’,76,65),
      (5,‘柳青’,20,‘男’,‘湖南’,86,NULL),(6,‘刘德华’,57,‘男’,‘香港’,99,99),(7,‘马德’,22,‘女’,‘香港’,99,99),(8,‘德玛西亚’,18,‘男’,‘南京’,56,65);
      SELECt * FROM student3;

      DROp TABLE student3;

      SELECT
      NAME, - 姓名
      age - 年龄
      FROM
      student3;

      SELECt
      address
      FROM
      student3;

      • 去除重复的结果集
        SELECt DISTINCT address FROM student3;

      • 计算math和English的分数之和
        SELECt NAME,math,english,math+english FROM student3;

      • 如果有null参与计算,计算结果都为null

      SELECt NAME,math,english,math+ IFNULL(english,0)FROM student3;

      SELECt NAME 姓名,math 数学,english 英语,math+ IFNULL(english,0)AS 总分 FROM student3;

      • 查询大于20岁的人
        SELECt * FROM student3 WHERe age >= 20;

      • 查询等于20岁的人
        SELECt * FROM student3 WHERe age = 20;

      • 查询不等于20岁的人
        SELECt * FROM student3 WHERe age != 20;
        SELECt * FROM student3 WHERe age <> 20;

      • 查询年龄大于等于20小于等于30
        SELECt * FROM student3 WHERe age >= 20 AND age<=30;
        SELECt * FROM student3 WHERe age >=20 && age <=30; - &&不建议使用,并不通用
        SELECt * FROM student3 WHERe age BETWEEN 20 AND 30;

      • 查询年龄22岁,18岁,25岁的信息
        SELECt * FROM student3 WHERe age =22 OR age =18 OR age=25;
        SELECt * FROM student3 WHERe age IN(22,18,25);

      • 查询英语成绩为null的
        SELECt * FROM student3 WHERe english = NULL;- 不对的,null值不能使用=和!=来判断
        SELECt * FROM student3 WHERe english IS NULL;

      • 查询英语成绩不为null的
        SELECt * FROM student3 WHERe english IS NOT NULL;

      • 查询姓马的有哪些?
        SELECt * FROM student3 WHERe NAME LIKE ‘马%’;

      • 查询第二个字是化的人有哪些?
        SELECt * FROM student3 WHERe NAME LIKE ‘_化%’;

      • 查询姓名是三个字的人
        SELECt * FROM student3 WHERe NAME LIKE ‘___’;

      • 查询姓名中含有德的人
        SELECt * FROM student3 WHERe NAME LIKE ‘%德%’;

      约束:是对表中的数据进行限定,保证数据的正确性、有效性、完整性。

      非空约束: not null

      CREATE TABLE stu1(
      id INT,
      NAME VARCHAr(20) NOT NULL - name为非空
      )

      • 删除name的非空约束
        ALTER TABLE stu1 MODIFY NAME VARCHAr(20);
        DELETe FROM stu1 WHERe id =2;
      • 2、在创建表后添加约束
        ALTER TABLE stu1 MODIFY NAME VARCHAr(20) NOT NULL;
      唯一约束: unique

      CREATE TABLE stu(
      id INT,
      phone_number VARCHAr(20) UNIQUE - 创建表时添加唯一的约束
      );

      • 注意MySQL中唯一约束的值限定列的值可以有多个null;
        SELECt * FROM stu;
        INSERT INTO stu VALUES (1,1234),(2,1233);
        ALTER TABLE stu MODIFY phone_number VARCHAr(20); - 这样是无法删除的
        ALTER TABLE stu DROp INDEX phone_number; - 正确的删除表的唯一约束
        ALTER TABLE stu MODIFY phone_number VARCHAr(20) UNIQUE;
      主键约束 :primary key :非空且唯一,一张表只能有一个字段为主键,主键就是表中记录的唯一标识

      #创建表的时候,添加主键约束
      CREATE TABLE stu(
      id INT PRIMARY KEY, - 给id添加主键约束
      NAME VARCHAr (20)
      )
      DROP TABLE stu; - 删除表
      TRUNCATE TABLE stu; - 删除
      SELECT * FROM stu;

      • 错误写法 alter table stu modify id int;
        ALTER TABLE stu DROp PRIMARY KEY;
      创建完表后,添加主键

      ALTER TABLE stu MODIFY id INT PRIMARY KEY;

      自动增长; 如果一列是数值类型的,使用auto_incerment 可以完成自动增长,一般是配合主键一起来使用的
      • 在创建表的时候来添加
        CREATE TABLE stu(
        id INT PRIMARY KEY AUTO_INCREMENT, - 给id添加主键约束和自动增长
        NAME VARCHAr(20)
        )
        INSERT INTO stu VALUES (NULL,‘ccc’);

      • 删除自动增长
        ALTER TABLE stu MODIFY id INT;

      • 添加自动增长
        ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

      • 在创建表时,可以添加外键

      • 语法:

        SELECT * FROM employee;
        SELECt * FROM department;

        • 删除外键
          ALTER TABLE employee DROP FOREIGN KEY dep_id_kf;
        • 创建表后,添加外键
          ALTER TABLE employee ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCES department (id);
        级联操作
        • 添加级联,设置级联更新
        • 设置外键以后,不能轻易去更改数据,所以就要设计到级联更新
        方法1
        • 第一步将关联表的值设为null
          UPDATE employee SET dep_id = NULL WHERe dep_id= 1;
        • 第二步修改表的外键关联值
          UPDATE department SET id = 5 WHERe id = 1;
        • 第三步进行关联表值的修改
          UPDATE employee SET dep_id = 5 WHERe dep_id IS NULL;
        方法2 添加外键实现级联更新

        ALTER TABLE employee ADD CONSTRAINT dep_id_kf FOREIGN KEY (dep_id) REFERENCES department (id) ON UPDATE CASCADE;

        • 级联删除 on delete cascade 在实际操作中,要很谨慎,关联的各个表的对应数据会在全部删除
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1041106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号