zoukankan      html  css  js  c++  java
  • 《MySQL数据库》MySQL常用语法(一)

    MySQL从创建数据库到对表的增删改操作汇总。

    1. 数据库操作:

    -- 查看所有的数据库
    SHOW DATABASES ;
    -- 创建一个数据库,XXX表示数据库名称
    CREATE DATABASE XXX;
    -- 删除一个数据库,XXX表示数据库名称
    DROP DATABASE XXX;
    -- 使用这个数据库,XXX表示数据库名称
    USE XXX;

    2. 用户操作:

    -- 增加用户 第一个test是用户名,后一个test是密码
    CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
    -- 在用户表中插入用户信息,直接操作User表不推荐
    INSERT INTO mysql.user(Host, User, Password) VALUES ('localhost', 'test', Password('test'));    
    -- 删除用户
    DROP USER 'test'@'localhost';
    DELETE FROM mysql.user WHERE User='test' AND Host='localhost';
    -- 更改用户密码
    SET PASSWORD FOR 'test'@'localhost' = PASSWORD('test');
    UPDATE mysql.user SET Password=Password('t') WHERE User='test' AND Host='localhost';
    FLUSH PRIVILEGES ;
    -- 用户授权
    GRANT ALL PRIVILEGES ON *.* TO test@localhost IDENTIFIED BY 'test';
    -- 授予用'test'密码登陆成功的test@localhost用户操作所有数据库的所有表的所有的权限
    FLUSH PRIVILEGES ;   -- 刷新系统权限表,使授予权限生效
    -- 撤销用户授权
    REVOKE DELETE ON *.* FROM 'test'@'localhost';   -- 取消该用户的删除权限

    3. 表的操作:

    -- 查看所有的表
    SHOW TABLES ;
    -- 创建一个表 (XXX是表名,id 是字段名,INT,VARCHAR(10) 是字段类型和字段长度;not null表示字段不能为空
    -- PRIMARY KEY (id) 将id字段设置成主键,UNIQUE (id)将id设置成唯一索引)
    CREATE TABLE XXX(id INT, name VARCHAR(10) not null, PRIMARY KEY (id), UNIQUE (id));
    -- 直接将查询结果导入或复制到新创建的表(XXX_TMP)
    CREATE TABLE XXX_TMP SELECT * FROM XXX;
    -- 新创建的表(XXX_TMP)与一个存在的表(XXX)的数据结构类似
    CREATE TABLE XXX_TMP LIKE XXX;
    -- 创建一个临时表
    -- 临时表将在你连接MySQL期间存在。当断开连接时,MySQL将自动删除表并释放所用的空间。也可手动删除。
    CREATE TEMPORARY TABLE XXX_TEMP(id INT, name VARCHAR(10));
    -- 删除一个存在表,XXX表示表名
    DROP TABLE IF EXISTS XXX;
    -- 更改存在表的名称(将XXX_OLD改成XXX_NEW)
    ALTER TABLE XXX_OLD RENAME TO XXX_NEW;
    RENAME TABLE XXX_OLD TO XXX_NEW;
    -- 查看表的结构(以下五条语句效果相同)XXX表示表名
    DESC XXX;   -- 因为简单,所以建议使用
    DESCRIBE XXX;
    SHOW COLUMNS IN XXX;
    SHOW COLUMNS FROM XXX;
    EXPLAIN XXX;
    -- 查看表的创建语句(XXX表示表名)
    SHOW CREATE TABLE XXX;

    4. 表字段操作:

    -- 添加字段(age),XXX表示表名
    ALTER TABLE XXX ADD age VARCHAR(2) not null;
    -- 删除字段age,XXX表示表名
    ALTER TABLE XXX DROP age;
    -- 只更改字段属性,可以为空
    ALTER TABLE XXX MODIFY age VARCHAR(7) null;

    5. 表增删改操作:

    -- 增加数据
    INSERT INTO(id,name) XXX VALUES (1, 'tom');
    INSERT INTO XXX SELECT * FROM XXX_FROM;  -- 把数据复制一遍重新插入
    -- 删除数据,id=2的数据从表里面删除。
    DELETE FROM XXX WHERE id = 2;
    -- 更改数据,id等于2的数据的name字段更新成tom1
    UPDATE XXX SET name = 'tom1' WHERE id = 2;
    -- 数据查找(简单查询,后续精讲)
    SELECT * FROM XXX;

    6. 主键,唯一索引,索引的操作:

    -- 添加主键
    ALTER TABLE XXX ADD PRIMARY KEY (id);
    -- pk_name 给主键命名
    ALTER TABLE XXX ADD CONSTRAINT pk_name PRIMARY KEY (id);   
    -- 删除主键
    ALTER TABLE XXX DROP PRIMARY KEY ;
    -- 添加外键
    ALTER TABLE XXX_W ADD FOREIGN KEY (id) REFERENCES XXX(id);    -- 自动生成键名m_ibfk_1
    ALTER TABLE XXX_W ADD CONSTRAINT fk_id FOREIGN KEY (id) REFERENCES XXX(id);   -- 使用定义的键名fk_id
    -- 删除外键
    ALTER TABLE XXX_W DROP FOREIGN KEY 'fk_id';
    -- 修改外键
    ALTER TABLE XXX_W DROP FOREIGN KEY 'fk_id', ADD CONSTRAINT fk_id2 FOREIGN KEY (id) REFERENCES XXX(id);    -- 删除之后从新建
    -- 添加唯一键
    ALTER TABLE XXX ADD UNIQUE (name);
    ALTER TABLE XXX ADD UNIQUE u_name (name);   -- u_name索引名称
    ALTER TABLE XXX ADD UNIQUE INDEX u_name (name);   -- u_name索引名称
    ALTER TABLE XXX ADD CONSTRAINT u_name UNIQUE (name);  -- u_name索引名称
    CREATE UNIQUE INDEX u_name ON XXX(name);  -- u_name索引名称
    -- 添加索引
    ALTER TABLE XXX ADD INDEX (age);   
    ALTER TABLE XXX ADD INDEX i_age (age); -- i_age索引名称
    CREATE INDEX i_age ON XXX(age); -- i_age索引名称
    -- 删除索引或唯一键
    DROP INDEX u_name ON XXX;
    DROP INDEX i_age ON XXX;

    7. 视图操作:

    -- 创建视图
    CREATE VIEW V_XXX AS SELECT id, name FROM XXX;
    CREATE VIEW V_XXX(id, name) AS SELECT id, name FROM XXX;
    -- 查看视图(与表操作类似)
    SELECT * FROM V_XXX;
    DESC V_XXX;
    -- 查看创建视图语句
    SHOW CREATE VIEW V_XXX;
    -- 更改视图
    CREATE OR REPLACE VIEW V_XXX AS SELECT name, age FROM XXX;
    ALTER VIEW V_XXX AS SELECT name FROM XXX ;
    -- 删除视图
    DROP VIEW IF EXISTS V_XXX;

    参考:https://blog.csdn.net/c361604199/article/details/79479398

    This moment will nap, you will have a dream; But this moment study,you will interpret a dream.
  • 相关阅读:
    2016 年青岛网络赛---Sort(k叉哈夫曼)
    Gym 100703G---Game of numbers(DP)
    棋盘覆盖(分治法)
    大整数乘法(分治法)
    博客编辑---数学公式
    《程序员代码面试指南》第八章 数组和矩阵问题 子数组的最大累加和问题
    《程序员代码面试指南》第八章 数组和矩阵问题 奇数下标都是奇数或者偶数下标都是偶数
    《程序员代码面试指南》第八章 数组和矩阵问题 自然数数组的排序
    《程序员代码面试指南》第八章 数组和矩阵问题 计算数组的小和
    《程序员代码面试指南》第八章 数组和矩阵问题 未排序数组中累加和小于或等于给定值的最长子数组长度
  • 原文地址:https://www.cnblogs.com/jssj/p/11775946.html
Copyright © 2011-2022 走看看