风马一族_mysql,管理数据库

船停在新乡是很安全的,但那不是造船的指标!

船停在黄冈是很安全的,但那不是造船的目标!

1、数据库(database)管理

数据库:存放数据的仓库;

 

 

1.1 create 创制数据库

硬盘  运行内部存款和储蓄器

用户

用户

1.2 show 查看全部数据库

mysql 现在被oracle收购了

  1. 开创用户
    1. mysql>grant 权限(select,insert,update,delete) on 
      数据库.数据表  to  用户名@电脑的地方  identified by
      “用户的密码” 

      1. 权力  【有多种权限】
        1. select      查询
        2. insert      插入
        3. update    修改
        4. delete  删除 
      2. 数量库.数据表 【有多种写法】  
        1. *.*           表示全数数据库与富有数据表         
          全体
        2. *.user          表示拥有数据库的user表              
          某些表的数据库
        3. mysql.*        表示数据库mysql的有着数据表      
          某些数据库
        4. mysql.user  表示数据库mysql的数据库user表 
          有些数据库的某部数据表
      3. 用户名@电脑的地方
        1. 用户名          要创制的用户名称,不可能跟原来的用户名相同
        2. 计算机的地点   mysql软件探讨所在的处理器一而再
          1. 在协调电脑使用时,用 127.0.0.1
          2. 与服务器的mysql交互时,用服务器的IP  
    2. mysql> grant select,insert,update,delete on mysql.* to
      ceosows@127.0.0.1 identif ied by “ceosows”;
      Query OK, 0 rows affected (0.01 sec)
    3. mysql> grant select,insert,update,delete on *.* to
      ceosows@127.0.0.1 identif ied by “ceosows”;
      Query OK, 0 rows affected (0.01 sec)
  2. 翻看用户
    1. select *
      from 数据库.数据表
    2. select *
      from mysql.user            
  1. 创办用户
    1. mysql>grant 权限(select,insert,update,delete) on 
      数据库.数据表  to  用户名@电脑的地方  identified by
      “用户的密码” 

      1. 权限  【有三种权限】
        1. select      查询
        2. insert      插入
        3. update    修改
        4. delete  删除 
      2. 数码库.数据表 【有多种写法】  
        1. *.*           表示拥有数据库与持有数据表         
          全数
        2. *.user          表示全部数据库的user表              
          有个别表的数据库
        3. mysql.*        表示数据库mysql的装有数据表      
          某些数据库
        4. mysql.user  代表数据库mysql的数据库user表 
          有些数据库的某部数据表
      3. 用户名@电脑的地方
        1. 用户名          要开创的用户名称,不能够跟原来的用户名相同
        2. 电脑的地方   mysql软件商讨所在的计算机延续
          1. 在大团结电脑使用时,用 127.0.0.1
          2. 与服务器的mysql交互时,用服务器的IP  
    2. mysql> grant select,insert,update,delete on mysql.* to
      ceosows@127.0.0.1 identif ied by “ceosows”;
      Query OK, 0 rows affected (0.01 sec)
    3. mysql> grant select,insert,update,delete on *.* to
      ceosows@127.0.0.1 identif ied by “ceosows”;
      Query OK, 0 rows affected (0.01 sec)
  2. 查阅用户
    1. select *
      from 数据库.数据表
    2. select *
      from mysql.user            

1.3 alter 改动数据库

oracle  oracle公司

 

 

1.4 use 使用数据库

sqlServer 微软的

数据库常用的命令:

数据库常用的通令:

1.5 查看当前使用的数据库

貌似都以关系型数据库管理软件

  1. 开创数据库
    1. mysql>create database 数据库名 ;
  2. 彰显数据库
    1. mysql>show databases;
    2. +——————–+
      | Database                |
      +——————–+
      | information_schema   |
      | mysql                       |
      | performance_schema |
      | test                         |
      | twwq                       |
      | xhkdb                      |
      +——————–+
      6 rows in set (0.02 sec) 
  3. 除去数据库
    1. drop database 数据库名;
    2. mysql> drop database twwq;
      Query OK, 0 rows affected (0.05 sec)
  4. 接连数据库
    1. use 数据库名;
    2. mysql>use twwq;
      Database changed
  5. 查看 当前连年的数据库
    1. mysql>select database();
      +————+
      | database()  |
      +————+
      | twwq          |
      +————+
      1 row in set (0.00 sec)
  1. 始建数据库
    1. mysql>create database 数据库名 ;
  2. 来得数据库
    1. mysql>show databases;
    2. +——————–+
      | Database                |
      +——————–+
      | information_schema   |
      | mysql                       |
      | performance_schema |
      | test                         |
      | twwq                       |
      | xhkdb                      |
      +——————–+
      6 rows in set (0.02 sec) 
  3. 删除数据库
    1. drop database 数据库名;
    2. mysql> drop database twwq;
      Query OK, 0 rows affected (0.05 sec)
  4. 延续数据库
    1. use 数据库名;
    2. mysql>use twwq;
      Database changed
  5. 查看 当前连接的数据库
    1. mysql>select database();
      +————+
      | database()  |
      +————+
      | twwq          |
      +————+
      1 row in set (0.00 sec)

1.6 drop 删除数据库

mysql(数据库管理软件)–数据库–表—行

数据表的常用命令

数据表的常用命令

2、数据表(table)管理

sql语言:structured query language  结构化查询语言

  1. 创建表
    1. create table 表名(<字段名1> <类型1>
      [,..<字段名n> <类型n>]);       
      //警告:没有给表填加字段,会出错
    2. mysql> create table registered(id int(8) not null primary key
      auto_increment,
          -> username char(20) not nul
          -> password char(20) not null,
          -> repassword char(20) not null);
      Query OK, 0 rows affected (0.19 sec)
  2. 查看表
    1. mysql>desc 表名 ; (方式一)      mysql> show columns from
      表名; (方式二)
    2. mysql>desc registered; (方式一)      mysql> show columns
      from registered;(方式二 )
      +————+———-+——+—–+———+—————-+
      | Field        | Type       | Null   | Key  | Default   |
      Extra               |
      +————+———-+——+—–+———+—————-+
      | id               | int(8)       | NO   | PRI   | NULL      |
      auto_increment |
      | username    | char(20)  | NO    |        | NULL     
      |                        |
      | password    | char(20)  | NO    |        | NULL     
      |                        |
      | repassword | char(20)  | NO    |        | NULL     
      |                        |
      +————+———-+——+—–+———+—————-+
      4 rows in set (0.01 sec)
  3. 修改表
    1. rename table (原先的)表名  to (修改后的)表;
    2. mysql> rename table registered to sows;
      Query OK, 0 rows affected (0.06 sec)
    3. 查看效果
      1. mysql> desc sows;
        +————+———-+——+—–+———+—————-+
        | Field        | Type       | Null   | Key  | Default   |
        Extra              |
        +————+———-+——+—–+———+—————-+
        | id               | int(8)      | NO    | PRI   | NULL    
        | auto_increment |
        | name          | char(20)  | YES  |         | NULL    
        |                        |
        | password    | char(20)  | NO    |        | NULL    
        |                        |
        | repassword | char(20)  | NO    |        | NULL    
        |                        |
        +————+———-+——+—–+———+—————-+
        4 rows in set (0.01 sec)      
  4. 删除表
    1. mysql>drop table 表名;            //警告:永久性删除数据表,慎用
    2. mysql>drop table registered;
      Query OK, 0 rows affected (0.05 sec)  
  5. 追加    alter add命令用来扩充表的字段。
    1. 增加字段
      1. alter table 数据表 add 字段 参数 其他;
      2. mysql> alter table registered add sex char(2);
        Query OK, 0 rows affected (0.33 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 查看效果
        1. mysql> desc registered;
          风马一族_mysql,管理数据库。+————+———-+——+—–+———+—————-+
          | Field           | Type        | Null   | Key | Default
          | Extra                 |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)       | NO    | PRI |
          NULL    | auto_increment   |
          | username    | char(20)   | NO    |      | NULL   
          |                          |
          | password    | char(20)   | NO    |      | NULL   
          |                          |
          | repassword | char(20)   | NO    |      | NULL   
          |                          |
          | sex             | char(2)    | YES   |      | NULL   
          |                          |        //增加sex 字段
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec) 
        2. mysql> desc registered;   
          E福特ExplorerRO昂科雷 1146 (42S02): Table ‘twwq.registered’ doesn’t
          exist   //原因表名被涂改,因此原先的表名,无法运用了
    2. 修改字段
      1. alter table 数据表 change (要被改动的)字段 
        (修改后的)字段  参数;
      2. mysql> alter table registered change username name
        char(20);
        Query OK, 0 rows affected (0.33 sec)
        Records: 0  Duplicates: 0  Warnings: 0  
      3. 查阅效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key  |
          Default  | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO     | PRI  |
          NULL     | auto_increment |
          | name          | char(20)  | YES   |        | NULL    
          |                        |        // username   修改成 
          name
          | password    | char(20)  | NO     |        | NULL    
          |                       |
          | repassword | char(20)  | NO     |         | NULL    
          |                      |
          | sex            | char(2)    | YES    |         |
          NULL     |                      |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)   
    3. 剔除字段
      1. alter table 数据表 drop 字段;
      2. mysql> alter table registered drop sex;
        Query OK, 0 rows affected (0.31 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 翻看效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key  |
          Default  | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL     | auto_increment |
          | name          | char(20)  | YES  |        | NULL     
          |                        |
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL     
          |                       |
          +————+———-+——+—–+———+—————-+  
          //sex 字段 已经被剔除
          4 rows in set (0.01 sec)             
    4. 加索引  
      1. alter table 数据表 add index
        索引名(【已经存在于表的】字段名);
      2. mysql> alter table registered add index
        sows_name(username);
        Query OK, 0 rows affected (0.17 sec)
        Records: 0  Duplicates: 0  Warnings: 0 
      3. 查看效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key | Default
          | Extra                 |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL    | auto_increment  |
          | username    | char(20)  | NO    | MUL | NULL    
          |                        |   //Key 字段出现 MUL
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL    
          |                        |
          | sex            | char(2)    | YES   |        | NULL 
             |                        |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)  
    5. 删去索引
      1. alter table 数据表 drop index 索引名;
      2. mysql> alter table registered drop index sows_name;
        Query OK, 0 rows affected (0.15 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 查阅效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key |
          Default   | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL     | auto_increment |
          | username    | char(20)  | NO    |        | NULL    
          |                        |  //key 字段的始末没有
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL    
          |                        |
          | sex            | char(2)    | YES   |        | NULL  
            |                        |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)                
  6. 安排数据
    1. mysql>insert into 数据表(字段 
      //要是已经落到实处步骤1,则毫不再写字段) values
      (依照字段的数量,变量类型、变量长度要求、是不是同意为空,来展开填写内容)
    2. mysql> insert into registered values
      (1,’sows’,’asqw1234′,’asqw1234′),(2,’ceo’,’
      aswe1322′,’aswe1322′),(3,’jk’,’qazxsw12′,’qazxsw12′);
      Query OK, 3 rows affected (0.01 sec)
      Records: 3  Duplicates: 0  Warnings: 0      // 成功插入
      3条数据
  7. 翻开表中的数目    //准确性的查询所需数据
    1. mysql>select * from 数据表;                        
      //获取表中存有数据

      1. mysql>select * from  registered;
        +—-+———-+———-+————–+
        | id    | username | password | repassword |
        +—-+———-+———-+————–+
        |  1   | sows        | asqw1234 | asqw1234   |
        |  2   | ceo          | aswe1322  | aswe1322   |
        |  3   | jk            | qazxsw12  | qazxsw12   |
        +—-+———-+———-+————–+
        3 rows in set (0.00 sec)      //获取到3条数据
  1. 创建表
    1. create table 表名(<字段名1> <类型1>
      [,..<字段名n> <类型n>]);       
      //警告:没有给表填加字段,会出错
    2. mysql> create table registered(id int(8) not null primary key
      auto_increment,
          -> username char(20) not nul
          -> password char(20) not null,
          -> repassword char(20) not null);
      Query OK, 0 rows affected (0.19 sec)
  2. 查看表
    1. mysql>desc 表名 ; (方式一)      mysql> show columns from
      表名; (方式二)
    2. mysql>desc registered; (方式一)      mysql> show columns
      from registered;(方式二 )
      +————+———-+——+—–+———+—————-+
      | Field        | Type       | Null   | Key  | Default   |
      Extra               |
      +————+———-+——+—–+———+—————-+
      | id               | int(8)       | NO   | PRI   | NULL      |
      auto_increment |
      | username    | char(20)  | NO    |        | NULL     
      |                        |
      | password    | char(20)  | NO    |        | NULL     
      |                        |
      | repassword | char(20)  | NO    |        | NULL     
      |                        |
      +————+———-+——+—–+———+—————-+
      4 rows in set (0.01 sec)
  3. 修改表
    1. rename table (原先的)表名  to (修改后的)表;
    2. mysql> rename table registered to sows;
      Query OK, 0 rows affected (0.06 sec)
    3. 查看效果
      1. mysql> desc sows;
        +————+———-+——+—–+———+—————-+
        | Field        | Type       | Null   | Key  | Default   |
        Extra              |
        +————+———-+——+—–+———+—————-+
        | id               | int(8)      | NO    | PRI   | NULL    
        | auto_increment |
        | name          | char(20)  | YES  |         | NULL    
        |                        |
        | password    | char(20)  | NO    |        | NULL    
        |                        |
        | repassword | char(20)  | NO    |        | NULL    
        |                        |
        +————+———-+——+—–+———+—————-+
        4 rows in set (0.01 sec)      
  4. 删除表
    1. mysql>drop table 表名;            //警告:永久性删除数据表,慎用
    2. mysql>drop table registered;
      Query OK, 0 rows affected (0.05 sec)  
  5. 追加    alter add命令用来扩展表的字段。
    1. 扩充字段
      1. alter table 数据表 add 字段 参数 其他;
      2. mysql> alter table registered add sex char(2);
        Query OK, 0 rows affected (0.33 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 查看效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type        | Null   | Key | Default
          | Extra                 |
          997755.com澳门葡京,+————+———-+——+—–+———+—————-+
          | id               | int(8)       | NO    | PRI |
          NULL    | auto_increment   |
          | username    | char(20)   | NO    |      | NULL   
          |                          |
          | password    | char(20)   | NO    |      | NULL   
          |                          |
          | repassword | char(20)   | NO    |      | NULL   
          |                          |
          | sex             | char(2)    | YES   |      | NULL   
          |                          |        //增加sex 字段
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec) 
        2. mysql> desc registered;   
          E君越RORAV4 1146 (42S02): Table ‘twwq.registered’ doesn’t
          exist   //原因表名被修改,由此原先的表名,不能利用了
    2. 修改字段
      1. alter table 数据表 change (要被改动的)字段 
        (修改后的)字段  参数;
      2. mysql> alter table registered change username name
        char(20);
        Query OK, 0 rows affected (0.33 sec)
        Records: 0  Duplicates: 0  Warnings: 0  
      3. 查阅效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key  |
          Default  | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO     | PRI  |
          NULL     | auto_increment |
          | name          | char(20)  | YES   |        | NULL    
          |                        |        // username   修改成 
          name
          | password    | char(20)  | NO     |        | NULL    
          |                       |
          | repassword | char(20)  | NO     |         | NULL    
          |                      |
          | sex            | char(2)    | YES    |         |
          NULL     |                      |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)   
    3. 删除字段
      1. alter table 数据表 drop 字段;
      2. mysql> alter table registered drop sex;
        Query OK, 0 rows affected (0.31 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 翻开效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key  |
          Default  | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL     | auto_increment |
          | name          | char(20)  | YES  |        | NULL     
          |                        |
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL     
          |                       |
          +————+———-+——+—–+———+—————-+  
          //sex 字段 已经被删除
          4 rows in set (0.01 sec)             
    4. 加索引  
      1. alter table 数据表 add index
        索引名(【已经存在于表的】字段名);
      2. mysql> alter table registered add index
        sows_name(username);
        Query OK, 0 rows affected (0.17 sec)
        Records: 0  Duplicates: 0  Warnings: 0 
      3. 查看效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key | Default
          | Extra                 |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL    | auto_increment  |
          | username    | char(20)  | NO    | MUL | NULL    
          |                        |   //Key 字段出现 MUL
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL    
          |                        |
          | sex            | char(2)    | YES   |        | NULL 
             |                        |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)  
    5. 除去索引
      1. alter table 数据表 drop index 索引名;
      2. mysql> alter table registered drop index sows_name;
        Query OK, 0 rows affected (0.15 sec)
        Records: 0  Duplicates: 0  Warnings: 0
      3. 翻看效果
        1. mysql> desc registered;
          +————+———-+——+—–+———+—————-+
          | Field           | Type       | Null    | Key |
          Default   | Extra               |
          +————+———-+——+—–+———+—————-+
          | id               | int(8)      | NO    | PRI   |
          NULL     | auto_increment |
          | username    | char(20)  | NO    |        | NULL    
          |                        |  //key 字段的始末没有
          | password    | char(20)  | NO    |        | NULL    
          |                        |
          | repassword | char(20)  | NO    |        | NULL    
          |                        |
          | sex            | char(2)    | YES   |        | NULL  
            |                        |
          +————+———-+——+—–+———+—————-+
          5 rows in set (0.01 sec)                
  6. 布置数据
    1. mysql>insert into 数据表(字段 
      //借使已经落到实处步骤1,则毫不再写字段) values
      (依据字段的数目,变量类型、变量长度须要、是或不是同意为空,来进展填写内容)
    2. mysql> insert into registered values
      (1,’sows’,’asqw1234′,’asqw1234′),(2,’ceo’,’
      aswe1322′,’aswe1322′),(3,’jk’,’qazxsw12′,’qazxsw12′);
      Query OK, 3 rows affected (0.01 sec)
      Records: 3  Duplicates: 0  Warnings: 0      // 成功插入
      3条数据
  7. 查看表中的数目    //准确性的查询所需数据
    1. mysql>select * from 数据表;                        
      //获取表中负有数据

      1. mysql>select * from  registered;
        +—-+———-+———-+————–+
        | id    | username | password | repassword |
        +—-+———-+———-+————–+
        |  1   | sows        | asqw1234 | asqw1234   |
        |  2   | ceo          | aswe1322  | aswe1322   |
        |  3   | jk            | qazxsw12  | qazxsw12   |
        +—-+———-+———-+————–+
        3 rows in set (0.00 sec)      //获取到3条数据

2.1 create 创建表

大家学的是标准sql  ,sql的白话被依次数据库软件单独使用;

2.  mysql&gt;select \* from 数据表 order by id limit
    从哪个位置开始,一共几条;
    1.  mysql&gt; select \* from registered order by id limit 1,2;  
        +----+----------+----------+------------+  
        | id | username | password | repassword  |  
        +----+----------+----------+------------+  
        |  2 | ceo      | aswe1322 | aswe1322       |  
        |  3 | jk       | qazxsw12 | qazxsw12        |  
        +----+----------+----------+------------+  
        2 rows in set (0.00 sec)     //获取两条数据
2.  mysql&gt;select \* from 数据表 order by id limit
    从哪个位置开始,一共几条;
    1.  mysql&gt; select \* from registered order by id limit 1,2;  
        +----+----------+----------+------------+  
        | id | username | password | repassword  |  
        +----+----------+----------+------------+  
        |  2 | ceo      | aswe1322 | aswe1322       |  
        |  3 | jk       | qazxsw12 | qazxsw12        |  
        +----+----------+----------+------------+  
        2 rows in set (0.00 sec)     //获取两条数据

2.2 show 显示表

1.登录mysql数据库:

  1. 去除表中的多少
    1. mysql>delect from 数据表  where 条件限制 ;  
    2. mysql> delete from registered where id=1;
      Query OK, 1 row affected (0.01 sec)  //删除成功
    3. 动用5,查看删除的法力
      1. mysql> select * from registered;
        +—-+———-+———-+————+
        | id    | username | password | repassword |
        +—-+———-+———-+————+
        |  2    | ceo         | aswe1322 | aswe1322   |
        |  3    | jk           | qazxsw12 | qazxsw12   |
        +—-+———-+———-+————+
        2 rows in set (0.00 sec)   //id为1的数量被成功删除了  
  2. 修改表中的数据
    1. mysql>update 数据表 set (要修改数据的)字段=修改后的多寡  
      where  条件限制

      1. mysql> update registered set username=’sowsceo’ where
        id=2;
        Query OK, 1 row affected (0.01 sec)                         
        //修改成功
        Rows matched: 1  Changed: 1  Warnings:
        0     //修改的多寡
      2. 翻开修改后的机能
        1. mysql> select * from registered;
          +—-+———-+———-+————+
          | id | username | password | repassword |
          +—-+———-+———-+————+
          |  2 | sowsceo  | aswe1322 | aswe1322   |     
          //username 从ceo 变成 sowsceo
          |  3 | jk       | qazxsw12 | qazxsw12   |
          +—-+———-+———-+————+
          2 rows in set (0.00 sec)   
  1. 去除表中的数目
    1. mysql>delect from 数据表  where 条件限制 ;  
    2. mysql> delete from registered where id=1;
      Query OK, 1 row affected (0.01 sec)  //删除成功
    3. 选取5,查看删除的功力
      1. mysql> select * from registered;
        +—-+———-+———-+————+
        | id    | username | password | repassword |
        +—-+———-+———-+————+
        |  2    | ceo         | aswe1322 | aswe1322   |
        |  3    | jk           | qazxsw12 | qazxsw12   |
        +—-+———-+———-+————+
        2 rows in set (0.00 sec)   //id为1的多少被成功删除了  
  2. 修改表中的数据
    1. mysql>update 数据表 set (要修改数据的)字段=修改后的数码  
      where  条件限制

      1. mysql> update registered set username=’sowsceo’ where
        id=2;
        Query OK, 1 row affected (0.01 sec)                         
        //修改成功
        Rows matched: 1  Changed: 1  Warnings:
        0     //修改的数码
      2. 翻看修改后的效劳
        1. mysql> select * from registered;
          +—-+———-+———-+————+
          | id | username | password | repassword |
          +—-+———-+———-+————+
          |  2 | sowsceo  | aswe1322 | aswe1322   |     
          //username 从ceo 变成 sowsceo
          |  3 | jk       | qazxsw12 | qazxsw12   |
          +—-+———-+———-+————+
          2 rows in set (0.00 sec)   

2.3 desc 查看表结构

方式1:mysql -uroot -proot

2.4 alter 修改表结构(增、删、改)

方式2:

2.4.1 insert 在表中添加列(字段)

C:\Users\Administrator>mysql -uroot -p

2.4.2 alter 修改表(列)字段

Enter password: ****

2.4.3 delete 删除表(列)字段

退出数据库:quit;  只怕exit;

2.4.4 rename 重命名表名

2.翻看全部数据库:mysql> show databases;

2.5 create 利用已有数据创制新表

3.挑选要动用的数据库:mysql> use 数据库名;

三 、数据的操作及管理

4.翻看全数表:mysql> show tables;

3.1 增添数据(增)

5.创立数据库:mysql> create database; 新数据库名;

3.2 删除数据(删)

6.刨除数据库:mysql> drop database; 被去除的数据库名;

3.3 修改数据(改)

7.新建贰个表:mysql> create table student(sid int,sname varchar(10));

3.4 查询数据(查)

8.查看表结构:mysql> desc student;

④ 、管理视图

数据类型:

1、数据库(database)管理

文本:

1.1 create 创建数据库

char(10):固定长度的字符串; char(10);开辟13个字符的内存空间;

createdatabasefirstDB;

varchar(n):可变长度的字符串,最多能够存n个字符,若实际存的不到n个那么就只开辟实际存款和储蓄的个数的高低;

1.2 show 查看全部数据库

n的最大值为255;

mysql> show databases;

要用引号引起来

+——————–+

数字:

| Database           |

int:整数;

+——————–+

float(m,n):单精度小数,m表示总共有微微位,n表示小数有2个人;

| information_schema |

double(m,n):双精度小数,m表示总共有微微位,n表示小数有四个人;

| firstDB            |

decimal(m,n):比double更确切,m表示总共有微微位,n表示小数有三位;

| mysql              |

日期:

| performance_schema |

date:日期。格式:YYYY-MM-DD  注释:帮忙的界定是从 ‘一千-01-01’ 到
‘9999-12-31’

+——————–+

有着的日期都用引号引起来

4 rows in set (0.00 sec)

DATETIME:*日期和时间的结合。格式:YYYY-MM-DD HH:MM:SS

1.3 alter 修改数据库

注明:帮助的界定是从 ‘一千-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’

alter 命令修改数据库编码:

创造表格:

暗许创设的数据库暗中同意不协理汉语字符,假如大家须求它帮助中文字符,则将它的编码设置为utf8格式:

mysql> create table student2(sid int ,sname varchar(10),birthday
date,

mysql> ALTER DATABASE testDB CHARACTER SET UTF8;

-> score double(5,2));

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

1.4 use 使用数据库

安顿数据:mysql> insert into student2 (sid,sname,birthday,score)
values(1001,’tom’,’3000-01-11′,99.99);

mysql> use firstDB;

查阅表中的富有数据:mysql> select * from student2;

Database changed

+——+——-+————+——-+

1.5 查看当前采用的数据库

| sid  | sname | birthday  | score |

mysql> select database();

+——+——-+————+——-+

+————+

| 1001 | tom  | 2000-01-11 | 99.99 |

| database() |

| 1001 | bob  | 2000-01-11 | 99.99 |

+————+

| 1001 | lucy  | 2000-01-11 | 99.99 |

| firstdb    |

+——+——-+————+——-+

+————+

3 rows in set (0.00 sec)

1 row in set (0.00 sec)

mysql Day2

1.6 drop 删除数据库

安装命令行显示时的编码格式:

mysql> drop database firstDB;

命令行窗口是windows自带的,它的编码是gbk;

Query OK, 0 rows affected (0.00 sec)

执行set names gbk;告诉mysql把多少突显到命令行的时候用gbk展现;

2、数据表(table)管理

以此讲话在命令行关闭后失效,下次再也设置;

大家率先创建2个数据库,提供大家今后的行使:

一 、对表结构的操作:

mysql> create database testDB;

1.日增三个字段

Query OK, 1 row affected (0.00 sec)

语法:alter table 表名  add  column 新字段名 字段类型;

创造后纪念用use命令进入(使用)数据库,不然前面包车型客车操作都会不成功的。

mysql> alter table student2 add column sex varchar(10);

2.1 create 创建表

2.修改八个字段

mysql> create table PEOPLE (

语法: alter table  表名 modify 列名  新数据类型;

-> ID int AUTO_INCREMENT PRIMARY KEY,

mysql> alter table student2 modify sex int;

-> NAME varchar(20) not null,

3.更改字段名

-> AGE int not null,

语法:alter table 表名 change 原列名  新列名  数据类型;

-> BIRTHDAY datetime);

mysql> alter table student2 change  sex gender varchar(10) ;

Query OK, 0 rows affected (0.01 sec)

  1. 删除表的字段

2.2 show 显示表

语法: alter table  表名 drop  列名;

来稳当前数据库全数的数据表

mysql> alter table student2 drop gender;

mysql> show tables;

5.重命名表

+——————+

语法:alter table  表名 rename to 新表名;

| Tables_in_testdb |

mysql> alter table student2 rename to stu;

+——————+

6.复制表

| PEOPLE           |

6.1复制表结构及数据

+——————+

语法:create table 新表 select * from  旧表;

1 row in set (0.00 sec)

mysql> update student set sal=120 where sal is null;

2.3 desc 查看表结构

mysql> select * from student;

mysql> desc PEOPLE

6.2 只复制表结构

-> ;

语法:create table 新表 select * from  旧表  where  1=0;

+———-+————-+——+—–+———+—————-+

mysql> create table stu3 select * from stu where 1>9;

| Field    | Type        | Null | Key | Default | Extra          |

7.删除表

+———-+————-+——+—–+———+—————-+

语法: drop table  表名;

| ID       | int(11)     | NO   | PRI | NULL    | auto_increment |

mysql> drop table student;

| NAME     | varchar(20) | NO   |     | NULL    |                |

8.索引:查询快,增加和删除慢;不可滥用;

| AGE      | int(11)     | NO   |     | NULL    |                |

创设索引:

| BIRTHDAY | datetime    | YES  |     | NULL    |                |

语法:create index 索引名  on 表名(字段名);

+———-+————-+——+—–+———+—————-+

mysql> create index  my_index1 on stu2(sname);

4 rows in set (0.01 sec)

查看索引:

2.4 alter 修改表结构(增、删、改)

mysql> show index from stu2;

暗中同意创设的表不协助普通话字符,所以需将表编码设置为utf8:

删去索引:

mysql> ALTER TABLE KEYCHAIN CONVERT TO CHARACTER SET UTF8;

mysql> drop index my_index1 on stu2;

Query OK, 1 row affected (0.02 sec)

二、mysql约束:

Records: 1  Duplicates: 0  Warnings: 0

1.非空约束  not null:限制某一列的值不能够为null;

2.4.1 insert 在表中添加列(字段)

措施1:在建表语句中字段类型的背后加上 not null;

mysql> alter table PEOPLE add star BOOL;

mysql> create table emp2(empno int ,ename varchar(10) not null );

Query OK, 0 rows affected (0.02 sec)

方式2:

Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table emp2 modify empno int not null;

唤醒:在MySQL里,布尔类型会活动转换为tinyint(1)类型。

去除非空约束:

我们不妨采用desc去查看一下PEOPLE表结构:

mysql> alter table emp2 modify empno int null;

mysql> desc PEOPLE;

2.暗中认可值 default:给某一列设置暗中认可值;

+———-+————-+——+—–+———+—————-+

暗中认可景况下的默许值为null;

| Field    | Type        | Null | Key | Default | Extra          |

方式1:

+———-+————-+——+—–+———+—————-+

mysql> alter table emp modify empno int default 0;

| ID       | int(11)     | NO   | PRI | NULL    | auto_increment |

方法2:在建表语句中字段类型的背后加上 default 暗许值;

| NAME     | varchar(20) | NO   |     | NULL    |                |

mysql> create table emp2(empno int ,ename varchar(10) default
‘张三’);

| AGE      | int(11)     | NO   |     | NULL    |                |

mysql> alter table emp2 modify ename varchar(10) default null;

| BIRTHDAY | datetime    | YES  |     | NULL    |                |

3.唯一约束 unique:限制列里面包车型大巴值无法重新;

| star     | tinyint(1)  | YES  |     | NULL    |                |

方式1:

+———-+————-+——+—–+———+—————-+

mysql> alter table emp2 modify empno int  unique;

5 rows in set (0.00 sec)

方法2:在建表语句中字段类型的末端加上 unique

于今,你该相信小编了吧?

mysql> create table emp3(empno int unique);

2.4.2 alter 修改表(列)字段

格局3:自定义名字的

mysql> alter table PEOPLE MODIFY star int;

mysql> alter table emp3 add constraint my_unique unique(empno);

Query OK, 0 rows affected (0.01 sec)

删去唯一约束:

Records: 0  Duplicates: 0  Warnings: 0

语法:alter  table 表名  drop index
唯一约束的索引名(暗中同意为所在的字段名);

也得以钦赐 int(n) 的尺寸,比如 int(2)。

mysql> alter  table emp3  drop index empno;

咱们再次使用desc查看PEOPLE表结构:

4.主键约束 primary key(非空+唯一)

mysql> desc PEOPLE;

方式1:

+———-+————-+——+—–+———+—————-+

mysql> alter table emp modify empno int primary key;

| Field    | Type        | Null | Key | Default | Extra          |

办法2:在建表语句中字段类型的背后加上 primary key;

+———-+————-+——+—–+———+—————-+

mysql> create table emp10(empno int primary key,ename varchar(10));

| ID       | int(11)     | NO   | PRI | NULL    | auto_increment |

艺术3:自定义名字的

| NAME     | varchar(20) | NO   |     | NULL    |                |

mysql> create table emp11(empno int ,ename char(10),constraint
my_key primary key(empno));

| AGE      | int(11)     | NO   |     | NULL    |                |

剔除主键约束:

| BIRTHDAY | datetime    | YES  |     | NULL    |                |

方式1:mysql> alter table emp11 drop primary key;

| star     | int(11)     | YES  |     | NULL    |                |

5.主键自拉长auto_increment

+———-+————-+——+—–+———+—————-+

措施1:在建表语句中字段类型的前面加上 primary key auto_increment;

5 rows in set (0.00 sec)

方式2:mysql> alter table  emp12 modify empno int primary key
auto_increment;

2.4.3 delete 删除表(列)字段

去除自拉长: alter table emp modify empno int;

mysql> alter table PEOPLE DROP column star;

6.外键约束 foreign key 不可滥用

Query OK, 0 rows affected (0.02 sec)

方式1:

Records: 0  Duplicates: 0  Warnings: 0

alter table 表名 add constraint 自定义外键名 foreign key(本表字段) 
references 被参考的表名(被参考的字段);

删除后,再一次查看PEOPLE表结构:

mysql> alter table emp add constraint fk_deptno foreign key(deptno) 
references dept(deptno);

mysql> desc PEOPLE;

方式2:

+———-+————-+——+—–+———+—————-+

在建表语句最终三个字段的末端 constraint 自定义外键名 foreign
key(本表字段)  references 被参考的表名(被参考的字段)

| Field    | Type        | Null | Key | Default | Extra          |

剔除此而外键:

+———-+————-+——+—–+———+—————-+

语法:alter table emp drop foreign 外键名;

| ID       | int(11)     | NO   | PRI | NULL    | auto_increment |

mysql> alter table emp drop foreign key fk_deptno;

| NAME     | varchar(20) | NO   |     | NULL    |                |

mysql Day2 作业:

| AGE      | int(11)     | NO   |     | NULL    |                |

1.开立学生表student:学生编号sid 主键自增进,姓名sname 非空,性别sex 
非空,生日birthday ,年龄age ,班级编号cid ;

| BIRTHDAY | datetime    | YES  |     | NULL    |                |

mysql> create table student(sid int primary key auto_increment,sname
varchar(10)

+———-+————-+——+—–+———+—————-+

not null,sex varchar(10) not null,birthday date,age int,cid int);

4 rows in set (0.00 sec)

Query OK, 0 rows affected (0.03 sec)

除去字段成功,未来大家曾经不能够看出star的字段了。

这是学生表student:

2.4.4 rename 重命名表名

+———-+————-+——+—–+———+—————-+

mysql> RENAME TABLE PEOPLE TO NEW_PEOPLE;

| Field    | Type        | Null | Key | Default | Extra          |

Query OK, 0 rows affected (0.00 sec)

+———-+————-+——+—–+———+—————-+

2.4.5 null or not null

| sid      | int(11)    | NO  | PRI | NULL    | auto_increment |

修改表字段允许为空或不容许为空:

| sname    | varchar(10) | NO  |    |        |                |

mysql> ALTER TABLE PEOPLE MODIFY AGE INT(3) NULL;

| sex      | varchar(10) | NO  |    |        |                |

Query OK, 0 rows affected (0.01 sec)

| birthday | date        | YES  |    | NULL    |                |

Records: 0  Duplicates: 0  Warnings: 0

| age      | int(11)    | YES  |    | NULL    |                |

把 PEOPLE 表的 AGE
字段设置成“允许为空”,即插入记录时那么些字段能够不录入。不然反而。

| cid      | int(11)    | YES  |    | NULL    |                |

它的格式为:ALTELAND TABLE MODIFY  

+———-+————-+——+—–+———+—————-+

2.5 create 利用已有数量创建新表

2.创设班级表class: 班级编号 cid 主键 ,班级名称cname 非空;

mysql> create table newTable select * from PEOPLE;

mysql> create table class(cid int primary key,cname varchar(10) not
null);

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc class;

大家查阅一下当下数据仓库储存在的表:

+——-+————-+——+—–+———+——-+

mysql> show tables;

| Field | Type        | Null | Key | Default | Extra |

+——————+

+——-+————-+——+—–+———+——-+

| Tables_in_testdb |

| cid  | int(11)    | NO  | PRI |        |      |

+——————+

| cname | varchar(10) | NO  |    |        |      |

| PEOPLE           |

+——-+————-+——+—–+———+——-+

| newTable         |

3.给学生表添加贰个字段:住址address;

+——————+

mysql> alter table student add column address varchar(10);

2 rows in set (0.00 sec)

Query OK, 0 rows affected (0.09 sec)

叁 、数据的操作及管制

Records: 0  Duplicates: 0  Warnings: 0

数据表的基本操作,包蕴增、删、改、查数据。

那是增多的字段address:

以下命令均在PEOPLE表上操作。

mysql> desc student;

3.1 扩张多少(增)

+———-+————-+——+—–+———+—————-+

PEOPLE表如今是未曾数量的,它是空的数据表,大家以往先添加一些多少。

| Field    | Type        | Null | Key | Default | Extra          |

insert into 命令添加数据:

+———-+————-+——+—–+———+—————-+

mysql> insert into PEOPLE VALUES (null, ‘Anny’, 22, ‘1992-05-22’);

| sid      | int(11)    | NO  | PRI | NULL    | auto_increment |

Query OK, 1 row affected (0.00 sec)

| sname    | varchar(10) | NO  |    |        |                |

选取select命令查看表(会在前边介绍),未来大家查阅PEOPLE数据表的多少:

| sex      | varchar(10) | NO  |    |        |                |

mysql> select * from PEOPLE;

| birthday | date        | YES  |    | NULL    |                |

+—-+——+—–+———————+

| age      | int(11)    | YES  |    | NULL    |                |

| ID | NAME | AGE | BIRTHDAY            |

| cid      | int(11)    | YES  |    | NULL    |                |

+—-+——+—–+———————+

| address  | varchar(10) | YES  |    | NULL    |                |

|  1 | Anny |  22 | 1992-05-22 00:00:00 |

+———-+————-+——+—–+———+—————-+

+—-+——+—–+———————+

7 rows in set (0.01 sec)

1 row in set (0.00 sec)

4.修改学生表性别字段为gender;

数量显未来有一条数据。

mysql> alter table student change sex gender varchar(10);

小编们多添加几条数据,如:

Query OK, 0 rows affected (0.02 sec)

mysql> select * from PEOPLE;

Records: 0  Duplicates: 0  Warnings: 0

+—-+——–+—–+———————+

修改后的student表:

| ID | NAME   | AGE | BIRTHDAY            |

mysql> desc student;

+—-+——–+—–+———————+

+———-+————-+——+—–+———+—————-+

|  1 | Anny   |  22 | 1992-05-22 00:00:00 |

| Field    | Type        | Null | Key | Default | Extra          |

|  2 | Garvey |  23 | 1991-05-22 00:00:00 |

+———-+————-+——+—–+———+—————-+

|  3 | Lisa   |  25 | 1989-05-22 00:00:00 |

| sid      | int(11)    | NO  | PRI | NULL    | auto_increment |

|  4 | Nick   |  24 | 1990-05-22 00:00:00 |

| sname    | varchar(10) | NO  |    |        |                |

|  5 | Rick   |  24 | 1991-05-22 00:00:00 |

| gender  | varchar(10) | YES  |    | NULL    |                |

+—-+——–+—–+———————+

| birthday | date        | YES  |    | NULL    |                |

5 rows in set (0.00 sec)

| age      | int(11)    | YES  |    | NULL    |                |

3.2 删除数据(删)

| cid      | int(11)    | YES  |    | NULL    |                |

delete 命令删除数据:

| address  | varchar(10) | YES  |    | NULL    |                |

mysql> delete from PEOPLE where name = ‘Lisa’;

+———-+————-+——+—–+———+—————-+

Query OK, 1 row affected (0.01 sec)

7 rows in set (0.01 sec)

再度查询PEOPLE表:

5.给birthday添加暗中同意值为两千-01-01;

mysql> select * from PEOPLE;

mysql> alter table student modify birthday date default ‘2000-01-01’;

+—-+——–+—–+———————+

Query OK, 0 rows affected (0.03 sec)

| ID | NAME   | AGE | BIRTHDAY            |

Records: 0  Duplicates: 0  Warnings: 0

+—-+——–+—–+———————+

转移birthday的默许值:

|  1 | Anny   |  22 | 1992-05-22 00:00:00 |

mysql> desc student;

|  2 | Garvey |  23 | 1991-05-22 00:00:00 |

+———-+————-+——+—–+————+—————-+

|  4 | Nick   |  24 | 1990-05-22 00:00:00 |

| Field    | Type        | Null | Key | Default    | Extra          |

|  5 | Rick   |  24 | 1991-05-22 00:00:00 |

+———-+————-+——+—–+————+—————-+

+—-+——–+—–+———————+

| sid      | int(11)    | NO  | PRI | NULL      | auto_increment |

4 rows in set (0.00 sec)

| sname    | varchar(10) | NO  |    |            |                |

业已看不到名为“Lisa”的数额了。

| gender  | varchar(10) | YES  |    | NULL      |                |

3.3 修改数据(改)

| birthday | date        | YES  |    | 2000-01-01 |                |

update 命令修改数据:

| age      | int(11)    | YES  |    | NULL      |                |

mysql> update PEOPLE set name=’Calvin’ where name = ‘Garvey’;

| cid      | int(11)    | YES  |    | NULL      |                |

Query OK, 1 row affected (0.00 sec)

| address  | varchar(10) | YES  |    | NULL      |                |

Rows matched: 1  Changed: 1  Warnings: 0

+———-+————-+——+—–+————+—————-+

查询PEOPLE表内容:

6.给性别字段添加暗中同意值为男;

mysql> select * from PEOPLE;

mysql> set names gbk;

+—-+——–+—–+———————+

Query OK, 0 rows affected (0.02 sec)

| ID | NAME   | AGE | BIRTHDAY            |

mysql> alter table student modify gender varchar(10) default ‘男’;

+—-+——–+—–+———————+

Query OK, 0 rows affected (0.04 sec)

|  1 | Anny   |  22 | 1992-05-22 00:00:00 |

Records: 0  Duplicates: 0  Warnings: 0

|  2 | Calvin |  23 | 1991-05-22 00:00:00 |

mysql> desc student;

|  4 | Nick   |  24 | 1990-05-22 00:00:00 |

+———-+————-+——+—–+————+—————-+

|  5 | Rick   |  24 | 1991-05-22 00:00:00 |

| Field    | Type        | Null | Key | Default    | Extra          |

+—-+——–+—–+———————+

+———-+————-+——+—–+————+—————-+

4 rows in set (0.00 sec)

| sid      | int(11)    | NO  | PRI | NULL      | auto_increment |

名为“Garvey”的记录已经修改为“Calvin”。

| sname    | varchar(10) | NO  |    |            |                |

3.4 查询数据(查)

| gender  | varchar(10) | YES  |    | 男          |                |

select
命令查询数据,最简便的正是查询表的全数数据,也正是我们最初使用到的那条命令:

| birthday | date        | YES  |    | 2000-01-01 |                |

mysql> select * from PEOPLE;

| age      | int(11)    | YES  |    | NULL      |                |

+—-+——–+—–+———————+

| cid      | int(11)    | YES  |    | NULL      |                |

| ID | NAME   | AGE | BIRTHDAY            |

| address  | varchar(10) | YES  |    | NULL      |                |

+—-+——–+—–+———————+

+———-+————-+——+—–+————+—————-+

|  1 | Anny   |  22 | 1992-05-22 00:00:00 |

7.删除age字段;

|  2 | Calvin |  23 | 1991-05-22 00:00:00 |

mysql> alter table student drop age;

|  4 | Nick   |  24 | 1990-05-22 00:00:00 |

Query OK, 0 rows affected (0.01 sec)

|  5 | Rick   |  24 | 1991-05-22 00:00:00 |

mysql> desc student;

+—-+——–+—–+———————+

+———-+————-+——+—–+————+—————-+

4 rows in set (0.00 sec)

| Field    | Type        | Null | Key | Default    | Extra          |

格式:select * from <表名>,*意味着享有字段。

+———-+————-+——+—–+————+—————-+

询问数据时也可内定展现的(列)字段:

| sid      | int(11)    | NO  | PRI | NULL      | auto_increment |

mysql> select NAME, AGE, BIRTHDAY from PEOPLE;

| sname    | varchar(10) | NO  |    |            |                |

+——–+—–+———————+

| gender  | varchar(10) | YES  |    | 男          |                |

| NAME   | AGE | BIRTHDAY            |

| birthday | date        | YES  |    | 2000-01-01 |                |

+——–+—–+———————+

| cid      | int(11)    | YES  |    | NULL      |                |

| Anny   |  22 | 1992-05-22 00:00:00 |

| address  | varchar(10) | YES  |    | NULL      |                |

| Calvin |  23 | 1991-05-22 00:00:00 |

+———-+————-+——+—–+————+—————-+

| Nick   |  24 | 1990-05-22 00:00:00 |

9.给班级表插入叁个班级;

| Rick   |  24 | 1991-05-22 00:00:00 |

mysql> insert into class values(1001,’一班’);

+——–+—–+———————+

Query OK, 1 row affected (0.03 sec)

4 rows in set (0.00 sec)

mysql> insert into class values(1002,’二班’);

格式:select <字段名,字段名,…> from <表名>。

Query OK, 1 row affected (0.00 sec)

select查询命令还有众多的高档用法,比如用来查找不另行(distinct)的数码,使数码按标准排序(order
by),按查询条件显得数据(where)等等。那个都会在下一篇著作作重庆大学介绍,请大家继续留意自个儿的博客,感谢。

mysql> insert into class values(1003,’三班’);

肆 、管理视图

Query OK, 1 row affected (0.00 sec)

创办视图

mysql> select * from class;

视图是从数据Curry导出八个或八个表的虚拟表,是用来便于用户对数码的操作。

+——+——-+

mysql> CREATE VIEW PEOPLE_VIEW (

| cid  | cname |

-> NAME, AGE)

+——+——-+

-> AS SELECT NAME, AGE FROM PEOPLE;

| 1001 | 一班    |

开创成功后翻看视图。

| 1002 | 二班      |

PEOPLE          PEOPLE.AGE      PEOPLE.BIRTHDAY PEOPLE.ID      
PEOPLE.NAME

| 1003 | 三班      |

mysql> SELECT * FROM PEOPLE_VIEW

+——+——-+

-> ;

10.在学员表中给各种班级添加3名学童音信;

+——–+—–+

mysql> insert into student
values(1,’张三’,’男’,’2012-01-02′,1001,’cq’);

| NAME   | AGE |

Query OK, 1 row affected (0.00 sec)

+——–+—–+

mysql> insert into student
values(null,’李四’,’女’,’2009-03-22′,1002,’cq’);

| Anny   |  22 |

Query OK, 1 row affected (0.00 sec)

| Calvin |  23 |

mysql> insert into student
values(null,’王五’,’男’,’2009-03-25′,1003,’cq’);

| Nick   |  24 |

Query OK, 1 row affected (0.00 sec)

| Rick   |  24 |

mysql> select *from student;

+——–+—–+

+—–+——-+——–+————+——+———+

4 rows in set (0.00 sec)

| sid | sname | gender | birthday  | cid  | address |

咱俩也足以选用 DESC 命令查看视图的布局。

+—–+——-+——–+————+——+———+

mysql> DESC PEOPLE_VIEW;

|  1 | 张三      | 男      | 2012-01-02 | 1001 | cq      |

+——-+———+——+—–+———+——-+

|  2 | 李四      | 女      | 2009-03-22 | 1002 | cq      |

| Field | Type    | Null | Key | Default | Extra |

|  3 | 王五      | 男      | 2009-03-25 | 1003 | cq      |

+——-+———+——+—–+———+——-+

+—–+——-+——–+————+——+———+

| ID    | int(11) | NO   |     | 0       |       |

8.给学生表的cid上添加外键约束,以参考class表中的cid字段;

+——-+———+——+—–+———+——-+

mysql> alter table student add constraint fk_cid foreign key(cid)
references class(cid);

1 row in set (0.01 sec)

Query OK, 3 rows affected (0.02 sec)

轮换视图

Records: 3  Duplicates: 0  Warnings: 0

成立或交换原有视图。

惨遭约束报错:

mysql> CREATE OR REPLACE VIEW
PEOPLE_VIEW(PEOPLE_ID,PEOPLE_NAME,PEOPLE_AGE) AS SELECT ID,NAME,AGE
FROM PEOPLE;

mysql>  insert into student
values(null,’王五’,’男’,’2009-03-25′,1004,’cq’);

Query OK, 0 rows affected (0.00 sec)

ERROR 1452 (23000): Cannot add or update a child row: a foreign key
constraint f

创制或沟通后翻看视图。

ails (`c17/student`, CONSTRAINT `fk_cid` FOREIGN KEY (`cid`)
REFERENCES `class`

mysql> SELECT * FROM PEOPLE_VIEW;

(`cid`))

+———–+————-+————+

11.删减外键;

| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |

mysql> alter table student drop foreign  key fk_cid;

+———–+————-+————+

Query OK, 3 rows affected (0.02 sec)

|         1 | Anny        |         22 |

Records: 3  Duplicates: 0  Warnings: 0

|         2 | Calvin      |         23 |

去除后得现在student继续丰盛学生消息:

|         4 | Nick        |         24 |

mysql>  insert into student
values(null,’王五’,’男’,’2009-03-25′,1004,’cq’);

|         5 | Rick        |         24 |

Query OK, 1 row affected (0.00 sec)

+———–+————-+————+

mysql> select *from student;

4 rows in set (0.00 sec)

+—–+——-+——–+————+——+———+

操作视图

| sid | sname | gender | birthday  | cid  | address |

当视图数据有变化时(增、删、改),真实的表数据也会趁着改变。也正是说,对视图的操作正是对表的数目,所以大家得以把视图当作表。

+—–+——-+——–+————+——+———+

例:往视图插入一条数据。

|  1 | 张三      | 男      | 2012-01-02 | 1001 | cq      |

mysql> INSERT INTO PEOPLE_VIEW VALUES(NULL, ‘Kerry’, ’33’);

|  2 | 李四      | 女      | 2009-03-22 | 1002 | cq      |

Query OK, 1 row affected (0.00 sec)

|  3 | 王五      | 男      | 2009-03-25 | 1003 | cq      |

安插数据成功后翻看视图。

|  4 | 王五      | 男      | 2009-03-25 | 1004 | cq      |

mysql> SELECT * FROM PEOPLE_VIEW ;

+—–+——-+——–+————+——+———+

+———–+————-+————+

4 rows in set (0.00 sec)

| PEOPLE_ID | PEOPLE_NAME | PEOPLE_AGE |

12.复制student表到student2;

+———–+————-+————+

mysql> create table student2 select * from student;

|         1 | Anny        |         22 |

Query OK, 4 rows affected (0.01 sec)

|         2 | Calvin      |         23 |

Records: 4  Duplicates: 0  Warnings: 0

|         4 | Nick        |         24 |

mysql> select *from student2;

|         5 | Rick        |         24 |

+—–+——-+——–+————+——+———+

|         6 | Kerry       |         33 |

| sid | sname | gender | birthday  | cid  | address |

+———–+————-+————+

+—–+——-+——–+————+——+———+

5 rows in set (0.00 sec)

|  1 | 张三      | 男      | 2012-01-02 | 1001 | cq      |

能够在视图上观望大家刚刚插入的数额,以往我们就来验证一下实际的表是或不是也会作出变动。

|  2 | 李四      | 女      | 2009-03-22 | 1002 | cq      |

mysql> SELECT * FROM PEOPLE;

|  3 | 王五      | 男      | 2009-03-25 | 1003 | cq      |

+—-+——–+—–+———————+

|  4 | 王五      | 男      | 2009-03-25 | 1004 | cq      |

| ID | NAME   | AGE | BIRTHDAY            |

+—–+——-+——–+————+——+———+

+—-+——–+—–+———————+

13.将表student2的名字改为stu;

|  1 | Anny   |  22 | 1992-05-22 00:00:00 |

改前全数的表:

|  2 | Calvin |  23 | 1991-05-22 00:00:00 |

mysql> show tables;

|  4 | Nick   |  24 | 1990-05-22 00:00:00 |

+—————+

|  5 | Rick   |  24 | 1991-05-22 00:00:00 |

| Tables_in_c17 |

|  6 | Kerry  |  33 | NULL                |

+—————+

+—-+——–+—–+———————+

| class        |

5 rows in set (0.00 sec)

| student      |

看得出,真实的表数据也早已颇具改观,刚刚往视图里插入的那一条数据存在于真实表中,真理便是:对视图的操作正是对表的数目。

| student2      |

去除视图

+—————+

mysql> DROP VIEW PEOPLE_VIEW;

改后全部的表:

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;

+—————+

| Tables_in_c17 |

+—————+

| class        |

| stu          |

| student      |

+—————+

14.刨除stu表中sid的自拉长;

mysql> desc stu;

+———-+————-+——+—–+————+—————-+

| Field    | Type        | Null | Key | Default    | Extra          |

+———-+————-+——+—–+————+—————-+

| sid      | int(11)    | NO  | PRI | NULL      | auto_increment |

| sname    | varchar(10) | NO  |    |            |                |

| gender  | varchar(10) | YES  |    | 男          |                |

| birthday | date        | YES  |    | 2000-01-01 |                |

| cid      | int(11)    | YES  |    | NULL      |                |

| address  | varchar(10) | YES  |    | NULL      |                |

+———-+————-+——+—–+————+—————-+

mysql> alter table stu modify sid int;

Query OK, 3 rows affected (0.02 sec)

Records: 3  Duplicates: 0  Warnings: 0

mysql> desc stu;

+———-+————-+——+—–+————+——-+

| Field    | Type        | Null | Key | Default    | Extra |

+———-+————-+——+—–+————+——-+

| sid      | int(11)    | NO  | PRI | 0          |      |

| sname    | varchar(10) | NO  |    |            |      |

| gender  | varchar(10) | YES  |    | 男          |      |

| birthday | date        | YES  |    | 2000-01-01 |      |

| cid      | int(11)    | YES  |    | NULL      |      |

| address  | varchar(10) | YES  |    | NULL      |      |

+———-+————-+——+—–+————+——-+

15.删除stu表;

删除前:

mysql> show tables;

+—————+

| Tables_in_c17 |

+—————+

| class        |

| stu          |

| student      |

+—————+

mysql> drop table stu;

Query OK, 0 rows affected (0.01 sec)

删除后:

mysql> show tables;

+—————+

| Tables_in_c17 |

+—————+

| class        |

| student      |

+—————+

2 rows in set (0.00 sec)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website