zoukankan      html  css  js  c++  java
  • MySQL学习(二)

    1 增删改查是针对表来说的。

    2 创建一个表

    mysql> create table stu(
        -> id int primary key auto_increment,
        -> sname varchar(10) not null default '',
        -> gender char(1) not null default '',
        -> company varchar(20) not null default '',
        -> salary decimal(6,2) not null default 0.00,
        -> fanbu smallint not null default 0
        -> )engine myisam charset utf8;
    

    3如果在表中加入列,那么表的结构就发生了改变

    4查看表的结构

    desc 表名;
    

    5插入数据
    往那张表添加? stu
    给那几列添加值? (id,sname,gender,company,salary,fanbu)
    添加的内容是什么? (1,‘张三’,‘男’,‘百度’,8888.67,234)

    mysql> insert into stu (id,sname,gender,company,salary,fanbu)
        -> values (1,'张三','1','百度',8888.67,234);
    Query OK, 1 row affected (0.43 sec)
    

    部分插入

    mysql> insert into stu (sname,gender,salary)
        -> values ('李四','2',8765.43);
    Query OK, 1 row affected (0.38 sec)
    

    查看一下当前表的数据

    在上例中,虽然没有插入id,但是id为自增类,所有值为2。

    6 如果插入所有的列,则可以不声明待插入的列,即如果不声明插入的列,则理解为依次插入所有列。

    7 有同学认为id是自增型的,插入时不必赋值,** 这是一种常见的错误,列与值必须按照顺序一一对应。**

    8 连接服务器

    G:mysql-8.0.13-winx64mysql-8.0.13-winx64in>mysql -uroot -p
    Enter password: ******
    

    9 一次性插入多行

    mysql> insert into stu (sname,company,salary)
        -> values
        -> ('刘备','皇室成员',15.28),
        -> ('孙策','江东集团',56.34),
        -> ('曹操','宦官后代',88.66);
    Query OK, 3 rows affected (0.53 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    

    10 更改数据:考虑
    改那张表?
    你需要改哪几列的值?
    在那些行生效?
    典型的错误

    mysql> update stu
        -> set
        -> fanbu = 1000;
    Query OK, 6 rows affected (0.38 sec)
    

    这种是非常危险的语句!会影响整张表

    正确的用法

    
    mysql> update stu
        -> set
        -> fanbu = 1
        -> where id = 1;
    


    where 后加的是表达式,只要表达式为真,则该行就发挥作用。
    更改性别为女性(gender=2),且薪水大于8800(salary>8000)的,将其饭补改为200

    mysql> update stu
        -> set fanbu = 200
        -> where gender = '2' and salary>8800;
    Query OK, 1 row affected (0.33 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    

    11 修改/删除
    删除就是删除整行,不存在删除一行中的某几列
    删那张表的数据?
    删那几行?
    删除薪水大于8800的数据(salary>8800)

    mysql> delete from stu
        -> where salary>8800;
    Query OK, 2 rows affected (0.32 sec)
    

    注意下面的语句:

    mysql> delete from stu;
    Query OK, 4 rows affected (0.38 sec)
    

    表没有删除,但是表中的所有数据都被删除了。

    12 查询3要素
    查那张表的数据?
    查那些列?

    mysql> select sname ,company,salary from stu where id=3;
    

    查看所有行,所有列

    mysql> select * from stu;
    

    *代表所有列,表名后又不加where条件,则选所有行。因此取出了所有行所有列。
    练习:
    取id>3的列

     select * from stu where id>3;
    

    取部分行,部分列

    mysql> select sname,salary from stu where id<4;
    

    where后面的是表达式,表达式为真,则执行
    以上是最基本的增删改查,针对单个表来说。

  • 相关阅读:
    知识全聚集 .Net Core 技术突破 | 如何实现一个模块化方案一
    企业项目实战 .Net Core + Vue/Angular 分库分表日志系统六 | 最终篇-通过AOP自动连接数据库-完成日志业务
    企业项目实战 .Net Core + Vue/Angular 分库分表日志系统五 | 完善业务自动创建数据库
    企业项目实战 .Net Core + Vue/Angular 分库分表日志系统四 | 强化设计方案
    企业项目实战 .Net Core + Vue/Angular 分库分表日志系统三 | 控制反转搭配简单业务
    企业项目实战 .Net Core + Vue/Angular 分库分表日志系统二 | 简单的分库分表设计
    SDN+DPI文献阅读(2)
    SDN中的Heavy-Hitter测量文献阅读
    DPI技术简介
    SDN+DPI文献阅读
  • 原文地址:https://www.cnblogs.com/Manual-Linux/p/10161325.html
Copyright © 2011-2022 走看看