• 15-1 库和表相关操作


    一 库相关操作:
    0创建数据库:
    语法(help create database)

    CREATE DATABASE 数据库名 charset utf8;

    1 查看数据库
    show databases;
    show create database db1;
    select database();

    2 选择数据库
    USE 数据库名

    3 删除数据库
    DROP DATABASE 数据库名;

    4 修改数据库
    alter database db1 charset utf8;

    二 表相关操作
    创建表:
    #语法:
    create table 表名(
    字段名1 类型[(宽度) 约束条件],
    字段名2 类型[(宽度) 约束条件],
    字段名3 类型[(宽度) 约束条件]
    );

    #注意:
    1. 在同一张表中,字段名是不能相同
    2. 宽度和约束条件可选
    3. 字段名和类型是必须的

    例子一:

    1 创建表
    create table t1(id int,name varchar(50),sex enum('male','female'),age int(3));
    表中插入数据
    insert into t1 values(1,'egon','male',18),(2,'alex','female',81); 顺序要和表结构一致

    查看表结构
     1 mysql> describe t1;
     2 +-------+-----------------------+------+-----+---------+-------+
     3 | Field | Type                  | Null | Key | Default | Extra |
     4 +-------+-----------------------+------+-----+---------+-------+
     5 | id    | int(11)               | YES  |     | NULL    |       |
     6 | name  | varchar(50)           | YES  |     | NULL    |       |
     7 | sex   | enum('male','female') | YES  |     | NULL    |       |
     8 | age   | int(3)                | YES  |     | NULL    |       |
     9 +-------+-----------------------+------+-----+---------+-------+
    10 4 rows in set (0.00 sec)


    show create table t1G; #查看表详细结构,可加G

    2 修改表ALTER TABLE

    ALTER TABLE 表名 RENAME 新表名;


    例子: alter table t1 rename t2;


    3 增加表字段:(不能和原来的重复)

     1 mysql> alter table student10 add name varchar(20) not null,add age int(3) not null default 22;
     2 Query OK, 0 rows affected (1.06 sec)
     3 Records: 0  Duplicates: 0  Warnings: 0
     4 
     5 mysql> describe student10;
     6 +-------+-------------+------+-----+---------+-------+
     7 | Field | Type        | Null | Key | Default | Extra |
     8 +-------+-------------+------+-----+---------+-------+
     9 | id    | int(11)     | YES  |     | NULL    |       |
    10 | name  | varchar(20) | NO   |     | NULL    |       |
    11 | age   | int(3)      | NO   |     | 22      |       |
    12 +-------+-------------+------+-----+---------+-------+
    13 3 rows in set (0.00 sec)
    4 在name字段之后添加一个class字段
     1 mysql> alter table student10 add class varchar(10) not null after name;
     2 Query OK, 0 rows affected (1.00 sec)
     3 Records: 0  Duplicates: 0  Warnings: 0
     4 
     5 mysql> describe student10;
     6 +-------+-------------+------+-----+---------+-------+
     7 | Field | Type        | Null | Key | Default | Extra |
     8 +-------+-------------+------+-----+---------+-------+
     9 | id    | int(11)     | YES  |     | NULL    |       |
    10 | name  | varchar(20) | NO   |     | NULL    |       |
    11 | class | varchar(10) | NO   |     | NULL    |       |
    12 | age   | int(3)      | NO   |     | 22      |       |
    13 +-------+-------------+------+-----+---------+-------+
    14 4 rows in set (0.00 sec)

    5 添加到字段最前面
     1 mysql> alter table student10 add sex enum('male','female') default 'male' first;
     2 Query OK, 0 rows affected (1.05 sec)
     3 Records: 0  Duplicates: 0  Warnings: 0
     4 
     5 mysql> describe student10;
     6 +-------+-----------------------+------+-----+---------+-------+
     7 | Field | Type                  | Null | Key | Default | Extra |
     8 +-------+-----------------------+------+-----+---------+-------+
     9 | sex   | enum('male','female') | YES  |     | male    |       |
    10 | id    | int(11)               | YES  |     | NULL    |       |
    11 | name  | varchar(20)           | NO   |     | NULL    |       |
    12 | class | varchar(10)           | NO   |     | NULL    |       |
    13 | age   | int(3)                | NO   |     | 22      |       |
    14 +-------+-----------------------+------+-----+---------+-------+
    15 5 rows in set (0.00 sec)

    6 删除字段
    mysql> alter table student10 drop sex;
    Query OK, 0 rows affected (0.97 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    7 修改字段 modify
    例子一:
     1 mysql> alter table student10 modify age int(5);
     2 Query OK, 0 rows affected (1.21 sec)
     3 Records: 0  Duplicates: 0  Warnings: 0
     4 
     5 mysql> describe student10;
     6 +-------+-------------+------+-----+---------+-------+
     7 | Field | Type        | Null | Key | Default | Extra |
     8 +-------+-------------+------+-----+---------+-------+
     9 | id    | int(11)     | YES  |     | NULL    |       |
    10 | name  | varchar(20) | NO   |     | NULL    |       |
    11 | class | varchar(10) | NO   |     | NULL    |       |
    12 | age   | int(5)      | YES  |     | NULL    |       |
    13 +-------+-------------+------+-----+---------+-------+
    14 4 rows in set (0.00 sec)

    例子二:

    mysql> alter table student10 modify id int(11) not null primary key auto_increment;
    Query OK, 0 rows affected (1.22 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> describe student10;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int(11)     | NO   | PRI | NULL    | auto_increment |
    | name  | varchar(20) | NO   |     | NULL    |                |
    | class | varchar(10) | NO   |     | NULL    |                |
    | age   | int(5)      | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    4 rows in set (0.01 sec)

    8. 对已经存在的表增加复合主键
    mysql> alter table service2
    -> add primary key(host_ip,port);

    9. 增加主键
    mysql> alter table student1
    -> modify name varchar(10) not null primary key;

    10. 增加主键和自动增长
    mysql> alter table student1
    -> modify id int not null primary key auto_increment;
    11. 删除主键
    a. 删除自增约束
    mysql> alter table student10 modify id int(11) not null;

    b. 删除主键
    mysql> alter table student10
    -> drop primary key;

    12 复制表
    复制表结构+记录 (key不会复制: 主键、外键和索引

    mysql> create table new_hu select * from department;
    Query OK, 2 rows affected (0.77 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> select * from new_hu;
    +-------+-----------------------------------+
    | id    | name                              |
    +-------+-----------------------------------+
    |     1 | 欧德博爱技术有限事业部            |
    | 22222 | 艾利克斯人力资源部                |
    +-------+-----------------------------------+
    2 rows in set (0.00 sec)
    只复制表结构:用like
    mysql> create table t10 like department;
    Query OK, 0 rows affected (0.66 sec)
    
    mysql> select * from t10;
    Empty set (0.01 sec)

    13 删除表

    DROP TABLE 表名;
  • 相关阅读:
    记一次struts项目空指针异常
    struts2问题(已解决)java.nio.file.InvalidPathException: Illegal char <:> at index 3: jar:file:
    Road Map
    API
    Report of program history
    正则表达式验证用户信息
    RegExp( replace()的示例 )
    DOM与BOM部分示例
    伪类与伪元素
    第三次随笔(按钮外观改变)
  • 原文地址:https://www.cnblogs.com/huningfei/p/9401454.html
Copyright © 2020-2023  润新知