zoukankan      html  css  js  c++  java
  • 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; --设置权限后要刷新权限

     

  • 相关阅读:
    P2P理财友情提示
    P2P理财友情提示
    如何在Chrome development tool里查看C4C前台发送的请求细节
    CRM和ERP的Sales Organization的映射关系
    如何从ERP将Material的Batch信息下载到CRM并存储在settype COMM_PR_BATCH里
    CRM中间件里的发布-订阅者模式
    CRM订单状态的Open, In process和Completed这些条目是从哪里来的
    如何证明CRM WebClient UI上的应用是有状态(Stateful)的
    如何使用代码获得一个function module的Where Used List
    观察者模式在One Order回调函数中的应用
  • 原文地址:https://www.cnblogs.com/f-rt/p/11141421.html
Copyright © 2011-2022 走看看