mysql建表、添加、修改字段、索引、及数据库操作等sql命令语法
硅谷探秘者
2021-10-12发表
数据库
0
0
1153
一、数据库管理命令
进入数据库
mysql -u root -p
-- 输入密码
-- 或
mysql -u root -p123456
查看所有数据库
show databases;
查看所在库的所有表
SHOW tables;
查看创建数据库的sql语句
show create database `test2`;
查看创建数据表的sql语句
show create table `dept`;
查看mysql版本
SELECT VERSION()
查看当前登录的用户
SELECT USER();
二、数据库(表)操作命令
创建删除数据库
-- 创建数据库
CREATE DATABASE `person` CHARACTER SET utf8;
-- 修改数据库默认编码
ALTER DATABASE `person` CHARACTER SET utf8;
-- 删除数据库
DROP DATABASE `person`
创建表
-- 创建表
-- 表存在时先删除
DROP TABLE IF EXISTS dept;
CREATE TABLE `dept` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT "主键id",
`dept_name` VARCHAR(100) NOT NULL DEFAULT "未知" COMMENT "名称",
PRIMARY KEY (`id`)
)ENGINE=INNODB AUTO_INCREMENT=0 DEFAULT CHARSET = utf8;
添加字段
-- 添加备注字段
ALTER TABLE `dept` ADD COLUMN `remarks` VARCHAR(200) DEFAULT NULL COMMENT '备注';
-- 添加管理员id字段
ALTER TABLE `dept` ADD COLUMN `admin_id` INT(11) NOT NULL DEFAULT 0 COMMENT '管理员id';
-- 添加创建时间字段
ALTER TABLE `dept` ADD COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
修改字段
-- 修改字段(不修改字段名称用 MODIFY)
ALTER TABLE `dept` MODIFY `remarks` VARCHAR(250) NOT NULL DEFAULT '暂时没有' COMMENT '备注';
-- 修改字段(修改字段名称用 CHANGE)
ALTER TABLE `dept` CHANGE `remarks` `remark` VARCHAR(250) NOT NULL DEFAULT '暂时没有' COMMENT '备注';
删除字段
-- 添加字段
ALTER TABLE `dept` ADD COLUMN `user_num` INT(11) NOT NULL DEFAULT 0 COMMENT '部门人数';
-- 删除字段
ALTER TABLE `dept` DROP COLUMN `user_num`;
三、索引约束操作
-- 删除主键(如果主键设置自动递增,先修改为非自动递增)
ALTER TABLE `dept` MODIFY `id` INT(11) DEFAULT 0 COMMENT '主键id';
ALTER TABLE `dept` DROP PRIMARY KEY;
-- 添加主键索引
ALTER TABLE `dept` ADD PRIMARY KEY (`id`);
ALTER TABLE `dept` MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键id';
-- 添加唯一索引(不指定索引名称,默认字段名称)
ALTER TABLE `dept` ADD UNIQUE (`dept_name`);
-- 添加唯一索引(指定索引名称[deptNameIndex])
ALTER TABLE `dept` ADD UNIQUE deptNameIndex(`dept_name`);
-- 查看表的所有索引
SHOW INDEX FROM `dept`;
-- 删除索引(索引名称[dept_name])
ALTER TABLE `dept` DROP INDEX `dept_name`
-- 添加普通索引
ALTER TABLE `dept` ADD INDEX deptName(`dept_name`);
-- 添加全文索引
ALTER TABLE `dept` ADD FULLTEXT deptName(`dept_name`);
-- 添加组合索引(多个列名)
ALTER TABLE `dept` ADD INDEX deptName(`dept_name`,`admin_id`);