为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL8.0零基础入门之从青铜到钻石

难度入门
时长 5小时30分
学习人数
综合评分9.43
38人评价 查看评价
9.7 内容实用
9.2 简洁易懂
9.4 逻辑清晰
  • sql 语句:DDL 语句,DML 语句,DQL 语句,DCL 语句

    DDL 语句操作数据库以及的 create, drop, alter

    DML 语句对表数据进行 insert(增加),delete(删除),update(修改)

    DQL 语句对表数据进行 select 查询

    mysql 数据库约束:主键约束,唯一约束,非空约束

    控制台连接数据库

    // 登录格式1    mysql -u用户名 -p密码
    mysql -uroot -proot
    // 登录格式2    mysql -hip地址 -u用户名 -p密码
    mysql -u127.0.0.1 -uroot -proot
    // 登录格式3    mysql --host=ip地址 --user=用户名 --password=密码
    mysql --host=127.0.0.1 --user=root --password=root
    
    // exit 退出数据库

    sql 结构化查询语言

    1. DDL 数据定义语言

      1. 用来定义数据库对象:数据库,表,列。关键字:create, drop, alter

    2. DML 语句 数据操作语言

      1. 用来对数据库中表的数据进行增删改查。关键字:insert, delete, update

    3. DQL 语句 数据查询语言

      1. 用来查询数据库中表的记录(数据)。关键字:select, where

    4. DCL 语句 数据控制语言

      1. 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE

    sql 通用语法

    sql 语句可以单行或多行,以分号结尾

    可以使用空格和缩进来增强语句的可读性

    mysql 数据库的 sql 语句不区分大小写,关键字建议使用大写

    DDL 语句

    创建数据库

    --  直接创建数据库
        CREATE DATABASE 数据库名;
    --  判断是否存在并创建数据库
        CREATE DATABASE IF NOT EXISTS 数据库名;
    --  创建数据库并指定字符集(编码类型)
        CREATE DATABASE 数据库名 CHARACTER SET 字符集;
    
        CREATE DATABASE db1;
        CREATE DATABASE IF NOT EXISTS db2;
        CREATE DATABASE db3 CHARACTER SET gbk;
    
    --  查看某个数据库
        SHOW CREATE DATABASE 数据库名;
        SHOW CREATE DATABASE db1;

    修改数据库

    --  修改数据库字符集格式
        ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
    
        ALTER DATABASE db3 DEFAULT CHARACTER SET UTF8;

    删除数据库

    --  删除数据库
    DROP DATABASE 数据库名;
    
    DROP DATABASE db4;

    使用数据库

    --  查看正在使用的数据库
        SELECT DATABASE();
    --  切换数据库
        USE 数据库名;
    
        USE DB2;

    创建表

    CREATE TABLE 表名 (字段名1,字段类型1,字段名2,字段类型2......);
    
    --  建议写成如下格式
    CREATE TABLE 表名 (
        字段名1,字段类型1,
        字段名2,字段类型2,
        ......
    );
    
    CREATE TABLE student(
        id int,
        name varchar(10),
        age int,
        birthday date,
        sex char(1)
    );

    mysql 数据库常用类型

    类型描述
    int整型
    double浮点型
    varchar字符串型
    data日期类型:yyyy-mm-dd

    详细的数据类型

    分类类型名称说明
    整数类型tinylnt很小的整数

    smallint小的整数

    mediumint中等大小的整数

    int(integer)普通大小的整数
    小数类型float单精度浮点数

    double双精度浮点数

    decimal (m,d)压缩严格的定点数
    日期类型yearYYYY 1901-2155

    timeHH:MM:SS

    dataYYYY-MM-DD

    datatimeYYYY-MM-DD HH:MM:SS

    timestamp
    文本,二进制类型CHAR(M)M 为 0~255 之间的整数

    VARCHAR(M)M 为 0~65535 之间的整数

    TINYBLOB允许长度 0~255 字节

    BLOB允许长度 0~65535 字节

    MEDIUMBLOB允许长度 0~167772150 字节

    LONGBLOB允许长度 0~4294967295 字节

    TINYTEXT允许长度 0~255 字节

    TEXT允许长度 0~65535 字节

    MEDIUMTEXT允许长度 0~167772150 字节

    LONGTEXT允许长度 0~4294967295 字节

    VARBINAPY(M)允许长度 0~M 个字节的变长字节字符串

    BINARY(M)允许长度 0~M 个字节的变长字节字符串

    查看表

    --  查看某个数据库中的所有表
        SHOW TABLES;
    --  查看表结构
        DESC 表名;
    --  查看创建表的sql语句
        SHOW CREATE TABLE 表名;

    快速创建一个表结构相同的表

    CREATE TABLE 新表名 LIKE 旧表名;
    --  创建 s1 表, 表结构和student表结构相同
    CREATE TABLE s1 LIKE student;

    删除表

    --  直接删除表
    DROP TABLE 表名;
    --  判断表是否存在并删除表
    DROP TABLE IF EXISTS 表名;
    
    DROP TABLE db1;
    DROP TABLE IF EXISTS db2;

    修改表结构

    --  添加表列
    ALTER TABLE 表名 ADD 列名 类型;
    --  修改列类型
    ALTER TABLE 表名 MODIFY 列名 新的类型;
    --  修改列名
    ALTER TABLE 表名 CHANGE 旧列名 行列名 类型;
    --  删除列
    ALTER TABLE 表名 DROP 列名;
    --  修改表名
    RENAME TABLE 表名 TO 新表名;
    --  修改字符集
    ALTER TABLE 表名 character set 字符集;

    DML 语句

    插入记录

    1.关键字说明

    INSERT INTO 表名 - 表示往那张表添加数据
    (字段名1, 字段名2, ...);    -- 要给那些字段设置值
    VALUES (值1, 值2, ...);  -- 设置的具体的值

    值与字段必须对应,个数相同,类型相同

    值的数据大小必须在字段的长度范围之内

    除了数组类型外,其他字段类型的值必须使用引号引起。(建议使用单引号)

    如果要插入空值,可以不写字段,或者插入 null

    插入全部字段

    --  所有的字段名都写出来
        INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
    --  不写字段名
        INSERT INTO 表名 VALUES (值1, 值2, ...);

    插入部分数据

    --  没有添加数据的字段会使用null
        INSERT INTO 表名 (字段名1, 字段名3, ...) VALUES (值1, 值3, ...);

    案例

    --  创建db3数据库并使用
        CREATE DATABASE db3;
        USE db3;
    --  创建完整学生信息表,包括学员的id,姓名,年龄,性别,家庭地址,电话号码,生日,数学成绩,英语成绩
    CREATE TABLE student(
        id int,
        name varchar(20),
        age int,
        sex char(1),
        address varchar(200),
        phone varchar(20),
        birthday date,
        math double,
        english double
    );
    --  插入一条数据 顺序可以打乱,字段名和值要对应
    INSERT INTO student(id,name,sex,age,birthday,address,phone,math,english)values(1,'zhangsan','男','19','2010-12-11','北京市','18833336666',98.5,67);
    --  校验插入的数据,查看student表的所有字段数据
    SELECT * FROM student;

    蠕虫复制

    在已有的数据基础上,将原来的数据进行复制,插入到对应的表中

    --  语法格式化
    INSERT INTO 表名1 SELECT * FROM 表名2;
    
    --  创建student2表,student2结构和student表结构一样
    CREATE TABLE student LIKE student2;
    --  将student表中的数据添加到student2表中
    INSERT INTO student SELECT * FROM student2;
    
    --  只复制student表中name,age字段数据到student2表中使用如下格式
    INSERT INTO student2(name,age) SELECT name,age FROM student;

    更新表记录

    --  不带条件修改数据    全部修改
    UPDATE 表名 SET 字段名=值;
    --  带条件修改数据      指定范围修改
    UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
    
    --  关键字 UPDATE: 修改数据 SET: 修改哪些字段  WHERE: 指定条件
    
    --  不带修改条件,将所有的性别改为女
    UPDATE student SET sex='女';
    --  带条件修改数据,将id为2的学生性别修改为难
    UPDATE student SET sex='男' WHERE id=2;
    --  一次修改多列,把id为3的学生,年龄改为26, address改为北京
    UPDATE student SET age=26, address='北京' WHERE id=3;

    删除表记录

    --  不带条件删除数据
    DELETE FROM 表名;
    --  带条件删除数据
    DELETE FROM 表名 WHERE 字段名=值;
    
    --  带条件删除数据,删除id为3的记录
    DELETE FROM student WHERE id=3;
    --  不带条件删除数据删除表中的所有数据
    DELETE FROM student;

    truncate 删除表记录

    delete 是将表中的数据一条一条删除

    truncate 是将整个表摧毁,重新创建一个新的表,新的表结构和原来的表结构一模一样

    TRUNCATE TABLE 表名;

    DQL 语句

    简单查询

    --创建student表
    CREATE TABLE student(
        id int,
        name varchar(20),
        age int,
        sex char(1),
        address varchar(200),
        phone varchar(20),
        birthday date,
        math doub1e,
        english doub1e
    );
    --为student准备数据
    
    INSERT INTO student values(1,'闫妮',43,'女','北京市', '12222222222', '2019-02-12',92.5,88);
    INSERT INTO student values(2,'郭富城',21,'男','上海市','1666666666', '2018-06-O6',97.5,65.5);
    INSERT INTO student values(4, '张学友',34,'男','杭州市','17777777777','2013-11-17',69,65);
    INSERT INTO student values(5,'成龙',51,'男','哈尔滨市','15555555555', '2005-10-12',88,97);
    INSERT INTO student values(6,'刘德华',57,'男','盘锦市','19999999999', '2015-11-11',74.5,92.5);
    INSERT INTO student values(7,'马伊刺',42,'女','长沙市','18888888888' , '2008-03-26',86.5,71.5);
    INSERT INTO student values(8,'黎明',49,'男','昆明市','11111111111','2000-09-14',77.5,60);I

    查询表所有数据

    --  使用*表示所有列
    SELECT * FROM 表名;
    
    SELECT * FROM student;
    --  写出查询每列的名称
    SELECT 字段名1,字段名2,字段名3,... FROM 表名;
    
    SELECT id,name,age,sex,address,phone FROM 表名;

    查询指定列

    --  写出查询每列的名称
    SELECT 字段名1,字段名2,字段名3,... FROM 表名;
    
    SELECT id,name,age FROM 表名;

    别名查询

    --  查询时给列、表指定别名需要使用as关键字
    --  使用别名的好处是方便观看和处理查询到的数据
    SELECT 字段名1 AS 别名, 字段名2 AS 别名,... FROM 表名;
    
    SELECT name AS 姓名, age AS 年龄 FROM student;

    清除重复值

    --  查询指定列 并且 结果 不出现重复数据
    SELECT DISTINCT 字段名 FROM 表名;
    
    --  查询name,age列并且 结果 不出现重复name
    SELECT DISTINCT name, age FROM student;

    查询结果参与运算

    参与运算的必须是数值类型,查询显示新列,不会改动原数据

    --  某列数据和固定值运算
    SELECT 列名1 + 固定值 FROM 表名;
    --  某列数据和其他列数据参与运算
    SELECT 列名1 + 列名2 FROM 表名;
    
    SELECT math+english 总成绩 FROM student;
    SELECT name 姓名,sex 性别,math 数学成绩,english 英语成绩,math+english 总成绩 FROM student;
    
    SELECT name,age+10 FROM student;

    条件查询

    --  语法格式
    SELECT 字段名 FROM 表名 WHERE 条件;
    
    
    --  准备数据
    INSERT into hero values(1,'业瑟',35,'男',320,'战上',3000,0,1,'2017-05-14',14.2);
    INSERT into hero values(2,'阿呆',19,'女',470,'刺客',1500,1100,0,'2019-06-11',15.6);
    INSERT into hero values(3,'老人子',75,'男',430,'战士',2500,0,1, '2016-11-18',17.7);
    INSERT into hero values(4, '吕布',40,'男',500,'悦士',2700,1000,1, ' 2015-04-22',12.2);
    INSERT into hero values(5,'甄姬',27,'女',210,'法师' ,1400,1900,0,'2018-06-06',13.1);
    INSERT into hero values(6,'旗嫩',25,'女',370,'时手',1600,1200,1,'2013-02-24',11.2);
    INSERT into hero values(7,'德玛调亚',35,'男',220,'战上' , 39oo,1500,1,'2011-02-14',11.2);
    INSERT into hero values(8,'孙尚否',24,'女',260,'时手',1300,900,0,'2020-03-12',9.2);
    INSERT into hero values(9,'孙策',39,'',280,'战上',3200,1100,1,'2016-07-14',16.7);
    INSERT into hero values(10,'孙悟空',32,'男',460,'战上',2900,1300,o,'2013-02-11',17.2);
    INSERT into hero values(11,'公孙策',37,'男',210,'法师',2200,700,1, '2019-09-16',11.4);
    INSERT into hero values(12,'上行孙',22,'男',195, 'W客',1400,1700,1,'2013-02-16',12.4);
    INSERT into hero values(13,'后蕾',39,'男',420,"射手',780,700,0,'2019-01-19' ,NULL);

    比较运算符

    --  > 大于 < 小于 <= 小于等于  >= 大于等于  <>  !=  不等于
    SELECT * FROM hero where 条件(字段 运算符 筛选条件);
    
    --  查询 定位为射手的英雄
    SELECT * FROM hero where location='射手';

    逻辑运算符

    --  and 多个条件同时满足
    --  or 多个条件其中一个满足
    --  not 不满足
    SELECT * FROM hero where age>35 AND life>2500;
    SELECT * FROM hero where age>35 OR max_score<1;
    SELECT * FROM hero where id=1 OR if=4 OR id=5;
    
    --  in 关键字 in里面的每个数据都会作为一次条件
    SELECT * FROM hero where id in (1,4,5);

    范围

    --  BETWEEN 值1 AND 值2  表示从值1到值2的范围,包头包尾
    
    SELECT * FROM hero WHERE grounding_data BETWEEN '2013-01-01' AND '2017-01-01';
    SELECT * FROM hero WHERE grounding_data >= '2013-01-01' AND grounding_data <= '2017-01-01';

    like 模糊查询

    --  LIKE 表示模糊查询
    SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
    --  MySQL 通配符有两个 %: 表示0个或多个字符  _: 表示一个字符
    
    --  查询姓孙的英雄
    SELECT * FROM hero WHERE name LIKE '孙%';
    --  查询名字中含有孙字的英雄
    SELECT * FROM hero WHERE name LIKE '%孙%';
    --  查询姓孙,且姓名是三个字的英雄
    SELECT * FROM hero WHERE name LIKE '孙__';

    排序

    --  ORDER BY 子句 可以将查询的结果进行排序 (排序只是显示方式, 不会改变数据库中数据的顺序)
    SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
    --  ASC 升序,默认的 DESC 降序
    
    --  单列排序 使用一个字段进行排序
    --  查询年龄小于35的英雄,按照年龄升序排列
    SELECT * FROM hero WHERE age<=35 ORDER BY age ASC;
    
    --  组合排序 先使用第一个字段进行排序 如果第一个字段相同,才使用第二个字段进行排序。以此类推
    SELECT 字段名 FROM FROM 表名 WHERE字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
    --  查询年龄小于35岁的英雄 按照年龄升序 如果年龄相同 按照生命值降序排列
    SELECT * FROM hero WHERE age<=35 ORDER BY age ASC,lifr desc;

    聚合函数

    之前的查询都是横向查询,根据条件一行一行的进行判断,而聚合函数查询是纵向查询,对一列的值进行计算,返回结果值。聚合函数会忽略空值

    • count:  统计指定列的记录数(行数),值为NULL的不统计

    • sum:  计算指定列的数值和,如果不是数值,计算结果为0

    • max:  计算指定列的最大值

    • min:  计算指定列的最小值

    • avg:  计算指定列的平均值,如果不是数值,计算结果为0

    --  聚合函数写在sql语句SELECT 后 字段名的地方
    SELECT 字段名... FROM 表名;
    SELECT COUNT(age) FROM 表名;
    --  查询英雄的总数
    SELECT COUTN(max_SCORE) FROM hero;
    
    --  对于NULL的记录不统计,只要只用全部字段为衡量标准就不会有遗漏的错误统计出现
    SELECT COUNT(*) FROM hero;

    分组查询

    --  分组查询是使用 GROUP BY语句对查询信息进行分组  [HAVING 条件] 分组后的筛选
    SELECT 字段1,字段2... FROM 表名 GROUP BY 分组字段 [HAVING 条件];
    
    SELECT * FROM hero FROUP BY sex;
    --  这就sql语句会将sex相同的数据作为一组,但是会返回每组的第一条,没有任何意义
    
    --  分组的目的就是为了统计,一般分组会和聚合函数一起使用
    --  分组后聚合函数 不操作所有数据,而是操作一组数据
    
    SELECT SUM(life) FROM hero GROUP BY sex; --  返回两组的生命值之和
    --  当使用摸个字段分组时,需要将这个字段查询出来,否则看不到数据是属于哪组的
    SELECT SUM(life),sex FROM hero GROUP BY sex;
    
    --  查询年龄小于30的,按性别进行分组,统计每组的人数
    -- 1.先过滤年龄小于30的 2.分组 3.最后统计人数
    SELECT sex,COUNT(*) FROM hero WHERE age<30 GROUP BY sex;
    
    --  查询年龄大于25的 按性别分组,统计每组人数, 并只显示性别人数大于2的数据
    --  错误
    SELECT sex,conut(*) FROM hero WHERE age<30 GROUP BY sex WHERE COUNT(*)>2;
    --  正确
    SELECT sex,conut(*) FROM hero WHERE age<30 GROUP BY sex HAVING COUNT(*)>2;

    limit语句 分页

    limit语句是限制的意思,限制查询记录的条数。limit语句要放在最后面

    --  LIMIT语法格式
    LIMIT offset,length;  LIMIT length;
    --  offset是指偏移量,调过的记录数量,默认为0  length是指需要显示的总记录数
    
    --  查询hero表,从第三条开始显示,显示6条
    SELECT * FROM hero LIMIT 2,6;

    数据库约束

    约束种类

    • PRIMARY KEY :  主键

    • UNIQUE : 唯一

    • NOT NULL : 非空

    • DEFAULT : 默认

    • FOREIGN KEY : 外键

    主键约束

    每个表有且只有一个主键,通常以id为主键

    主键的特点:

    • 主键必须包含唯一的值(不重复)

    • 主键不能包含NULL值

    --  创建主键
    字段名 字段类型 PRIMARY KEY;
    --  创建表hero1,包含字段(id,name,age)将id作为主键
    CREATE TABLE hero1(
     id int PRIMARY KEY,
        name varchar(20),
        age int
    )

    删除主键

    -- 删除主键
    ALTER TABLE 表名 DROP PRIMARY KEY;
    -- 删除hero1表的主键
    ALTER TABLE hero1 DROP PRIMARY KEY;

    主键自增

    --  AUTO_INCREMENT表示自动增长
    
    --  创建表hero2,包含字段(id,name,age)将id作为主键并自动增长
    CREATE TABLE hero2(
     id int PRIMARY KEY AUTO_INCREMENT,
        name varchar(20),
        age int
    )

    扩展:默认的AUTO_INCREMENT的起始值是1,下列语法可以修改起始值

    AUTO_INCREMENT 表名 AUTO_INCREMENT = 起始值;

    DELETE和TRUNCATE的区别 ●DELETE删除表中的数据,但不重置AUTO_ INCREMENT的值。 ●TRUNCATE摧毁表,重建表,AUTO_ _INCREMENT重置为1

    唯一约束

    --  唯一约束
    字段名 字段类型 UNIQUE;
    --  创建表hero3,包含字段(id,name)将name设为唯一约束,不能出现相同的数据
    CREATE TABLE hero3(
     id int,
        name varchar(20) UNIQUE
    )

    非空约束

    --  非空约束
    字段名 字段类型 NOT NULL;
    --  创建表hero4,包含字段(id,name)将name设为非空约束,name不能为NULL
    CREATE TABLE hero4(
     id int,
        name varchar(20) NOT NULL
    )

    默认值

    --  默认值格式
    字段名 字段类型 DEFAULT 默认值;
    --  创建表hero5,包含字段(id,name),name默认是英雄
    CREATE TABLE hero5(
     id int,
        name varchar(20) DEFAULT '英雄'
    )



    查看全部
    26 采集 收起 来源:总结

    2020-10-17

  • 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  数据库名; //使用/切换数据库


    查看全部
  • 语法
    CREATE TABLE 表名(
    字段名1  字段类型,
    字段名2 字段类型);//创建表 与字段 
    SHOW TABLES;   // 查看某个数据库的所有表  
    DESC   表名;  //查看表结构
    SHOW CREATE TABLE 表名;  //查看建表的sql语句
    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 字符集;//修改字符集


    查看全部
  • 1.数据保存在内存

    • 内存速度快

    • 断电、程序退出,数据就清除了,内存价格贵

    2.数据保存在普通文件

    • 永久保存

    • 增删改查数据较为麻烦,效率低

    3.数据保存数据库

    • 速度快、永久保存、效率高

    • 学习成本较高

    查看全部
  • sql语句:DDL语句,DML语句,DQL语句,DCL语句

    DDL语句操作数据库以及的 create, drop, alter

    DML语句对表数据进行insert(增加),delete(删除),update(修改)

    DQL语句对表数据进行select查询

    mysql数据库约束:主键约束,唯一约束,非空约束


    查看全部
  • 输入mysql-V以后 显示mysql不是内部或外部命令
    查看全部
    2 采集 收起 来源:数据库的安装

    2021-07-14

  • 常见数据库:

    MySQL 开源免费数据库、小型数据库,已被oracle收购
    Oracle 收费的 大型数据库,Oracle公司产品
    DB2 IBM数据库产品,收费,常应用在银行系统中
    SQLserver 微软公司收费的中型数据库,C#、.net等语言常使用
    SyBase 已淡出历史舞台,提供了一个非常专业数据库建模工具PowerDesigner
    SQLite 嵌入式小型数据库,应用在手机端

    常用数据库:MySQL、Oracle;在web应用中,使用最多的就是MySQL数据库【原因:开源免费,功能足够强大,足以应付web应用开发,最高支持千万级别的并发访问】

    查看全部
  • LIMIT是限制的意思,所以LIMIT的作用就是限制查询记录的条数
      SELECT *| 字段列表 [as 别名] FROM 表名 [WHERE 子句] [GROUP BY子句] [HAVING子句] [ORDER BY子句][LIMIT子句] 
      思考:为什么LIMIT子句排在最后
      因为前面所有的限制条件都处理完了,只剩下显示多少条记录的问题了
    LIMIT语法格式
        LIMIT offset,length; 或者 LIMIT length
        offset是指偏移量,可以认为是跳过的记录数量,默认为0
        length 是指需要显示的总记录数
        例子  SELECT * FROM student LIMIT 2,6;
    LIMIT的使用的场景:分页
        如果第一个参数是0 可以简写:
        SELECT * FROM student LIMIT 0,5;
        SELECT * FROM student LIMIT 5;
        LIMIT 10,5;不够5条,有多少显示多少


    查看全部
  • SELECT * FROM 表名;// 查询表所有的数据
    SELECT 字段名1,字段名2,字段名3,... FROM 表名;
        //查询指定列
    SELECT 字段名1 AS 别名,字段名2 AS 别名, FROM 表名;
        //,别名查询 好处方便观看和出路查询到的数据 AS可以不写
    SELECT DISTINCT 字段名 FROM 表名;
        //查询指定列并且结果不出现重复数据 
    SELECT 列名1+固定值 FROM 表名;
        //某列数据和固定值运算
    SELECT 列名1+列名2 FROM 表名;   
        //某列数据和其他列数据参与运算
        参与运算的的必须是数据类型


    查看全部
  • UPDATE:修改数据
    SET:修改哪些字段
    WHERE:指定条件  
    
    UPDATE 表名 SET 字段名=值; //不带条件修改数据
    UPDATE 表名 SET 字段名=值 WHERE 字段名=值; //带条件的修改数据
     
     DELETE FROM 表名; // 不带条件的删除数据
    DELETE FROM 表名 WHERE 字段名=值;// 带条件的删除数据
    TRUNCATE  TABLE 表名;// 删除表记录
     trancale和delete的区别:
        delete是将表中的数据一条一条删除
        truncate是将整个表摧毁,重新创建一个新的表,新表的结构和原来的表的结构一样


    查看全部
  • INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
     插入记录 注意 值与字段必须对应,个数相同,类型相同
                      值得数据大小必须在字段的长度范围
                      出了数字类型外,其他字段类型的值必须使用一号引起来。(建议单引号)
                      如果要插入空值,可以不写字段,或者插入null
    INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...); 
      // 插入所有字段
    INSERT INTO 表名 VALUES (值1, 值2, ...);
      //不写字段名,值按照表结构的顺序插入数据
    INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
        //插入部分数据,没有添加数据的字段会使用null


    查看全部
  • 修改表数据

    全部修改:

    UPDATE 表名 set 列 = 修改值;

    update student set sex = '女';

    条件修改

    update student set sex = '男' where id = 2;

    多字段条件修改

    update student set sex = '女' , address = '上海' where id = 3;

    删除表

    全部删除(表还在,但为空)

    DELECT FROM 表名;

    条件删除(删除行)

    DELETE FROM student where id = 3;


    TRUNCATE TABLE 表名;     先摧毁该表,并创建一个结构名、结构一样的新表,但无数据。而delete则是一条一条的删除数据




    查看全部
  • MySQL课程大纲(上)
    1、MySQL数据库介绍
    2、常见的数据库以及适用场景
       Oracle  SQLServer
       MySQL   SyBase
       DB2     SQLite
    3、MySQL数据库的安装以及使用
    MySQL课程大纲(下)
    4、SQL语句的介绍
       数据库安装成功之后,即可通过SQL语句进行操作
    5、SQL语句的分类,DDL, DML, DQL,DCL
       SQL语句之DDL语句
          DDL语句操作数据库以及表的create(增加),drop(删除),alter(修改)等
       SQL语句之DML语句
          DML语句对表数据进行insert(增),delete(删),update(改)等
       SQL语句之DQL语句
          DQL语句对表数据进行各种维度select查询(简单查询、条件查询、模糊查询、分组查询)
    6、MySQL数据库约束
       保证数据的正确性、有效性和完整性
       主键约束,唯一约束,非空约束
    查看全部
  • https://dev.mysql.com/downloads/installer/5.5.html

    查看全部
    1 采集 收起 来源:数据库的安装

    2022-05-21

  • 聚合函数:纵向查询

    五个聚合函数:

    count:统计指定列的记录,记录为null则不统计

    sum:计算指定列的数值和,如果不是数值类型,那么计算结果为0

    max:计算指定列的最大值

    min:计算指定列的最小值

    avg:计算指定列的平均值,如果不是数值类型,那么计算结果为0

    聚合函数的使用:写在select 之后 字段名的地方

    例如: select count(字段名)from 表名;

    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
学习中需要用到这些工具: —MySQL8.0 —Navicat连接工具 —DOS窗口 你需要有这些基础: —会使用DOS窗口
老师告诉你能学到什么?
1、什么是数据库 2、数据库的安装与卸载 3、SQL基础语法 4、DDL语句--对数据库及表的增删改查 5、DML语句--对数据的增删改 6、DQL语句--对数据的查询 7、数据库表的约束

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!