zoukankan      html  css  js  c++  java
  • MySQL用程序代码建表(1)

    一、创建表格代码格式

    create table <表名>
    (
    <列名> <数据类型及长度> [not null],
    <列名> <数据类型及长度>,
    ...
    <列名> <数据类型及长度>
    )

    例:

    #人员基本信息表
    create table Info       //建立表名为Info的表格
    (
    xuhao int primary key auto_increment,    //建列名为xuhao的列,数据类型为整数类型,设为主键并且自增长排列
    name varchar(50),  //建列名为name的列,数据类型为字符串类型,长度为50个字符
    sex bit,         //建列名为sex的列,数据类型为布尔型
    minzu varchar(50),    //建列名为minzu的列,数据类型为字符串类型,长度为50个字符
    foreign key(minzu) references Nation(code),   //对于minzu列建立外键,用表名为Nation的code列为约束
    #minzu varchar(50) references Nation(code),  //建外键的另一种格式,但是运行后在外键设置界面中不显示
    shengri datetime,  //建列名为shengri的列,数据类型为日期时间类型
    height double(6,2) //建列名为height的列,数据类型为小数类型,总长度为6,小数点后留2位
    );

    命令语句:

    primary key 主键
    not null 非空
    foreign key(子表列名) references <父表名>(父表列名) 外键
    auto_increment 自增长

    注意:所有符号必须是英文状态下的
    每个表创建完之后加分号
    表里面的最后一列写完之后不要加逗号

    二、删除表格代码格式

    drop table <表名>

    三、表格内数据的操作

    大致可分为增、删、改、查  CRUD

    1.添加数据
    insert into <表名>[(列1,列2...)] values (<‘值1’>[,‘值2’...])
    注意:
    (1)列与值要匹配(数量,类型,排序)
    (2)列可以省掉,但值必须与表中的总列数和列的次序完全对应

    (3)部分数据添加时自增长列(即主键列)不能省,不给明确值的要给自增列赋值‘'
    (4)布尔型数据不用‘’用true/false代替,数字类型也不用‘’可直接写数字

    例:

    insert into Info(xuhao,name,minzu,shengri)values(‘’,‘张三’,‘n003’,‘1992-2-2’)  //在Info表中添加姓名为张三,民族为n003,生日为1992-2-2 其中‘’为自增长列表示顺序增加,以其上一条内容的xuhao值向后自动增加,其余列为null

    2.删除数据

    delete from Brand    //删除所有数据

    delete from car where code='c001'   //删除表car中code列为c001的行的数据
    delete from car where brand='b001' or brand='b004'  // 删除表car中brand列为b001和b004的行的数据
    delete from car where brand='b001' || brand='b004'  // 删除表car中brand列为b001和b004的行的数据
    delete from car where brand='b007' && price>50      //删除表car中brand列为b007并且price列大于50的行的数据
    delete from car where brand='b007' and price>50    //删除表car中brand列为b007并且price列大于50的行的数据

    3.更改数据

    update <表名> set <列=值>[,列=值...] where .....

    例:
    update info set sex='1' where code='p003'    // 将info表中code列为p003的行的sex列的数据改为1
    update info set sex='0',nation='n004',birthday='1999-9-9' where code='p001'    //将info表中code列为p001的行的sex列改为0,nation列改为n004,birthday列改                                                                                                                       为1999-9-9
    update car set price=price * 0.9 where price > 30   //将car表中price列大于30的price列的数据乘以0.9
    update car set price =price * 0.95 where (brand='b006' || brand='b005')&&price>30   // 将car表中brand列为b006和b005并且price列大于30的price列的数据乘以                                                                                                                                0.95

    4.查找数据

    select * from 表名
    select 列名1,列名2... from 表名 --投影
    select * from 表名 where 条件 --筛选

    (1)条件查询
    select * from car where code='c001';   // 从car表中查找code列为c001的行的数据
    select * from car where code != 'c001';  // 从car表中查找code列不为c001的行的数据
    select * from car where price > 30;    //从car表中查找price列大于30的行的数据
    (2)范围查询
    select * from car where price >=30 && price <=50;  //从car表中查找price列大于等于30并且小于等于50的行的数据 (&&=and)
    select * from car where price between 30 and 50     //从car表中查找price列大于等于30并且小于等于50的行的数据
    select * from car where brand='b002' || brand='b004' || brand='b006'  //从car表中查找brand列为b002、b004、b006的行的数据(||=or)

    (3)分类查询
    select * from car where brand in ('b002','b004','b006')     //从car表中查找brand列为b002、b004、b006的行的数据

    select * from car where brand not in ('b002','b004','b006')     //从car表中查找brand列不为b002、b004、b006的行的数据

    (4)模糊查询
    select * from car where name like '宝马%'    //从car表中查找以“宝马”开头的所有数据    %表示任意多个任意字符
    select * from car where name like '%5%'    // 从car表中查找中间包含“5”的所有数据
    select * from car where name like '%型'      // 从car表中查找以“型” 结尾的所有数据
    select * from car where name like '__5%'    // 从car表中查找第三位是“5”的所有数据    _ (下划线)表示一个任意字符

    (5)排序
    select * from 表名 order by 列名 [ASC/DESC],列名[asc/desc]....

    select * from car order by price desc     // 将car表的数据按照price列数据降序排列
    select * from car order by brand desc,price asc   // 将car表的数据按照brand列数据降序排列,price列数据升序排列

  • 相关阅读:
    Linux设置复制粘帖的快捷方式
    UC伯克利发布一个低成本家居机器人,会叠衣服、会泡咖啡
    称职QA经理必备的13项技能
    李开复:AI正在从黑科技变成主流,传统公司都需要“CAIO”
    为什么纸牌游戏Hanabi是人工智能的下一个挑战
    专家质疑亚马逊面部识别技术:机器眼里女士皮肤黑就等于是男人
    日媒联手高科技公司利用人工智能预测新闻对企业的影响
    Python 封王,Java和C宣布永久退出竞争舞台
    李开复:AI进入商用时代 偏重科研的“黑科技”非创业主旋律
    AI医疗与人类疾病的竞跑:5G落地,就像“三甲”到家
  • 原文地址:https://www.cnblogs.com/m-m-g-y0416/p/5528574.html
Copyright © 2011-2022 走看看