MySQL基本操作(库、表级别)

  • 1、在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在数据库中非常重要,可以用 create user命令来创建用户
用户管理特殊命令:
    创建用户
        create user '用户名'@'IP地址' identified by '密码';
    删除用户
        drop user '用户名'@'IP地址';
    修改用户
        rename user '用户名'@'IP地址' to '新用户名'@'IP地址'
    修改密码
        set password for '用户名'@'IP地址' = Password('新密码')

权限:
    show grant for '用户'@'IP地址'
    grant 权限 on 数据库.表 to '用户'@'IP地址'
    revoke 权限 on 数据库.表 from '用户'@'IP地址'
  • 2、库、表基本命令
数据库级别:
    show databases;                 #查看数据库
    create database 数据库名;     #创建数据库
    use 数据库名;                   #进入数据库
    drop database 数据库名;         #删除数据库
表级别:
    show tables;                   #查看数据库表
    desc tb1;          #查看表结构
    create table 表名(列1 数据类型,列2 数据类型。。。);   #创建表
    drop table 表名;           #删除表
    delete from 表名;       #清空表内容
    truncata table 表名;    #清空表内容,不可以回滚
  • 3、创建表
    • 语法格式
      • create table 表名(
        列名1 类型 约束,
        列名2 类型 约束,
        ....
        )ENGINE=InnoDB DEFAULT CHARSET=utf8
    • 数据类型
数值:
    bit  二进制
    tinyint
    smallint
    int
    bigint   ---范围不一样

    decimal  ---精确的
    FLOAT
    DOUBLE  ---不靠谱的,浮点型

字符串:
    char  --定长 (最多255位)   #查找速度快,浪费空间
    varchar  ---变长(最多255位)  #查找速度相对慢,节省空间
    text
    mediumtext
    longtext

二进制数据:
    TinyBlob、BLob、MediumBlob、LongBlob

时间:
    DATE:
        YYYY-MM-DD(1000-01-01/9999-12-31)
    TIME:
        HH:MM:SS('-838:59:59'/'838:59:59')
    YEAR:
        YYYY(1901/2155)
    DATETIME:
        YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)
    TIMESTAMP:
        YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

枚举emun:单选
    create table shirts(
        name varchar(40),
        size enum('S','M','L','XL')
    );
    insert into shirts(name,size) values('xwl','L');

集合:多选
    create table myset(col set('a','b','c','d'));
    insert into myset(col) values('a,b'),('a,d'),('a,b,d')
  • 约束
    • SQL 约束用于限制加入表的数据的类型
    • 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)
    • 主键、外键约束的创建
外键:两张表之间约束,userinfo表中的part_id字段必须属于part表中的nid字段
    create table userinfo(
        nid int not null auto_icrement primary key,
        age int,
        name varchar(20),
        part_id int
        #constraint fk_cc foreign key(part_id) references part(nid)  新增表的时候创建外键
    );
    create table part(
        nid int,
        deparment varchar(50)
    );
    alter table userinfo add constraint fk_cc foreign key userinfo(part_id) references part(nid);
  • 3、表级别SQL命令
    • 新增列
      • 一列:alter table 表名 add 列名 列类型 列约束;
      • 多列:alter table 表名 add(列名 列类型 列约束,列名2 列类型 列约束);
    • 删除列:alter table 表名 drop column 列名
    • 新增约束:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容;
    • 删除约束:alter table 表名 drop constraint 约束名;
    • 修改表名
      • alter table 表名 modify column 列名 类型; 修改类型
      • alter table 表名 change 原列名 新列名 类型; 修改列名、类型
    • 修改列
posted @ 2022-07-30 14:25  Tony_xiao  阅读(99)  评论(0编辑  收藏  举报