MySQL 初学基本语法

一、数据库信息操作

        1.查询所有数据库:  show databases;

        2.创建数据库:create database 数据库名;

        3.查看数据库默认字符集:show create database 数据库名;

        4.删除数据库:drop database 数据库名;

        5.修改数据库:alter database 数据库名 default character set gbk;    (将数据库的默认字符集改为gbk,在创建的初期默认为utf8)

二、表管理

       在进行第一次表操作的之前,需要使用 : use 数据库名;

        1.查看所有表信息:show tables;

        2.创建表信息:

//在第一打开mysql的时候要先说明使用的是哪一个数据库

//use 数据库名称;

create table student(  //mysql语句不区分大小写,在写表名时也要注意此种情况
sid int primary key, //主键 (auto_increment  代表自增)
sname varchar(20),
sage int
);

      3.查看表结构:desc 表名;

      4.删除表:drop table 表名;

      5.修改表:

              1)添加字段:

                  alter  table  表名  add column 字段名称 字段格式;

      例如:alter  table  student  add  column  sgender char(4);   (其中column是可以省略的)

             2)删除字段:

                  alter table 表名 drop column 字段名称;

     例如:alter table student drop column sgender; 

             3)修改字段类型:

                  alter table 表名 modify column 字段名称  新的字段格式;

     例如: alter table student modify column sgender varchar(10);

            4)修改字段名称:

                 alter table 表名 change column 字段名称 新字段名称 字段格式;

    例如:alter table student change column sgender gender varchar(10);

            5)修改表名称:

                 alter table 表名 rename to 新表名;

    例如:alter table student rename to teacher;

三、数据操作

     1.增删改数据

       1)添加数据:

             --插入所有字段,一定要按顺序插入!(注意不能少字段或多字段值)

            insert into 表名 values (数据1,数据2,...);

例如:insert into student values(1,'张三','男',20);

             --插入部分字段(插入的数据一定要与字段名称相匹配,不能多也不能少)

            insert into 表名 (字段名称1,字段名称2,...) values(数据1,数据2,...);

例如:insert into student(id,name) values(2,'李四');

      2)修改数据:

             --修改所有数据(慎用)

            update 表名 set 字段名称=字段值;

例如:update student set gender = '男';     (慎用:此操作会修改所有表中student的gender信息!)

            --带有条件的修改(推荐使用)

            update 表名 set 字段名 = 字段值 where 条件;   (条件可多个修改字段也可多个,用逗号隔开即可)

例如:update student sgender = '女' where id = 1;

     3)删除数据:

           --删除所有数据(慎用)

            delete from  表名;(建议少用)

例如:delete from student; 

           --带条件的删除(推荐使用)

           delete from 表名;(条件可多个)

例如:delete from student where id = 2;

          --delete from 与 truncate之间的区别

          --delete from :可以全表删除   1)可以带条件删除  2)只能删除表的数据,不能删除表的约束  3)使用delete from 删除的数据可以回滚(事务)

          --truncate :可以全表删除  1)不能带条件删除  2)既可以删除表的数据,也可以删除表的约束  3)使用truncate删除的数据不能回滚

         truncate 用法: truncate table 表名;

 

 2.查询数据(重点)

     2.1查询所有列:

            select * from 表名;

例如:select * from student;

    2.2查询指定列:

            select 字段名称1,字段名称2,... from 表名;

例如:select id,name,gender from student;

   2.3查询时添加常量列(as的用法)

            select  字段名称 as 'xxx'  from 表名;

例如:select name as '姓名' from student;

   2.4查询时和并列:

            select (字段名称1+字段名称2) as 'xxx' from 表名;  (合并列只可合并数据类型相同的字段)

例如:select (id+score) as '总成绩' from student;

  2.5查询时去除重复记录:

            select distinct 字段名称  from 表名;

            select distinct (字段名称) from 表名;

例如:select distinct (name) from student;

  2.6条件查询(where)

     1)逻辑查询 and 和 or

and:指的是且,相当于java语言中的&,取交集

            select 字段名称  from 表名 where 条件1 and 条件2 ;   (指的是同时满足条件1和条件2的字段信息)

例如:select name from student where id =1 and gender = '女'; 

or:指的是或者,相当于java语言中的 | ,取的是并集

            select 字段名称 from 表名  where 条件1 or 条件2;      (指的是满足条件1或者满足条件2的字段信息)

例如:select name from student where id = 1 or gender = '女';

    2)比较查询(> 、< 、!= 、 <>)

          != 与<> 意思相同,都是指不等于

            select  字段名称 from 表名  where  字段名称  比较标识符  比较值;

例如:select nam from student where age > 20;

    3)判断空条件(null空字符串):is not null / is null

注意区分 null 和 ' '之间的区别,' '要用比较查询中的比较标识符

           select 字段名称  from 表名 where 字段名称 is null ;

                                                                                      is not null;

例如:select name from student where gender is null;

    4)模糊查询:like

%: 代表任意长度字符

_ :代表一个字符

            select 字段名称  from 表名 where  字段名称 like '%x';

            select 字段名称  from 表名 where  字段名称 like '_x';

%、_ 可放在前亦可放在后

例如:select gender from student where name = '%五';

  2.7 聚合查询

--常用聚合函数:sum()、avg()、max()、min()、count()

            select 聚合函数(字段名称) from 表名;

例如:select sum(score) from student;

--注意:count() 函数统计的数量不包含null的数据

--当使用count() 函数进行统计的时候,要使用不包含null值的字段

  2.8分页查询(limit 起始行,查询几行)

--起始行从0开始

--分页:当前页  每页显示多少条数据

--分页查询当前页的数据

            select字段名称  from 表名 limit  (当前页-1) * 每页显示多少条数据, 每页显示数据;

例如:select * from student limit 0,2; (代表第一页的数据,每页显示2条数据)

  2.9 查询排序(order by)

            select 字段名称 from 表名 order by 字段名称 asc; (asc 默认排序 或者正序排序)

                                                                                        desc;(desc 反序)

例如:select * from student order by score desc; (意为根据学生成绩从高到低排序)

      --多个排序条件

           select 字段名称 from 表名 order by 字段名称1 排序符, 字段名称2 排序符,...; (在第一个排序的基础上,如果有相等的则再根据第二个排序条件排序) 

例如:select * from student order by score desc, name asc;

 2.10 分组查询(group by)

            select 字段名称 from 表名 group by 字段名称;

            --可以通过count(字段名称)来统计分组后每一组的人数

            select 字段名称,count(字段名称) from student group by 字段名称;

例如:select gender,count(gender) from student group by gender; (其中的count(gender) 也可以换做count(*))

2.11分组之后筛选(having)

          依照2.10分组排序的例子,对分组后的数据进行筛选 ,筛选出人数大于2的记录

           select gender,count(*) from student where group by gender having count(*) >2;

注:分组之前条件使用where ,分组之后条件使用having 关键字

 

ps:笔者在书写博客时,可能会有错误之处,若有误,方请及时指出,万望诸君海涵

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值