欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;