Mysql快速入门

目录

Mysql快速入门

 

mysql的核心:存储引擎

Mysql 的数据类型:

        一、数值型 

       二、字符串类型

      三、时间日期类型(date(YYYY(年)-MM(月)-DD(日)),time(HH(小时):MM(分钟):SS(秒)),datetime(YYYY-MM-DD HH:MM:SS),timestamp(YYYYMMDDHHMMSS),year(M))

Mysql语句说明:

CRUD:C:create 增加R:Retrieve 获取/查询U:update 更新D:delete 删除            (发送sql语句)client------------------>server

语句分类:    流程;新建数据库--》新建表---》插入数据/更新数据/删除数据(以下语句服务与这一流程)

     一、1.sql通用语句

           2.注释方式

          3.DDL操作数据库

    1.创建数据库

    2.查看/选择数据库

    3.修改数据库

    4.删除数据库

          4.DDL操作数据表

    1.创建表

    2.查看表

    3.删除表

    4.修改表(ADD,MODIFY,change,drop)

          5,DML操作数据库

    1.插入数据:

    2.更改数据

    3.删除数据

          6.DQL操作数据库

    1.准备数据         

    2.简单查询

     3.条件查询


mysql的核心:存储引擎

{
innoDB:1.事务处理、回滚、崩溃修复能力和多版本并发控制
             2.自增长auto_increment
             3.外键(foreign key)
       优点:有良好的事物处理,崩溃修复能力和并发控制
       缺点:读写效率较差,占用的数据空间相对较大。

MyISAM:优势在于占用空间小,处理速度快。缺点在于不支持事物的完整性和并发性。

Memory:   1.数据全部放在内存中
(很少用到)  2.哈希索引

--------------------------------------------------------------------------------
    特性    |    InnoDB   |   MyISAM  |  Memory
 --------------------------------------------------------------------------------
 事务安全|    支持         |    无           |     无
 --------------------------------------------------------------------------------
 存储限制|     64TB       |    有           |     有
 --------------------------------------------------------------------------------
 }

Mysql 的数据类型:

        一、数值型 

    1.整型(int(4byte),tinyint(1byte),smallint(2byte),bigint(8byte))
    2.浮点型(float(M,D),double(M,D))    M表示有效位数,D表示小数位

       二、字符串类型

    1.普通类型(char(M)M是固定长度,整体匹配查询效率高,varchar(M)它的长度是可变的,单个字符匹配,节省空间) M表是字段的长度
    2.可变类型(text,blob)
    3.特殊类型(set,enum)

      三、时间日期类型(date(YYYY(年)-MM(月)-DD(日)),time(HH(小时):MM(分钟):SS(秒)),datetime(YYYY-MM-DD HH:MM:SS),timestamp(YYYYMMDDHHMMSS),year(M))

 

Mysql语句说明:

CRUD:
C:create 增加
R:Retrieve 获取/查询
U:update 更新
D:delete 删除
            (发送sql语句)
client------------------>server

语句分类:
    流程;新建数据库--》新建表---》插入数据/更新数据/删除数据(以下语句服务与这一流程)

      DDL语句(数据定义语言)
    创建数据库
    创建表
    修改表结构
    结构性的操作,不涉及具体存储的数据
      DML语句 (数据搜索语言)
    针对table数据表中数据的增删改,
      DQL语句 (数据查询语言)
    针对table数据表中数据的查询操作
      DCL语句 (数据控制语言)--了解
    事物的提交/回滚等

     一、1.sql通用语句

    sql语句可以单行或者多行书写,以分号结尾( ;)
    可以使用空格和缩进来增加语句的可读性
    MySql中使用sql不区分大小写,一般关键字大写,数据库名 表名 列名 小写

           2.注释方式

  

-----------------------------------------------------------
     注释语法                 |          说明
     -----------------------------------------------------------
     --空格                     |      单行注释
     -----------------------------------------------------------
     /**/                         |     多行注释
     -----------------------------------------------------------
     #                   |     Mysql特有的单行注释

          3.DDL操作数据库

    1.创建数据库

             命令                                                                 说明
             create database 数据库名;                             创建指定名称的数据库。
             create database 数据库名 character set 字符    创建指定名称的数据库,并且指定字符集(一般都指定utf8)
             集;

    2.查看/选择数据库

             命令                                                                 说明
             use 数据库名;                                                 选择指定名称的数据库。
             select database();                                            查看mysql中有哪些数据库
             show databases;            查看数据库定义信息
             例:show create database 数据库名;             查看创建数据库的信息

    3.修改数据库

             命令                                                                 说明
             alter database 数据库名 character set 字符集;数据库的字符集修改操作
             例:alter database db1 character set utf8;

    4.删除数据库

             命令                                                                 说明
             drop database 数据库名;                               从Mysql中永久的删除某个数据库
             例:drop database db1;

          4.DDL操作数据表

    0.常用的数据类型
           类型             描述
           int                整型
           double         浮点型
           varchar        字符串型
           date             日期类型(年月日)

    1.创建表

          语法格式:
        create table 表名(
               字段名称1 字段长度,
               字段名称2 字段长度,
            ........ 最后一个字段不用“,”结束
        );
        -- 复制表结构创建新表(只复制表结构)
        CREATE TABLE 待复制表明 LIKE 被复制表名;

    2.查看表

           语法格式
        查看表结构
        desc 表名;
        查看当前数据库中所有的表
        SHOW TABLES;
        查看创建表的sql语句
        SHOW CREATE TABLE 表名;

    3.删除表

             语法格式
        drop TABLES 表名;
        drop TABLES if exists 表名;先判断表是否存在再删除

    4.修改表(ADD,MODIFY,change,drop)

            #重命名表名
            rename table category to category1;
            #向表中添加列,关键字 ADD
            alter table category1 add cdsec varchar(20);
            #修改表中列的数据类型或长度,关键字 modify
            alter table category1 MODIFY cdsec int;
            #对分类表的cdsec 字段进行修改,更换为description varchar(30)
            alter table category1 change cdsec description varchar(30);
            #删除分类表中descrption这列
            alter table category1 drop description;

          5,DML操作数据库

    1.插入数据:

        插入格式:
        方式一,插入数据时,把所有字段名称全部显示写出
        insert into 表名(字段名)values   (字段值);
        方式二,插入全部字段不再写字段名
        insert into 表名 values   (字段值);
        方式三,插入指定字段值
        insert into 表名(指定字段) values   (指定字段值);

    2.更改数据

        更改格式:
        方式一
        update 表名 set 字段1 字段值1 where 字段2 字段值2;//将行中有字段2为字段值2中的字段1的值改为字段值1
        方式二
        update 表名 set 字段 字段值 ;//把字段的值全部改为指定字段值
        方式三 可以同时修改多个列
        update 表名 set 字段1 字段值1 ,字段2 字段值2;//把字段的值全部改为指定字段值

    3.删除数据

        删除格式;
        方式一:删除表中全部数据
        delete from 表名;
        方式二:删除表中自定条件的数据
        delete from 表名 where 字段 = 字段值;
        (整表删除时,delete删除效率低,表中有多少数据就执行多少次,不推荐使用)
        高效删除格式:
        truncate table 表名;(先删除整张表,然后再重新创建一摸一样的表)

          6.DQL操作数据库

    1.准备数据         

    ~~~~~~~~

    2.简单查询

        查询格式:
        #查询emp表中所有数据
        select * from emp;
        #查询部分字段
        select enaem as '员工姓名',salary as '工资' from emp;
        select enaem '员工姓名',salary '工资' from emp;
        #去重操作  查看有多少部门
        select distinct dept_name from emp;
        #运算查询
        select enaem,salary+1000 from emp;    

 
    3.条件查询

        查询格式:
        select 列名 from 表名 where 条件    

 
             3.1运算符     

        1.比较运算符

        >(大于)  <(小于)  <=(小于等于)  >=(大于等于)  =(等于)  !=(不等于)
        BETWEEN...AND....-------------(显示在某一区间的值)例:where 字段名  between 数值 and 数值
        IN(集合)------------------------集合表示多个值,使用逗号分隔,例:where 字段名  in(值1,值2....)
        LIKE'%赵%'---------------------模糊查询 ,例:where 字段名 like'%字符%'(包含字符的)/'字符%'(以字符开头的)/'%字符'(以字符结尾的)
            模糊查询通配符(% 表示匹配任意多个字符串   -  表示匹配一个字符)
            #查询含有’精'的所有员工信息
            select * from emp where enaem like '%精%';
            #查询第二个字为'兔'的所有员工信息
            select * from emp where enaem like '_兔%';
        IS NULL------------------------查询某一列为NULL的值,注:不能写 = NULL

        2.逻辑运算符 

        and  &&-----------------------多个条件同时成立
        or ||----------------------------多个条件任意成立
         Not----------------------------不成立,取反