• mysql-建表、添加字段、修改字段、添加索引SQL语句写法


    表的操作

    1、建表

    --如果USERS表存在则删除

    DROP TABLE IF EXISTS USERS; 
    CREATE TABLE USERS(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT, # 主键 UNSIGNED 无符号 AUTO_INCREMENT 自增
    name VARCHAR(30) NOT NULL COMMENT '用户名',
    sex ENUM('男','女') NOT NULL DEFAULT '男', # 使用枚举类型, 在插入的时候可以数值来表示,从1开始。如1则代表男
    age TINYINT UNSIGNED NOT NULL DEFAULT 1,
    PRIMARY KEY (`Id`)
    )DEFAULT CHARSET=UTF8 ENGINE=INNODB;
    

    操作字段都是ALTER TABLE 表名 的格式

    2、添加字段

    ALTER TABLE USERS ADD alias varchar(20) COMMENT '别名';

    3、修改字段

      3.1 不修改名称 使用modify

    ALTER TABLE USERS MODIFY name varchar(20) NOT NULL COMMENT '用户名';
    

      3.2 修改名称 使用change  格式 是 change 要修改的名称 新名称 ...

    ALTER TABLE USERS CHANGE name username varchar(20) NOT NULL COMMENT '用户名';
    

    4、删除字段

    ALTER TABLE USERS DROP COLUMN alias;
    -- 删除多个字段
    -- ALTER TABLE USERS DROP COLUMN alias,DROP COLUMN age;
    

    库的操作

    1、建库

    CREATE DATABASE test CHARACTER SET utf8;
    

    2、修改库的默认编码

    ALTER DATABASE test CHARACTER SET utf8;
    

    3、删库跑路

    DROP DATABASE test;
    

      

    索引(约束)的操作

    1、添加主键

    --删除主键

    ALTER TABLE 表名 DROP PRIMARY KEY;
    
    ALTER TABLE USERS ADD PRIMARY KEY ( `id` )

    2、添加唯一索引

    ALTER TABLE USERS ADD UNiQUE ( `username` )

    3、添加普通索引

    ALTER TABLE `USERS` ADD INDEX index_name ( `age` )

    4、添加全文索引

    ALTER TABLE `表名` ADD FULLTEXT (
    `列名`
    )
    

    5、添加多列索引 

    ALTER TABLE `表名` ADD INDEX index_name ( `列名1`, `列名2`, `列名3` )
    

    6、添加外键

    一般很少外键约束,外键约束靠代码逻辑实现

    alter table 表名 add constraint fk_引用id foreign key(引用id) references 被引用表名 (被引用id)
    

     

    alter table 表名 drop forign key fk_引用id
    

    数据库的管理命令

    1、连接

    mysql -u root -p123456
    或
    mysql -u root -p
    
    输入密码
    

    2、查看操作

    -- 查看所有库
    show databases;

    -- 查看所在库的表
    show tables;

    -- 查看库的创建语句
    show create database test;

    -- 查看表的创建语句
    show create table test;

    -- 查看表的索引
    -- show index from table_name(表名)
    show index from users;

    -- 查看mysql版本
    select version();

    -- 查看当前用户
    select user();

    3、创建用户

    -- 特别需要注意,在 MySQL 中,账号由两部分组成:
    -- 1. user
    -- 2. host
    -- 即使 user 相同,只要 host 不同,也会被认为是不同账号。
    -- 这样可以非常方便对来自不同 ip 地址的访问进行精细的权限控制。
    -- 默认情况下,创建的用户 host 为 '%',这是一个匹配符,跟模糊查询里的意思一样,表示匹配所有
    create user [用户名] identified by '[密码]';
    create user vip identified by 'vippp';             -- 所有连接
    create user vip@'127.0.0.1' identified by 'xxx';   -- 本地连接
    create user vip@'192.168.%' identified by 'yyy';   -- 192.168 网段的连接

    4、删除用户

    drop user 用户名;
    或
    delete from mysql.user where user='用户名' and host='%'

    5、修改密码

    set password from '用户名' @host=password('新密码');
    或
    update mysql.user set password=password('新密码') where user='用户名' and host='%';
    
    --使用password() 进行加密

    6、设置用户权限

    grant all on *.* to vip@'127.0.0.1';   --将所有数据库上的所有权利都授予通过本机连接的VIP用户;
    
    grant all privileges on books.* to vip@'%'; --将数据库books上的说有权利都授予所有连接的vip用户;
    
    grant select on books.users to vip@'%';  --将books数据库上的users表的访问权限开发给vip用户;
    
    grant all on *.* to vip@'%' with grant potions;  --with grant potionss的意思是可以给vip给予权限给别的用户

    flush privileges; --设置权限后要刷新权限

     

  • 相关阅读:
    D Prefix XORs
    Navicat_查看Navicat已保存数据库密码
    Django_报错:Forbidden (CSRF cookie not set.): /runoob/ [21/Mar/2022 19:48:12] "POST /runoob/ HTTP/1.1" 403 2801
    Django_配置数据库后重启报错:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.10.1.
    C# this.Invoke()与Delegate.Invoke()区别使用多线程循环执行(定时执行)数据处理功能
    Wince系统Pad串口连接外接设备
    c# Invoke和BeginInvoke的区别推荐文章
    C# this.BeginInvoke()与Delegate.BeginInvoke()的区别
    winfrom程序实时更新UI,程序长时间运行,不过我使用的线程和委托运行两天就自动退出了,不知道怎么回事??
    十全十美的文本日志类
  • 原文地址:https://www.cnblogs.com/f-rt/p/11141421.html
Copyright © 2020-2023  润新知