zoukankan      html  css  js  c++  java
  • MySQL服务器2

    1.sql的基本语法

      对数据库

        create database db1;  创建数据库

      对表:

        create database t1(id int,name char(10));  创建表

        show create table t1;  查看创建的t1表

        show tables;  查看所有的表

        desc t1;  查看表的详细结构

      对数据:

        insert into t1(id,name) values(1,"zhang"),(2,"qing");  插入数据

        insert into t1 value(3,"qing");

        select id from t1;  查询ti表的id

        select id,name from t1;

        select * from t1;

        select * from db1.t1 where id = 2;

        关系型数据库 mysql,db2,oracle,sqlite 表中存储

        非关系型数据库 monogodb redis

                key:value 基于model模型 obj.insert

    2.存储引擎

      mysql 5.5版本之后默认为innodb存储引擎

      另外还有mysiam、memory、blackhome

      #memory,在重启mysql或者重启机器后,表内数据清空

      #blackhole 往表内插入任何数据,都相当于丢入黑洞 表内永远不存记录

      复制表结构和表数据

        create table a1 select * from db2.t1;

      值复制表结构

        create table a2 select * from db2.t1 where 1>2;

        create table a3 like db2.t1;

    3.数据类型

      1.数字:

        整型:tinyint int bigint

        小数:

          float:不精准(位数比较短)

          double:不精准(位数比较长)

          decimal:精准(内部原理是以字符串形式去存的)

      2.字符串:

        char(10):简单粗暴,浪费空间,存取速度快

        varchar:精准,节省空间,存取速度慢

        sql优化:创建表时,定长的类型往前放,,变长的往后放

      3.时间类型:

        year,date,time,datetime

      4.枚举类型与集合类型

        enum 和set

      整型默认是signed有符号的 范围-128~127

        sql中没有boolean类型 使用tinyint(1)来表示boolean值 1表示true 0表示false

      int类型后面的存储是显示宽度而不是存储宽度,其他的数据类型都是存储宽度

        所以我们来设计表的时候 int类型的字段不用加显示宽度默认是总长度的位数+1

        总结一句话,定义int类型不需要加宽度,使用默认值就行

      datetime

          now() sql的内置函数 根据数据类型生成对应的时间格式

      char 定长 存储速度快 浪费空间

      varchar 变长 存储速度慢  节省空间

      enum 枚举:表示多选一

      set 集合 :表示多选一或者多选多

    create table consumer(
                        id int unsigned,
                        name varchar(20),
                        sex enum('male','female','other'),
                        level enum('vip','svip','vvip'),
                        fav set('smoke','drink','tangtou')            
                    
                    );
                    
    insert into consumer values(1,'一 宁','other','vvip','smoke,drink,tangtou');
    View Code

    小结:

      数据类型:

        整型 tinyyint int bigint

        浮点型:float double decimal

        时间:year data time  datatime

        字符:char 定长>varchar 变长>text 文本

        枚举:enum

        集合:set

        布尔:boolean tinyint(1) 存储

        函数:now()根据字段的数据类型获取当前的时间格式

            lenght()获取字节数

            char_lenght()获取字符长度

        sql默认是有符号的 signed,如果设置无符号unsigned 要显示用0填充 zerofill

    4.约束 ******

      作用保证数据的完整性和一致性

      表的设计

        1.not null 与 default

          create table tb1(id int not null default 2,name char(20) not null);

          insert into tb1 values(1,"zhang");

          insert into tb1(name) values("qing");  

          insert into tb1(id) values(3);  x

        2.unique

          单列唯一

            create table dep(id int not null,name varchar(20) unique);

            insert into dep(id,name) values(1,"zhang");

            insert into dep(id,name) values(2,"zhang");  x

          多列唯一 表示每一列都唯一

            create table dep2(id int unique,name varchar(20) unique);

            inset into dep2(id,name) valuse(1,"zhang");

            insert into dep2(id,name) valuse(1,"qing"); x

            insert into dep2(id,name) values(2,"zhang"); x

          组合唯一(联合唯一)只要有一列不同就能插入数据

            create table dep3(

              id int,

              name varchar(20),

              unique(id,name)          

            );

            insert into dep3(id,name) values(1,"zhang");

            insert into dep3(id,name) values(1,"qing");

            insert into dep3(id,name) values(2,"zhang");

            insert into dep3(id,name) values(1,"zhang");   x

      3.primary key(索引优化查询)

        sql版本中,一张表中值允许有一个主键,通常都是id,cid,sid.....

          create table stu(id int primary auto_increment,name varchar(10) unique);

          insert into stu(name) values("zhang");

          化学反应 not unll + unique

          create table (id int not unll unique auto_increment,name varchar(20) unique);

          primary key (索引优化) 查询大量数据

      4.auto_increment

        自增

        

  • 相关阅读:
    Qt类继承关系图
    回归Qt——写在Qt5.10发布之日
    Jdk1.7下的HashMap源码分析
    Jdk1.8下的HashMap源码分析
    八皇后||算法
    设计模式之一单例模式
    多线程之美8一 AbstractQueuedSynchronizer源码分析<二>
    多线程之美7一ReentrantReadWriteLock源码分析
    多线程之美6一CAS与自旋锁
    多线程之美5一 AbstractQueuedSynchronizer源码分析<一>
  • 原文地址:https://www.cnblogs.com/qq849784670/p/9791726.html
Copyright © 2011-2022 走看看