1. 查看所有数据库
SHOW DATABASES;
2. 创建一个数据库,并指定默认编码和排序规则。
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3. 删除一个数据库
DROP DATABASE db_name;
4. 指定使用的数据库
USE db_name;
5. 查看创建数据库的详细信息
SHOW CREATE DATEBASE db_name;
6. 查看所有的数据表【含视图表】
SHOW TABLES;
7. 查看所有数据表【含视图表】的详细信息。
SHOW TABLES STATUS;
8. 创建一个数据表,指定外键并声明级联修改、删除,设置表注释、引擎、主键自增值、默认编码、排序规则。
示例代码:
CREATE TABLE IF NOT EXISTS `article`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL COMMENT '标题',
`description` varchar(600) NOT NULL COMMENT '摘要',
`image_url` varchar(255) NULL COMMENT '文章列表页配图链接',
`content` text NOT NULL COMMENT '文章内容',
`hits` tinyint(1) DEFAULT 1 COMMENT '文章点击数',
`status` tinyint(1) DEFAULT 1 COMMENT '启用状态,为1表示启用,为2表示禁用',
`category_id` smallint UNSIGNED NOT NULL COMMENT '文章类别,外键',
`user_id` int(11) NOT NULL COMMENT '文章发布人id',
`create_time` int(11) NOT NULL COMMENT '文章添加时间',
`update_time` int(11) NOT NULL COMMENT '最近一次文章更新时间',
PRIMARY KEY(`id`),
-- 添加外键方式一,不指定外键约束名称
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
-- 添加外键方式二,指定外键约束名称
CONSTRAINT FK_Name foreign key (`category_id`) REFERENCES `category`(`id`) on delete cascade on update cascade
) COMMENT '文章信息表' ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
9. 当表已经存在时建立外键
-- 补充外键方式一,不指定外键约束名称
ALTER TABLE tablename ADD FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
-- 补充外键方式二,指定外键约束名称
ALTER TABLE tablename ADD CONSTRAINT FK_Name FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
10. 删除主键约束时,如果主键列是自增长列,那么需要先【通过修改列的属性】删除该列的自增长,然后再删除主键约束。
ALTER TABLE tablename CHANGE `id` `id` int NOT NULL;
ALTER TABLE tablename DROP PRIMARY KEY;
11. 根据外键约束名称删除外键
ALTER TABLE tablename DROP FOREIGN KEY FK_Name;
12. 清空表数据
TRUNCATE tablename;
13. 直接将查询结果导入或者复制到新创建的数据表。
CREATE TABLE table2 SELECT * FROM table1;
14. 复制一张数据表的结构创建一张新数据表
CREATE TABLE table2 LIKE table1;
15. 创建一张临时表。
CREATE TEMPORARY TABLE table_t(`id` int,`name` varchar(10));
16. 直接将查询结果导入或者复制到新创建的临时表
CREATE TEMPORARY TABLE table_t SELECT * FROM n;
17. 删除一张数据表
DROP TABLE IF EXISTS tablename;
18. 修改表名称
ALTER TABLE tablename RENAME newname;
-- 或者
RENAME TABLE tablename TO newname;
19. 查看表结构
DESC tablename;
-- 或者
SHOW COLUMNS IN tablename;
-- 或者
EXPLAIN tablename;
20. 查看表结构的详细信息
SHOW FULL COLUMN FROM tablename;
21. 查看表的创建语句
SHOW CREATE TABLE tablename;
22. 添加字段并指定位置
ALTER TABE tablename ADD columnname ... AFTER column2;
23. 删除字段
ALTER TABLE tablename DROP columname;
24. 修改字段属性
ALTER TABLE tablename CHANGE columnname newname ...;
25. 只修改字段的数据类型属性
ALTER TABLE tablename MODIFY columnname new_data_type;
26. 数据的基本 增、查、删、改
INSERT INTO tablename VALUES(...),(...);
-- 或者
INSERT INTO tablename SELECT * FROM tablename2;
SELECT * FROM tablename WHERE ...;
UPDATE tablename SET column1=value1,...;
DELETE FROM tablename where ...;
27. 创建唯一键
-- 不指定唯一约束的名称
ALTER TABLE tablename ADD UNIQUE (columnname);
-- 指定唯一约束的名称
ALTER TABLE tablename ADD UNIQUE u_name (columnname);
28. 创建索引
-- 不指定索引名称
ALTER TABLE tablename ADD INDEX (columnname);
-- 指定索引名称
ALTER TABLE tablename ADD INDEX indexname (columnname);
-- 创建唯一索引并指定索引名称
ALTER TABLE tablename ADD UNIQUE INDEX indexname (columnname);
29. 删除索引或唯一键
DROP INDEX indexname ON tablename;
30. 创建视图
-- 不自定义视图里的列名
CREATE VIEW viewname AS SELECT col1,col2,... FROM tablename;
-- 自定义视图里的列名
CREATE VIEW viewname(col3,col4) AS SELECT col1,col2 FROM tablename;
31. 查看视图
SELECT * FROM viewname;
-- 或者
DESC viewname;
32. 查看视图的创建语句
SHOW CREATE VIEW viewname;
33. 更改视图
CREATE OR REPLACE VIEW viewname AS SELECT col1,col2,... FROM tablename;
-- 或者
ALTER VIEW viewname AS SELECT col1,col2,... FROM tablename;
34. 删除视图
DROP VIEW IF EXISTS viewname;