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