• day 37 数据库MySQL基本操作


    1、创建数据库

        1.1 语法

          CREATE DATABASE 数据库名 charset utf8;

        1.2 数据库命名规则

          可以由字母、数字、下划线、@、#、$

          区分大小写

          唯一性

          不能使用关键字如 create select

          不能单独使用数字

          最长128位

          # 基本上跟python或者js的命名规则一样

    查看数据库
      show databases;
      show create database db1;
      select database();
    选择数据库
      USE 数据库名
    删除数据库
      DROP DATABASE 数据库名;
    修改数据库
      alter database db1 charset utf8;

    二 . 表操作

      创建表:

    mysql> create database db1 charset utf8;

    mysql> use db1;

    mysql> create table t1(
    -> id int,
    -> name varchar(50),
    -> sex enum('male','female'),
    -> age int(3)
    -> );

    mysql> show tables; #查看db1库下所有表名

    mysql> desc t1;
    +-------+-----------------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+-----------------------+------+-----+---------+-------+
    | id | int(11) | YES | | NULL | |
    | name | varchar(50) | YES | | NULL | |
    | sex | enum('male','female') | YES | | NULL | |
    | age | int(3) | YES | | NULL | |
    +-------+-----------------------+------+-----+---------+-------+

    mysql> select id,name,sex,age from t1;
    Empty set (0.00 sec)

    mysql> select * from t1;
    Empty set (0.00 sec)

    mysql> select id,name from t1;
    Empty set (0.00 sec)

    代码示例


    #语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] );

    #注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选、非必须,宽度指的就是字段长度约束,例如:char(10)里面的10 3. 字段名和类型是必须的

    插入表格的数据:

      

    mysql> insert into t1 values
        -> (1,'chao',18,'male'),
        -> (2,'sb',81,'female')
        -> ;
    mysql> select * from t1;
    +------+------+------+--------+
    | id   | name | age  | sex    |
    +------+------+------+--------+
    |    1 | chao |   18 | male   |
    |    2 | sb |   81 | female |
    +------+------+------+--------+
    
    
    
    mysql> insert into t1(id) values 
        -> (3),
        -> (4);
    mysql> select * from t1;
    +------+------+------+--------+
    | id   | name | age  | sex    |
    +------+------+------+--------+
    |    1 | chao |   18 | male   |
    |    2 | sb |   81 | female |
    |    3 | NULL | NULL | NULL   |
    |    4 | NULL | NULL | NULL   |
    +------+------+------+--------+

     查看表结构:

    mysql> describe t1; #查看表结构,可简写为:desc 表名
    +-------+-----------------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+-----------------------+------+-----+---------+-------+
    | id | int(11) | YES | | NULL | |
    | name | varchar(50) | YES | | NULL | |
    | sex | enum('male','female') | YES | | NULL | |
    | age | int(3) | YES | | NULL | |
    +-------+-----------------------+------+-----+---------+-------+


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

    查看表结构的方法

    注意:在MySQL里面是不区分大小写的,比如如果你将你的表名t1输入成T1是完全没用的,因为在数据库里面的表名都是小写的。

    修改表的操作:

    1. 修改存储引擎
    mysql> alter table service 
        -> engine=innodb;
    
    2. 添加字段
    mysql> alter table student10
        -> add name varchar(20) not null,
        -> add age int(3) not null default 22;
        
    mysql> alter table student10
        -> add stu_num varchar(10) not null after name;                //添加name字段之后
    
    mysql> alter table student10                        
        -> add sex enum('male','female') default 'male' first;          //添加到最前面
    
    3. 删除字段
    mysql> alter table student10
        -> drop sex;
    
    mysql> alter table service
        -> drop mac;
    
    4. 修改字段类型modify
    mysql> alter table student10
        -> modify age int(3);
    mysql> alter table student10
        -> modify id int(11) not null primary key auto_increment;    //修改为主键
    
    5. 增加约束(针对已有的主键增加auto_increment)
    mysql> alter table student10 modify id int(11) not null primary key auto_increment;
    ERROR 1068 (42000): Multiple primary key defined
    
    mysql> alter table student10 modify id int(11) not null auto_increment;
    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    6. 对已经存在的表增加复合主键
    mysql> alter table service2
        -> add primary key(host_ip,port);        
    
    7. 增加主键
    mysql> alter table student1
        -> modify name varchar(10) not null primary key;
    
    8. 增加主键和自动增长
    mysql> alter table student1
        -> modify id int not null primary key auto_increment;
    
    9. 删除主键
    a. 删除自增约束
    mysql> alter table student10 modify id int(11) not null; 
    
    b. 删除主键
    mysql> alter table student10                                 
        -> drop primary key;
  • 相关阅读:
    SQL SERVER2017 安装程序无法与下载服务器联系。无法安装机器学习服务的问题解决方式
    Kali Linux无法访问网络的问题
    Vue的冒泡事件
    记录阿里云ECS(Centos7.4)安装mysql 8.0.X服务
    沧桑巨变中焕发青春活力-记极1s HC5661A 打怪升级之路
    Asp.Net MVC过滤器小试牛刀
    C# Windows Service调用IBM Lotus Notes发送邮件
    记录一些js框架用途
    vc14(vs2015) 编译php7 记录
    C++ API方式连接mysql数据库实现增删改查
  • 原文地址:https://www.cnblogs.com/liuteacher/p/10078109.html
Copyright © 2020-2023  润新知