• 多测师肖老师_mysql之建表语句和约束(7.4)


    1、create   database    新库名        新建库

     2、查看所有的仓库

     3、use   库名      使用库

     4、show  tables      查看库中所有表

    5、create  table  表名(字段名 1  字符类型(字符长度),字段名2   字符类型(字符长度));

    案例:create  table  hz015(id int(10),name char(20));

     6、格式:INSERT into  表名 VALUES(值1,值2);       插入数据

    方法一:

    案例:INSERT into  hz015 VALUES(1,"xiaozhu");

    方法二:

    格式:INSERT into  表名(字段1) VALUES(值1);       插入部分数据

    INSERT into  hz015 (id)VALUES(4);

    7、desc    表名    查看 表结构

    1、建库

    2、使用库

    3、建表

    4、插入数据

    5、对数据增删改查

     ================================

    建表:

    create  table    表名(  字段名1,数据类型(数据的长度)约束;字段名2,数据类型(数据的长度)约束   )

     ================================

    字符类型:

    一个汉字占多少   长度和编码有段 (gbk  和  utf8  这些都是字符集格式,)

    utf-8:  一个汉字等于 3个字节

    gbk  :一个汉字等于2个字节

    常用的类型:

    (1)数值类型

    int         字节:4            大整数值   

    bigint    字节:8            极大整数值

    float       字节:4           浮点数  

    (2)字符类型

    char    0-255        定长字符串

    varchar      0-65535  字节      变长字符串

    (3)时间类型

    date    yyyy--mm-dd   年月日           字节3

    time   hh:mm:ss       时分秒     字节:3

    date time   日期+时间    字节:8

    year    年       字节:1

     ================================

    约束:

    实际上就是表中的限制条件

    作用:表在设计的时候加入 约束的目的是为了保证表中的记录完整和有效

    约束种类:

    1、非空约束   (not  null) 非空  用于保证字的值不能为空

    2、唯一约束    (unique)   简称:(uni)  保证字段值具有唯一性,一个表可以有多个,能为空

    3、主键约束   (primary  key)简称 :pri    保证字段值具有唯一性 、一个表中只用一个,不能为空

    4、默认值       (default )

    5、auto_incrment  自增长

    备注:与主键约束一起使用

    6、空值插入使用:null

    7、保证中文显示,在建表语句后加上:  default   charset=utf8

    案例1:

    create table aa(id int(10) PRIMARY key ,age int(10) default 18 ,sfz int(40) UNIQUE )DEFAULT CHARSET=utf8 ;
    select * from aa ;
    desc aa ;   

    INSERT  into   aa(id,sfz)  VALUES(1,1232)

    案例2:

    SELECT * from dt;
    create table dt( name char(10), n year not null ,cj_data char(10));
    INSERT into dt VALUES("tian",1995,11112222)

     ================================

    删除表:

    格式:drop  table   表名;

    案例:drop  table   bb ;

     ================================

    表结构:

    (1)添加表字段 add

    格式:alter  table   表名  add   字段名    字段类型(字符长度);

    案例:alter  table   da  add age  int(10);

     (2)修改表字段  change

    格式:alter  table   表名  change  原字段名   新字段名   新字符类型(新字符类型长度 );

    案例:alter  table   da   change  age   sex  char(10 );

    (3)删除表字段  drop

    格式:alter  table  表名  DROP    删除的字段名 ;

    案例:alter  table  da  DROP  name ;

    (4)调换表字段的顺序

    a、first  字段放在第一位

    格式:ALTER table 表名 add  新字段名   字符类型(字符长度) first ;

    案例:ALTER table da add id int(10) first ;

    b、modify          after   (在什么后面)

    格式:ALTER  table   表名  modify  字符类型(字符长度)   after  原字段  ;

    案例:ALTER  table   da  modify  age int(10)  after  id  ;

     ================================

    查询语句:

    select  语句

    (1)查询一个表中所有的数据

    格式:SELECT   *   from   表名;

    案例:SELECT   *   from   hz015 ;

    (2)查询一个表中部分字段的数据

    格式:SELECT   字段名1,字段名2  from   表名 ;

    案例:SELECT   id  from   hz015 ;

    备注:用,逗号分隔

    (3)取别名  as    查询语句

     (4)指定条件查询内容

    格式:SELECT   *   from   表名 where  条件 ;

    案例:SELECT   *   from   hz015 where id=1 ;

     条件:比较运算符,and,or  ,in ,not  in   ,between   and ,is  null    ,is not  null

    where 条件使用注意:

    比较运算符:(=,>,<,>=,<=,!=(不等于),<>(不等于))

    SELECT   *   from   hz015 where id=1 ;

    SELECT   *   from   hz015 where id>1 ;

    SELECT   *   from   hz015 where id<3 ;

    SELECT   *   from   hz015 where id<=3 ;

    SELECT   *   from   hz015 where id>=3 ;

    SELECT   *   from   hz015 where id<>3 ;

    SELECT   *   from   hz015 where id!=3 ;

    and  条件   同时满足所有条件,  比如  :条件1和条件2 同时满足

    格式:select *  from表名  where  条件1 and  条件2 ;

    案例:select *  from   emp  where  dept2=101  and  incoming>3000 ;

    or 条件   满足所有条件中的其中一个条件,  比如  :条件1和条件2 满足其中一个或都满足

    格式:

    select * from   表名 where   条件1 or 2条件 ;

    案例:select * from emp where dept2=101 or incoming>5000 ;


    between     and   在什么范围内

    格式:SELECT   *   from  表名  where   条件  between    开始值   and  结束值;

    案例:SELECT   *   from   hz015 where id  between   2 and  4;

    in  在一组数据中选(或匹配其中的数据)

    格式:select * from   表名 where  字段   in (匹配的值)

    案例:select * from hz015 where id in (1,3,10,11)

    not  int     匹配不在一组数据中的数据

    格式:select * from   表名 where  字段   not   in (不匹配的值)

    案例:select * from hz015 where id not in (1,3,10,11)

    is  null    为空

    格式:select * from  表名 where 字段名 is null ;

    案例:select * from hz015 where name is null ;

    is  not   null  不为空

    格式:select  *  from  表名  where   字段名   is  not null ;

    案例:select  *  from   hz015  where name is  not null ;

    ==================================================

    order by   排序

    升序:asc

    默认:asc  可以不写

    格式:select * from 表名   ORder by   字段名 ;

    案例:select * from emp ORder by incoming ;

    格式二:select * from 表名   ORder by 字段名    asc ;

    案例:select *  from   emp  ORder by   incoming  asc ;

    降序:desc

    格式:select  *  from   表名  ORDER BY  字段名  desc ;

    案例:select  *  from    hz015  ORDER BY  id  desc ;

    二次排序

    格式:select *  from   表名  ORder by  字段1 desc  , 字段2     desc ;

    案例:select *  from   emp  ORder by  dept2  desc  ,incoming desc ;

    ==================================================

    like  模糊匹配查询

    % :表示匹配0个字符或多个字符

    —:表示一个字符

    案例1:select *  from   emp  where  sid like  "15%";   表示匹配15开头的数据

    案例2:select *  from   emp  where  sid like  "%6%"; 表示匹配含有6的数据

    案例3:select * from emp where sid like "%4";  表示匹配4结尾的数据

    案例4:select *  from   emp  where  sid like  "___4"; 表示匹配具体的字符数结尾,或开头

    ==================================================

    limit     显示行数,限制作用

    limit    m,n    m表示是下标, n 表示步长

    表中下标是从0开始,

    案例1:select *  from  emp  limit 0,3;  0 表示索引第一行,3表示一共显示3行

    案例2:select *  from  emp  limit 3,2;  3表示第四行,2 表现显示两行

    ==================================================

    group  by  分组

    having  接条件,和我们where  一样 ,

    group  by  分组后查询出来结果,在根据条件接having

    案例:select   dept2,sum(incoming)  from   emp  group  by   dept2 ;

    案例2:select   dept2,sum(incoming) s  from   emp  group  by   dept2  HAVING s>10000 ;

    ==================================================

    函数:

    max  最大值

    min  最小值

    avg  平均值

    count  统计

    sum  求和

    distinct  去重

    select max(incoming) as "最高工资" from emp ;  最高工资
    select min(incoming) from emp ; #最少工资
    select avg(incoming) from emp ; #平均工资
    select count(incoming) from emp ;#发工资的人数
    select sum(incoming) from emp ; #工资总额
    select DISTINCT(dept2) from emp ; # 去重

    ==================================================

    update    set    改

    格式 :update  表名   set      修改的字段=字段新值  where  条件

    案例:update  hz015  set  name="xiaozhang" where  id=4 ;

    案例:update hz015 set name="xiaozhang" where id=4 or id=1 ;

    ==================================================
    drop  删除数据库和删除表    速度快

    truncate    快速删除

    delete     删除

    drop > treuncate>delete

    ===============================

    delete

    (1)DELETE from 表名     删除整个表的数据,表还存在 ;

    案例:DELETE from hz015 ;

    (2)DELETE from 表名  where   条件    删除指定的内容

    案例:DELETE  from   hz015  where   id=4 ;

    ===============================

    drop 

    (1)drop   库名  删除库

    案例:drop  database  kk ;

    (2)删除表

    格式:drop table  表名 ;

    案例:drop table  hz015 ;

    ===============================

  • 相关阅读:
    每种特定的迭代器如何使用
    常量迭代器
    容器迭代器
    三十分钟掌握STL
    高快省的排序算法
    FloatTest32 Example
    /浮点数的比较
    java第一天
    ACwing 898
    POJ 3268
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/15702841.html
Copyright © 2020-2023  润新知