数据库表的相关操作
DDL数据定义语言 定义逻辑库、数据表;
CREATE DATABASE demo; #创建一个名为demo的数据库
SHOW DATABASES; #显示该连接下所有数据库
DROP DATABASE demo;#删除名为demo的数据库
USE demo;
CREATE TABLE `t_dept`( #在demo数据库创建名为t_dept的表
`deptno` int(2) NOT NULL COMMENT '部门编号',
`dname` varchar(20) DEFAULT NULL COMMENT '部门名称',
`loc` varchar(20) DEFAULT NULL COMMENT '部门位置',
PRIMARY KEY(`deptno`)
) COMMENT '部门表' ENGINE=InnoDB DEFAULT CHARSET=utf8;
USE demo;
SHOW tables;#显示该数据库下所有表
DESC t_dept; #显示t_dept表的表结构
SHOW CREATE TABLE t_dept;#显示t_dept表的建表语句
DROP TABLE t_dept; #删除表t_dept
DDL数据定义语言 数据类型;
不精确的浮点数
十进制的浮点数转换成二进制时会丢失精度,故在需要精确存储小数时用decimal而不是float和double
DDL数据定义语言 修改表结构;
#删除字段
ALTER TABLE t_dept
DROP dname,
DROP loc;
#添加字段
ALTER TABLE t_dept
ADD dname varchar(20) DEFAULT NULL COMMENT '部门名称',
ADD loc varchar(20) DEFAULT NULL COMMENT '部门位置';
#修改字段类型和约束
ALTER TABLE t_dept
MODIFY dname varchar(30) NOT NULL COMMENT '部门名称';
#修改字段名称
ALTER TABLE t_dept
CHANGE dname deptname varchar(30) NOT NULL COMMENT '部门名称';
DDL数据定义语言 字段约束;
DDL数据定义语言 索引;
#建表时创建索引
CREATE TABLE `t_message` (
`id` int(10) UNSIGNED PRIMARY KEY,
`content` varchar(200) NOT NULL,
`type` enum('公告','通报','个人通知') NOT NULL,
`create_time` timestamp NOT NULL,
INDEX `idx_type`(`type`)
);
#删除索引
DROP INDEX idx_type ON t_message;
#添加索引
CREATE INDEX idx_type ON t_message(type);
#显示索引
SHOW INDEX FROM t_message;
#添加索引
ALTER TABLE t_message ADD INDEX idx_type(type);
索引的使用原则
- 数据量很大,而且经常被查询的数据表可以设置索引
- 索引只添加在经常被用作检索条件的字段上面
- 不要在大字段上创建索引