mysql建表、添加、修改字段、索引、及数据库操作等sql命令语法
一、数据库管理命令
进入数据库
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
ofc
sql的语法顺序和执行顺序
weblog
3623
据库中挑选出符合声明的数据,而不是像传统编程思维去指示计算机如何操作。所以最关键的一点是:SQL的语法并不按照语法顺序执行。sql的语法顺序一般来说sql的语法顺序是: SELECT[DISTINCT]
official
507
改就回到和版本库一模一样的状态;
一种是a.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次gitcommit或gitadd时的状态。
blog
查询表中某个字段重复的数据
数据库基础
2712
查询表中某个字段重复的数据select*fromuserstwhere(selectcount(1)fromuserswhereusername=t.username)1例如:查询所有用户名重复的数
blog
Java内存区域与内存溢出异常
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
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。