mysql建表、添加、修改字段、索引、及数据库操作等sql命令语法

硅谷探秘者 Md 数据库 807 0 0

一、数据库管理命令

进入数据库

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`);

评论区
请写下您的评论...
暂无评论...
猜你喜欢
weblog 980 ALTERTABLEdatabaseName.tableNameADDUNIQUE(columnName);databaseName:名tableName:明columnName:
weblog 2128 java使用原生jdbc连接获取或执行sql句(mysql) publicvoidtest2(){ try{ //MySql的驱动类 Class.forName
数据库基础 3543 mysql某个,使其为这个列中最大的值再大1updateyx_studenta,(selectIF(MAX(ranking)isnull,0,MAX(ranking))+1mdfromyx_student)bseta.ranking=b.mdwherea.id=2
数据库基础 3016 中挑选出符合声明的,而不是像传统编程思维去指示计算机如何。所以最关键的一点是:SQL并不按照顺序执行。2.sql顺序一般来说sql顺序是:SELECT[DISTIN
weblog 3623 中挑选出符合声明的,而不是像传统编程思维去指示计算机如何。所以最关键的一点是:SQL并不按照顺序执行。sql顺序一般来说sql顺序是: SELECT[DISTINCT]
official 507 就回到和版本一模一样的状态; 一种是a.txt已经到暂存区后,又,现在,撤销就回到到暂存区后的状态。 总之,就是让这个文件回到最近一次gitcommit或gitadd时的状态。
数据库基础 2712 查询中某个重复的select*fromuserstwhere(selectcount(1)fromuserswhereusername=t.username)1例如:查询所有用户名重复的
java基础 3478 描述的是Java方执行的线程内存模型:每个方被执行的时候,Java虚拟机都会同步创一个栈帧[1](StackFrame)用于存储局部变量栈、动态连接、方出口信息。每一个方被调用直
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。