一天学完mysql

数据库

概念:DataBase 简称DB  用于存储和管理数据的仓库

特点 : 其实数据库就是一个文件系统  方便存储和管理数据  使用了统一的方式操作数据库sql

常见的数据库软件        Oracle  MySQL  SQLServer  ……….

MySQL

安装,去百度

卸载

  1. 找到安装目录 找到my.ini文件 复制C:/ProgramData/MySQL/MySQL Server 8.0/Data
  2. 卸载mySQL
  3. 删除C:/ProgramData/MySQL文件

登陆

cmd下services.nsc打开服务

打开cmd 输入 mysql  -uroot  -p密码

远程登陆  mysql –hIP  -uroot  -p密码

mysql  --hostIP  --user = root  --password = 密码

 

退出exit   quit

sql通用语法

  1. 以单行或多行书写,以分号结尾
  2. 以空格和缩进来增强可读性Mysql数据库的sql语句不区分大小写 ,关键字建议使用大写来书写
  3. 注释

单行注释 – 注释内容或    # 注释内容(mysql特有)

多行注释 /* 注释 */

  1. SQL(Structurd Query Language) 结构化查询语言

其实就是定义了操作所有关系型数据库的规则

每一种数据库操作的方式存在不一样的地方,称为方言

sql语句

  1. DDL(Data Definition Language) 定义数据库对象 create  drop  alter
  2. DML(Data Manioulation Language)数据库操作语言  增删改  insert  delete  update
  3. DQL(Data Query Language) 数据库查询语句  select  where
  4. DCL(Data Control Language) 数据库控制语言 定义数据库的访问权限和安全级别的,及创建用户 grant  revoke

数据类型

  1. int 整数类型      age  int;
  2. double:小数类型     double( 最多有几位小数  ,  保留几位小数 );
  3. date : 日期               只包含年月日 ,   yyyy-MM-dd
  4. datetime : 日期,包含年月日时分秒   yyyy-MM-dd  HH:mm:ss
  5. timestamp : 时间戳,包含年月日时分秒   yyyy-MM-dd  HH:mm:ss  如果为空默认用当前的系统时间
  6. varchar :字符串    name  varchar(20);  指定长度

DDL : 操作数据库

操作数据库:CRUD

C(create) : 创建

         创建一个数据库  create database  名字;

判断一下存不存在,存在就不会创建

创建时判断是否存在,设置字符集

创建名为first的数据库,判断是否存在,并指定字符集编码为gbK

create  database  if  not  exists  first  character  set  gbk;

 

R(Retrieve): 查询

         show databases; 查询所有数据库的名称

show  create  database;  数据库名称                            查看某个数据库对应的字符集

U(Update) : 修改

         修改数据库的字符集    alter database 数据库名称 character s;唠嗑节能环保GV从 et 字符集名称

        

D(Delete) : 删除数据库

         drop  database  数据库名称;  

drop  database  if  exists  two; 删除前判断一下 如果存在就删除

使用数据库

         查询当前正在使用的数据库名称 select database();

         使用数据库   use 数据库名称; 

 操作表CRUD

C(create) : 创建表

         create  table  表名(                              create table student(

                  列名1  数据类型,                                  id int,

列名1  数据类型,                                  name varchar(10),

列名1  数据类型,                                   age int,

);                                                                           score double(4,1),

                                                                           birthday date,

                                                                            insert_time timestamp

                                                                  );

复制表    create  table  表名  like  要复制的表名;

R(Retrieve): 查询表

         查询表名称:  show tables;

         查询表结构:  desc 表名;( desc students;)

U(Update) : 修改

  1. 修改表名

alter table 表名 rename  to  新的表名

  1. 修改表的字符集

查看表的字符集   show  create  table  表名;

修改表的字符集   alter  table  表名 character set 要改为的啥编码;

  1. 修改字段 类型  alter table 表名 change  字段名  改为的字段名  新字段的数据类型;

只改数据类型   alter table 表名 modify  字段名  新的数据类型

  1. 添加字段

alter table 表名 add 要添加的字段名  数据类型;

  1. 删除字段

alter table 表名 drop 要删除的字段名

D(Delete) : 删除表

                  drop table 表名;

drop table if exists 表名;  判断如果有就删除

DML增删改表中数据

  1. 添加数据 :

insert  into  表名(字段名1 , 字段名2,…..字段名n) values( 值 , 值 , …… ,值);                列名和值一一对应

insert  into  表名  values( 值 , 值 , …… ,值);             默认给所有的字段添加值

除了数字类型,其他类型需要引号(单双都可以)

  1. 删除数据 : delete from 表名 where 条件;      如果不加条件,删除表中所有记录(DELETE FROM students WHERE id = 1;)

  truncate table 表名;                                 删除表中所有记录删除表然后在创建一个一模一样的表(TRUNCATE table students;)

  1. 修改数据 : update 表名 set 列名1 = 值1,列名2 = 值2  where id = ??;

DQL 查询表中的数据

create table student(

id int,

name varchar(20),

age int,

sex varchar(5),

address varchar(100),

math int,

english int

);

insert into student(id,name,age,sex,address,math,english) values

(1,'马云',55,'男','杭州',66,78),

(2,'马化腾',45,'女','深圳',98,87),

(3,'亚索',55,'男','香港',56,77),

(4,'剑圣',15,'男','北京',83,0),

(5,'剑魔',15,'男','杭州',90,66),

(6,'鳄鱼',15,'女','上海',70,98),

(7,'德玛',35,'女','上海',88,62),

(8,'寒冰',52,'男','上海',46,76);

select * from 表名;( SELECT * FROM student;)

  1. 语法

select

字段列表 

from

         表名列表     ()以逗号分割)

where

         条件列表

group by                   (分组查询)

         分组字段

having

         分组之后的条件

order by

         排序

limit

         分页限定

  1. 基础条件
  1. 多个字段查询: select  字段名,…  from  表名;

 select name,age,address from student;  查询name  ,  age  ,address  字段

  1. 去除重复: select  distinct  字段 from  student;   多个字段需要这几个字段值都重复(完全相同)才去掉

select distinct age from student;   去除年龄的重复

  1. 计算列 : 可以使用加减乘除运算来计算一些列的值

select  name,math,english,math+english  from  student;               计算math 和 english的和

ifnull(  可能为空的字段名   ,   为空时当做几)              select name,math,ifnull(english,0),math+english from student;               如果为空当做0

  1. 起别名  as   也可以省略             select  name  姓名,math  数学,ifnull(english,0)  as 英语,math+english  as  总分  from  student;
  1. 条件查询
    1. >  <  >=  <=  =  <>(不等于)           SELECT NAME,age FROM student WHERE age > 20;
    2. like 模糊查询                                           

占位符 :  _ :单个任意字符                 select * from student where name like '_化_';

                   % :多个任意字符       SELECT * FROM student WHERE NAME LIKE '%马%';

    1. is null                                                 select * from student where english is null;(is not null)                          查询英语为null的 ( null只能用 is null)
    2. and 或 && 并且                       select name,age from student where age > 20 && age <46;
    3. between ….  and                          select * from student where age BETWEEN 20 and 46;
    4. or 或 ||        或                           select * from student where age = 20 or age = 35 or age = 55;
    5. in(集合)                                             select * from student where age in(20,35,55);
    6. not 或 !          非                            select * from student where english is not null;
  1. 排序查询

语法:    order by 子句

          order by 排序字段1   排序方式1 , 排序字段2  排序方式2 …

排序:  升序 asc (可省略,默认的)  select * from student order by math  asc; -- 按照数学升序排序

            降序 desc                          SELECT * FROM student ORDER BY math DESC; -- 按照数学降序排序

                  相等按第二排序字段排序   SELECT * FROM student ORDER BY math DESC , english DESC; -- 按照数学升序排序,相等就按第二条排

  1. 聚合函数  : 将一列数据作为一个整体,进行纵向计算的;
  1. count : 计算个数                     select count(name) from student;  -- 计算有多少人
    1. 会排除null值   解决:  ifnull(English,0)  如果是空就换为0   count(*)
  2. max  : 计算最大值                select max(math) from student;  -- 计算数学最高分
  3. min  : 计算最小值                 select min(math) from student;  -- 计算数学最低分
  4. avg  : 计算平均值                          SELECT AVG(math) FROM student;  -- 计算数学平均分
  5. sum  : 计算列的和                select sum(math) from student;  -- 计算数学总分

6.     组查询

        

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL宋红康学习日记是宋红康在学习MySQL数据库过程中记录的笔记和心得体会。在这个学习日记中,宋红康详细地记录了自己的学习过程以及遇到的问题和解决方法。 首先,宋红康在学习日记中介绍了MySQL数据库的基本概念和原理。他学习了MySQL的架构和组成部分,包括服务器端、客户端和存储引擎。他还学习了MySQL的常用数据类型和索引类型,了解了MySQL如何存储和管理数据。 其次,宋红康记录了自己学习MySQL的过程和方法。他通过阅读官方文档、参考书籍和观看教学视频等途径,系统地学习了MySQL的各种功能和语法。他还提到自己在学习过程中遇到的一些问题,如数据查询和更新的语法错误,以及性能优化的挑战等。他通过查找资料和请教他人的帮助,成功地解决了这些问题,并对解决方法进行总结和归纳。 此外,宋红康还分享了自己在使用MySQL时的一些经验和技巧。他介绍了一些常用的MySQL命令和操作,如创建数据库、建表、插入和查询数据等。他还分享了一些优化数据库性能的方法,如使用索引、合理设计数据结构和加强查询语句的效率等。这些经验和技巧对于其他学习MySQL的人来说是非常有价值的。 最后,在学习日记的结尾,宋红康总结了自己在学习MySQL过程中的收获和感受。他认为MySQL是一种功能强大、应用广泛的数据库系统,掌握MySQL的技能对于他的职业发展非常重要。在学习的过程中,他不仅加深了对数据库原理和操作的理解,还培养了自己分析和解决问题的能力。 总之,MySQL宋红康学习日记是宋红康在学习MySQL过程中的记录和总结,对于其他学习MySQL的人来说是一份宝贵的学习资料和参考指南。 ### 回答2: MySQL宋红康学习日记 今天我开始学习MySQL数据库,对于数据库的概念和作用有了初步了解。数据库是一个存储和管理数据的系统,可以方便地对数据进行增删改查操作。而MySQL是目前最流行的关系型数据库管理系统之一。 首先,我学习了MySQL的安装和配置。通过官方网站下载并安装了MySQL,然后进行了一些基本的配置,如设置用户名和密码等。安装完成后,我尝试连接并登录到MySQL服务器,成功进入了MySQL的命令行界面。 接下来,我学习了数据库的创建和管理。在MySQL中,可以使用CREATE DATABASE语句来创建一个新的数据库。我创建了一个名为“mydb”的数据库,并使用USE语句将其设为当前数据库。然后我学习了如何创建表格,表格是用来存储数据的基本单位,可以通过CREATE TABLE语句定义表格的结构和字段。 在创建表格后,我学习了如何向表格中插入数据。使用INSERT INTO语句可以将数据插入到表格中的指定字段中。我尝试了一些简单的插入操作,并成功地将一些测试数据插入到了表格中。 除了插入数据,我还学习了如何查询数据。可以使用SELECT语句从表格中提取数据。通过指定字段和条件,可以过滤和排序所查询的结果。我尝试了一些简单的查询操作,查找了符合条件的数据,并进行了一些排序操作。 在学习了基本的增删改查操作后,我对MySQL的学习有了初步的了解。下一步,我将继续学习MySQL的高级特性和优化技巧,以提高数据库的性能和效率。我相信通过不断的学习和实践,我能够更加熟练地使用MySQL,并能够应对更复杂的数据库操作。 ### 回答3: MySQL宋红康学习日记是宋红康学习MySQL数据库的记录和总结。MySQL是一种开源的关系型数据库管理系统,被广泛应用于网站开发、数据分析和企业应用等领域。宋红康根据自己的学习经历和体会,记录了他在学习MySQL过程中的所思所感。 学习MySQL的第一天,宋红康首先了解了MySQL的基本概念和特点。MySQL是使用C和C++编写的,支持多用户多线程的数据库管理系统。它具有高性能、稳定可靠等特点,可以处理大量的数据和高并发的请求。宋红康对MySQL的这些特点表示非常欣赏,并意识到MySQL在现代互联网时代的重要性。 第二天,宋红康开始学习MySQL的基本操作。他学习了如何创建数据库、创建表和插入、更新、删除数据等基本操作。他通过实际操作,深入理解了SQL语句的执行过程和结果。 第三天,宋红康学习了数据库的设计和规范化。他了解了关系型数据库的基本原理和范式理论。他明白了数据库设计的重要性,以及遵循规范化原则对提高数据存储效率和数据一致性的重要性。 第四天,宋红康开始学习MySQL的高级应用。他学习了索引的创建、查询优化和事务处理等内容。他深入研究了索引的原理和使用方法,并学会了如何通过优化SQL语句提高查询性能。他还了解了事务的概念和特点,并通过实例演示了事务的使用方法。 第五天,宋红康开始进行MySQL的实战练习。他通过编写简单的应用程序,实现了与MySQL数据库的交互。他学会了使用编程语言与MySQL进行连接,并通过SQL语句实现数据库的增删改查操作。他深刻体会到了MySQL在实际应用中的价值和重要性。 总结起来,宋红康的MySQL学习日记记录了他在学习过程中的所学所悟。通过系统学习和实践,他对MySQL的基本概念、基本操作、数据库设计、高级应用和实际应用都有了较深入的了解。这些学习将为他今后的数据库工作奠定了坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值