MySQL学习记录一

手动启动mySql

1.手动

2.cmd —>services.msc 打开服务的窗口

3.使用管理员打开cmd

   net start mysql   :  启动mysql的服务

   net stop  mysql  :关闭mysql的服务

 

mysql登陆

  1.mysql  -uroot   -proot   (其中proot中的root是密码)

  2.mysql -hip -uroot -proot(其中ip为远程数据库ip,proot中root 为要连接的目标数据库密码)

3. Mysql  --host=127.0.0.1 --user=root  --password=root

 

mysql退出

  exit

  quit

 

Mysql目录结构:

1.mysql的安装目录: bin

2.mysql的数据目录:

  几个概念:

     数据库:文件夹

     表:文件

     数据:文件中的数据

3.mysql的配置文件:my.ini

 

操作Mysql

什么事SQL?

使用sql(structured Query Language):结构化查询语言

其实就是定义了操作所有关系型数据库的规则.每一种数据库的操作存在不一样的地方,称为“方言”

 

2.SQL通用语法

  1.SQL语句可以单行或多行书写,以分号结尾

  2.可使用空格和缩紧来增强语句的可读性

  3.MySQL数据库的SQL不区分大小写,关键字建议使用大写

  4.三种注释

   *单行注释:— 注释内容 或 # 注释内容(mysql特有),双横杠注释内容和横杠之间之间必须有空格

   *多行注释:/*注释*/

 

3.SQL的分类

1)DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等。关键字:create, drop, alter等

2)DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改。关键字:insert, delete,update等

3)DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)。关键字:select,where等

4)DCL(Data Control Language)数据控制语言(了解),用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等。

 

客户端图形化工具:SQLYog

 

1.创建表:

create table student(

Id int,

name varchar(32),

age int,

score double(4,1),

birthday date,

insert_time timestamp

)

2.复制表:

create table 表名 like 被复制的表名

 

3.查某个数据库中所有表名:

show tables

查询表结构:

desc 表名

 

4.修改表的名称

alter table 表名 rename to 新的表名;

修改表的字符集

alter table student character set  字符集名称(utf8)

添加一列

alter table 表名 add 列名 数据类型

修改列的类型

alter table 表名 modify 列名 新的数据类型

修改列的名称,类型

alter table 表名 change 旧列名(gender) 新列名(sex) 新的数据类型(varchar(20))

删除列

alter table 表名 drop 列名

删除表:

drop table 表名

drop table  if exists 表名

 

DML:

1.添加数据:

insert into 表名(列名1,列名2,…,列名n) values(值1,值2,…值n)

*列名跟值要一一对应;

*如果表名后不定义列名,则默认给所有列添加值

*除了数字,其他的值都需要用引号引起来,单引号双引号都可以

2.删除数据:

delete from 表名 where 条件

*如果不加条件则删除表中所有记录

*如果删除表中所有记录:

delete from 表名 --不推荐

truncate table 表名 --删除表,然后再创建一个一摸一样的空表

3.修改数据:

update 表名 set 列名1=值1,列名2=值2,列名n=值n

*如果不加条件,则会对表中所有的数据进行操作

DQL:

查询表中所有数据

select * from 表名

1.语法

   select

            字段列表

   from

            表名列表

  where

           条件列表

  group by

           分组字段

  having

           分组之后的条件

  order by

           排序

  limit

           分页限定

 

2.基础查询

  1.多个字段的查询

Select  列1,列2,*from 表名

  2.去除重复的结果集:DISTINCT

  select DISTINCT  列名 from 表名    DISTINCT是去除重复结果,保证结果集完全一样才会去重

  1. 计算列的值之和,一般只进行数值型的计算:

    IFNULL(表达式1,表达式2):

       表达式1:哪个字段需要判断是否为null;

       表达式2:如果该字段为null的替换值

     select name, math, english,math+IFNULL(english,0) from student

   4.起别名 as 也可以省略:

     select name, math 数学, english 英语, math+IFNULL(english,0) as 总分 from student

 

  1. 条件查询

       1.where子句后跟条件

       2.运算符:

           *<,>,<=,=>,=,<>

          select * from student where age <>20       //<>不等于,等价于!=

           *BETWEEN…AND

           select * from student where age BETWEEN 20 AND 30  //20-30之间

           *IN(集合)

            select * from student where age IN (19,22,25)  //查询19,22,25岁的信息

           *LIKE

            //查询姓马的人

           select name from student where name LIKE ‘马%’;// _表示单个任意字符,%%表示多个任意字符

           //查询第二个字是化的人

           select name from student where name LIKE ‘_马%‘;

           //查询姓名是三个字的人

            select name from student where name LIKE ‘___’;//三个下划线

           //查询包含的 的人

            select name from student where name LIKE ‘%的%’;

           *IS NULL

           select english from student where english IS NULL   //null值不能使用等号去判断,所以查询使用IS NULL,英语成绩为null

          select english from student where english IS NOT NULL   //英语成绩不为null

           *and 或&&

            select * from student where age>20  and age<30  //20-30之间

           *or 或 ||

           *not 或 !

 

DQL查询

      1.排序查询

          语法:   order by子句

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

          排序方式:

                 ASC:升序,默认

                DESC: 降序

         按照数学成绩排名,如果数学成绩相同,按照英语成绩排名

         select * from student ORDER BY math ASC,english ASC;

        注意:如果有多个排序条件,当前边的条件值一样式,才会判断第二条件

 

      2.聚合函数

         将一列数据作为一个整体,进行纵向的计算

        1.count():计算个数:一般选择非空的列:主键

        Select count(需要计算的列的名称) from 表名

        2.max():计算最大值

        Select max(需要计算的列的名称) from 表名

        3.min():计算最小值

         Select min(需要计算的列的名称) from 表名

        4.sum():计算和

         Select sum(需要计算的列的名称) from 表名

        5.avg():计算平均值

        Select avg(需要计算的列的名称) from 表名

       注意:聚合函数的计算会排出null值

               解决方案:1.count的时候为null的使用ISNULL();

                                 2.不包含非空的列进行计算

    3.分组查询:

        1.语法:group by 分组字段

        分组查询男女同学平均分,分数低于70分的不参与分组,分组之后人数要大于2个人;

       select sex AVG(math),count(id) FROM student where math >70 GROUP BY sex Having count(id) >2;

select sex AVG(math),count(id) 人数 FROM student where math >70 GROUP BY sex Having 人数>2;

        2.注意:

                分组之后的查询字段,查询分组字段和聚合函数,其他字段无意义

                where和Having的区别:

                 where在分组之前进行限定,如果不满足条件,则不参与分组。Having在分组之后进行限定,如果不满足结果,则不                  会被查询出来。

                where后不可以跟聚合函数,having后可以进行聚合函数的判断。

    4.分页查询

         1.语法:limit(参数1,参数2) 参数1:开始的索引,参数2:每次查询的数量

        //查询第一页,每页查询三条数据

         select * from student LIMIT 0,3;--第1页

         select * from student LIMIT 3,3;—第2页

         2.公式:开始的索引=(当前的页码-1)*每页显示的条件

         3.分页操作是一个“方言”,limit是Mysql中的,orcle跟其他的不一样

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值