python,数据库操作实体(库、表的结构):
程序员文章站
2022-06-04 08:46:00
...
操作实体(库、表的结构):
查看所有数据库:
SHOW DATABASES;
创建数据库:
CREATE DATABASE 库名 CHARSET=UTF8;
删除数据库:
DROP DATABASE 库名;
使用数据库:
USE 库名;
查看所有表:
SHOW TABLES;
创建表:
CREATE TABLE 表名(id INT,name CHAR(32),age INT,gender CHAR(4)...)CHARSET=UTF8;
删除表:
DROP TABLE 表名;
查看表结构:
DESC 表名;
修改表的名字:
ALTER TABLE 当前表名 RENAME 新表名;
添加字段:
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;
删除字段:
ALTER TABLE 表名 DROP COLUMN 字段名;
修改字段名称
ALTER TABLE 表名 CHANGE COLUMN 当前字段名 新字段名 当前字段类型;
修改字段名称加类型:
ALTER TABLE 表名 CHANGE COLUMN 当前字段名 新字段名 新字段类型;
修改字段类型:
ALTER TABLE 表名 MODIFY COLUMN 字段 新字段类型;
注:有多少行数据就有多少行被影响。
操作数据:
增:
INSERT INTO 表名(字段1,字段2,...) VALUE (值1,值2,...);
删:
DELETE FROM 表名 WHERE 字段1=值1;
改:
UPDATE 表名 SET 字段1=值1 WHERE 字段2=值2;
查:
SELECT 字段名或* FROM 表名 WHERE 字段=值;
主键:
添加主键:
ALTER TABLE 表名 ADD PRIMARY KEY(字段);
ALTER TABLE 表名 ADD PRIMARY KEY AUTO_INCREMENT(字段);
--版本问题 这样写不报错也不生效,主键添加成功,自增属性未添加上
ALTER TABLE 表名 MODIFY 字段 INT AUTO_INCREMENT PRIMARY KEY;
--5.7版本要加自增用modify关键字
删除主键(不用指定字段):
ALTER TABLE 表名 DROP PRIMARY KEY;
外键:
建表时添加外键:
CREATE TABLE 中间表(
filed INT PRIMARY KEY AUTO_INCREMENT,
外键字段1 INT,
外键字段2 INT,
FOREIGN KEY(外键字段1) REFERENCES 外表1(id),
FOREIGN KEY(外键字段2) REFERENCES 外表2(id)
);
建表时没有加外键 后面修改:
ALTER TABLE 表名
ADD [CONSTRAINT 外键名] #可以不给外键名
FOREIGN KEY(外键字段) REFERENCES 关联表(关联字段名);
删除外键:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
查看主键外键等建表时的信息(查看外键名):
SHOW CREATE TABLE 表名 \G;
关联查询:
内连接查询:
SELECT * FROM 表名1 INNER JOIN 表名2 ON 条件;
左表查询(左关联查询):
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 条件;
右表查询(右关联查询);
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 条件
注:在关联查询中,只有两个表关联查询时必须用ON,两个以上表可以用WHERE条件
索引:
创建索引
普通索引:
ALTER TABLE 表名 ADD INDEX(字段);
唯一索引:
ALTER TABLE 表名 ADD UNIQUE(字段);
主键索引:
ALTER TABLE 表名 ADD PRIMARY KEY(id);
多列索引:
ALTER TABLE 表名 ADD INDEX(字段1,字段2,...)
删除索引:
DROP INDEX 字段 ON 表名;
删除复合索引,需要删除创建索引时候的第一个字段:
DROP INDEX 字段 ON 字段1;
查看索引:
SHOW INDEX FROM 表名;
视图:
创建视图:
CREATE VIEW 视图名 AS (SELECT 字段1,字段2,字段3... FROM 表名);
查看视图:
SHOW TABLE STATUS WHERE COMMENT = "VIEW"\G;
使用视图:
SELECT * FROM 视图名;
删除视图:
DROP VIEW 视图名;
触发器:
创建触发器:
1、修改mysql的语法结束符
DELIMITER ||
2、设置触发器
CREATE TRIGGER 触发器名 AFTER INSERT ON 表名 FOR EACH ROW
BEGIN
INSERT INTO course(字段1) VALUE ("值1");
END ||
3、将mysql的语法结束符修改回来
DELIMITER ;
4、触发触发器
INSERT INTO 表名 (字段1) VALUE ("值1");
查看触发器:
SELECT * FROM INFORMATION_SCHEMA_TRIGGERS \G;
删除触发器:
DROP TRIGGER 触发器名;
用户:
修改密码:
SET PASSWORD FOR 用户@"主机"=PASSWORD("新密码");
查看用户状态:
先使用mysql库:use mysql
再SELECT user,host,authentication_string FROM user;
创建用户:
CREATE USER 用户@"主机";
注:主机地址写%.%.%.%,则允许全网段登录
创建用户并且设置密码:
CREATE USER 用户@"主机" IDENTIFIED BY "密码";
删除用户:
DROP USER 用户@"主机";
授权:
常规权限 :
select查询 insert插入 update更新 delete删除 create创建
对指定用户的指定IP登录授权操作指定的数据库的表:
GRANT command ON database.table TO user@host;
授权指定用户指定IP登录拥有指定库指定标的指定字段的指定操作:
GRANT command(field) ON database.table TO user@host;
上一篇: 数据库 & 数据表的操作
下一篇: MySQL数据库表的操作