sql-1-DDL-操作数据库与表

1. 操作数据库:CRUD

oracle应该是没有操作数据库的SQL
oracl创建数据库通过数据库提供的工具“Database Configuration Assistant”来新建数据库 windows版oracle新建数据库

C(Create):创建

create database 数据库名称;  --创建数据库

create database if not exists 数据库名称; --如果不存在再创建

create database 数据库名称 character set 字符集名; --创建数据库,并指定字符集
create database db1 character set utf8mb4;

R(Retrieve):查询

show databases; --查询所有数据库的名称

show databases like 'db%';

show create database db1; --查看你指定数据库的创建语句

U(Update):修改

alter database 数据库名称 character set 字符集名称; --修改数据库的字符集

D(Delete):删除

drop database 数据库名称; --删除数据库,同时删除该数据库相关的目录及其目录内容

drop database if exists 数据库名称; --如果数据库存在再删除

使用数据库

use 数据库名称; --使用数据库

select database();  -- 查询当前正在使用的数据库

2. 操作表

C(Create):创建

-- 创建表
create table student(
	id int,
	name varchar(32),
	age int,
	score double(4,1),
	birthday date,
	insert_time timestamp
);

注意:最后一列,不需要加逗号(,

R(Retrieve):查询

desc 表名;  -- 查看表结构 字段名称以及约束

mysql

show tables; -- 查询当前选中数据库中所有的表名

show tables like "stu%"; -- 模糊搜索 表名

SHOW CREATE TABLE student; --查看表的创建语句 

oracle

select * form tab; -- 查看当前用户下所有表名

U(Update):修改

alter table 表名 rename to 新的表名; --修改表名
	rename  表名  to  新表名; -- 仅oracle支持

alter table 表名 rename column 列名  to 新列名;  -- 修改字段名

alter table 表名 add 列名 数据类型;  --添加字段

alter table  表名 drop column 列名; -- 删除字段
	alter table 表名 drop 列名; -- 省略column关键字,oracle不支持

alter table 表名  modify 列名  类型(大小)  -- 修改字段的数据类型或长度

alter table 表名 change 列名 新列名 新数据类型; --同时修改列名和数据类型       --oracle不支持

-- 仅mysql支持
alter table 表名 character set 字符集名称; --修改表的字符集
ALTER TABLE 表名 ENGINE=MYISAM;

mysql :

select * from emp1;
desc emp1;
alter table emp1 add age int;
alter table emp1 modify age decimal(3,0);
alter table emp1 CHANGE age age1 int;
alter table emp1 drop column age1;
alter table emp1 drop age;

oracle :

select * from emp;
desc emp;
alter table emp add age number;
alter table emp modify age number(3,0);
alter table emp CHANGE age age1 number;--oracle不支持
alter table emp drop column age;
alter table emp drop age; --oracle不支持

D(Delete):删除

drop table 表名; --删除表结构和数据,
drop table if exists 表名;

show  recyclebin; -- 查看回收站 仅oracle支持
purge recyclebin; -- 清空回收站 仅oracle支持

复制

复制表结构

create table 表名 like 被复制的表名;  -- 仅复制表表结构 oracle不支持

复制表结构和数据(子查询方式)

CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名

示例:
CREATE TABLE emp as SELECT * FROM emp1;
创建myTable2表,并存入emp表的empno,ename,sal字段及数据
	… as select empno,ename,sal from emp;
示例:	创建myTable3表,并存入emp表中sal<4000的所有字段及数据
	where sal<4000;
示例:	创建myTable4表,表的结构与emp表相同,但数据为空。
	where 1=2 ;

从其它表中拷贝数据

insert into [表名] select .... from [另一个表]  where ....

insert into [表名](字段名1,字段名2,…,字段名n)
	select 字段名1,字段名2,…,字段名n
	from 表名;

示例:INSERT INTO mytab(empno,ename,sal) SELECT empno,ename,sal FROM emp;
posted @ 2022-06-19 16:00  姬雨晨  阅读(28)  评论(0编辑  收藏  举报