首页 > 数据库 >SQL 之 DDL(MySQL)

SQL 之 DDL(MySQL)

时间:2023-06-14 22:14:09浏览次数:157  
标签:-- 列名 DDL 表名 SCOTT SQL MySQL table TABLE

创建数据库

Create {database|schema} [if not exists] 数据库名称;

CREATE DATABASE if not exists SALARY;

删除数据库

drop database [if exists] 数据库名称;

DROP DATABASE if exists SALARY;

创建表

create table if not exists 表名
(
列名 数据类型,
);

CREATE TABLE DEPT-- 创建部门表
(
	DEPTNO CHAR(2) PRIMARY KEY,-- 部门编号,且为主键
	DNAME VARCHAR(14),-- 部门名称
	LOC VARCHAR(15)-- 地点
);
CREATE TABLE IF NOT EXISTS SCOTT
(
	empno CHAR(4) PRIMARY KEY, -- 员工编号,且为主键
	ename VARCHAR(10),-- 员工姓名
	job VARCHAR(20),-- 职位
	mgr CHAR(4),-- 经理编号
	hiredate date,-- 入职日期
	sal DECIMAL(7,2),-- 薪金
	comm DECIMAL(7,2),-- 佣金
	deptno char(2),-- 部门编号
	CONSTRAINT SCOTT_DEPTNO-- SCOTT_DEPTNO为外键约束名称
	FOREIGN KEY (deptno) REFERENCES DEPT(DEPTNO)
	-- 引用表DEPT的主键DEPTNO,设置列deptno为外键
);

删除表

Drop table 表名;

DROP TABLE SCOTT;

修改表

增加列

Alter table 表名 ADD 列名 数据类型;

ALTER TABLE SCOTT ADD AGE INT;

删除列

Alter table 表名 drop [column] 列名;

ALTER TABLE SCOTT DROP COLUMN AGE;

修改列的类型、参数

Alter table 表名 modify 列名 新类型 新参数;

ALTER TABLE SCOTT MODIFY SAL DECIMAL(8,2);

修改列的名称

Alter table 表名 change 旧列名 新列名 新类型 新属性;
ALTER TABLE SCOTT CHANGE SAL SALA DECIMAL(7,2);

增加表的主键

Alter table 表名 ADD primary key(列名);

作为主键的列数据不能重复。

ALTER TABLE SCOTT ADD primary key(empno);
image

增加表的外键

Alter table 主表 add foreign key(列名) references 外表(列名);

引用的外表列名必须是外表的主键

ALTER TABLE SCOTT 
ADD FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO);

image

删除表的外键

第一步:获取表的外键约束
Show create table 表名;
SHOW CREATE TABLE SCOTT;
image
第二步:删除表的外键约束
Alter table 主表名 drop foreign key 外键约束名;
ALTER TABLE SCOTT DROP FOREIGN KEY scott_ibfk_1;
第三步:删除表的键
Alter table 主表名 drop key 外键约束名;
ALTER TABLE SCOTT DROP KEY deptno;
image

修改表的名称

Rename table 旧表名 to 新表名;
Rename table scott to emp;

查询表的结构

Show columns from 表名;
show columns from DEPT;
image

标签:--,列名,DDL,表名,SCOTT,SQL,MySQL,table,TABLE
From: https://www.cnblogs.com/saimeco/p/17481476.html

相关文章

  • Node Mysql连接池操作封装
    之前写了一个对mysql操作的封装的博客:nodemysql操作封装后面方向,当你访问量比较大的时候,直接用mysql的连接是会崩掉的,不支持这么多的连接,用连接池操作比较好,然后就操作了一下constmysql=require('mysql');module.exports={config:{host:'localhost',......
  • 阿里云服务器-mysql远程连接
    这两天买了个阿里云服务器,自己搞了一下,装了mysql,因为平时Navicat用习惯了,想着陪一下服务器的数据库,这样就方便操作了,然后搞了变天,设置bind-address,修改服务器端口,结果一番下来,还是没成功。然后今天看到了一个帖子UbuntuServer16.04下配置MySQL并开启远程连接,说是好像因为mysql结......
  • Node Mysql操作封装
    由于最近要写个签到系统,频繁的操作mysql导致代码量暴涨,就想着优化下SQL的结构,减少工作量。'usestrict';varmysql=require('mysql');//数据库配置module.exports={/***数据库配置*/config:{host:'localhost',port:3306,......
  • sqlserver 数据库死锁 解决心得
    背景:一个客服数据库,每天不定时死锁,死锁时间很短。等到远程时死锁已经结束。起初遇到死锁,一般都是先通过活动监视器,找到头阻塞的id,通过spid定位到机器和程序。但是这次情况比较特殊,每次死锁时间较短,不好追踪。最后想来想去还是锁的概念掌握的不够清晰,在网上又找了几篇文章......
  • Windows安装多版本MySQL(命令行)
    注意:电脑上可以多个数据库版本共存,但是在初次安装执行mysqld-installmysql的时候需要将mysql替换为唯一的名字,并且环境变量只能配置一个1.windows中下载指定版本官网下载命令行版本:https://dev.mysql.com/downloads/mysql/解压到指定位置编写my.ini文件[mysqld]#设......
  • SQL中json解析技巧
    比如字段var1,值是'{"a":{"b":{"c":1,"d":2}}}'大家都知道用get_json_object(var1,'$.a')可以得到'{"b":{"c":1,"d":2}}',如果要继续下挖,不需要get_json_object函数一直套可以直接按这个写法:get_json_object......
  • 数据比对通用SQL模版
    --********************************************************************----author:xujinchen--createtime:2023-06-1417:51:04--********************************************************************--withods_dcas(selectpt,count(*)......
  • Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑
    Mysql8.0.32unionall创建视图无法使用中文模糊查询的坑摘要本周研发同事反馈现场有一个问题.客户使用mysql的数据库(Windows平台)然后在多表unionall创建的视图内执行查询如果使用中文模拟查询,就没结果返回.大部分csdn的搜索结构都是说需要在my.ini里面增加部分默......
  • 【后端面经-数据库】MySQL的事务隔离级别简介
    (【后端面经-数据库】MySQL的事务隔离级别简介)0.事务的概念事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作ACID:A-Atomicity:原子性,事务的执行必须保证所有的动作都执行完毕;C-Consistency:一致性,事务的执行必......
  • mybatis 处理in 1000以上sql
    展开查看点击查看代码updateT_XSGL_XSXX_XJXXxjxxsetxjxx.XWZSBH=null,xjxx.ZHXGR=#{userId},xjxx.ZHXGSJ=sysdatewhereexists(select1fromT_BYGL_XSBYJGbyjgwherebyjg.GDMCisnullandbyjg.XS_ID=xjxx.XS_ID)and(xjxx.......