创建数据库
create database 数据库名; -- 字符集要看mysql 版本, 5.7 Latin, 8.0 utf8
create database 数据库名 character set ‘utf8’;-- 指定数据库的字符集
create database IF NOT EXISTS 数据库名 character set ‘utf8’; -- 判断数据库是否存在,部存在则创建,存在也不创建
显示mysql 字符集等
show variables like ‘character_%’;
切换数据库
use 数据库;
显示数据库中的数据表
show tables ; – 获取当前所处的数据库中的数据表
show tables from 数据库名;— 获取指定数据库中的数据表
显示mysql服务器有哪些数据库
show databases;
显示当前数据库的名称
select database();
修改数据库
alter database 数据库名 character set ‘字符集’ ;
删除数据库
删除指定数据库(若指定的数据库名,不存在,也报错)
drop database 数据库名;
删除指定数据库(IF EXISTS 若指定数据库存在,则删除,不存在,也啥也不操作)
drop database IF EXISTS 数据库名
删除数据表
删除表名(若指定表名,不存在,也报错)
drop table 表名; —删除当前处的数据库中的表
删除指定表(IF EXISTS 若指定表存在,则删除,不存在,也啥也不操作)
drop table IF EXISTS 表名
删除指定数据库中的表(IF EXISTS 若指定表存在,则删除,不存在,也啥也不操作)
drop table IF Exists 数据库名.表名
显示数据库定义信息
show cteate database 数据库名
show cteate database 数据库名 \g
show cteate database 数据库名 \G
显示表的定义信息
show create table 表
show create table 表\g
show create table 表\G
数据库重命名问题
一般可视化界面是允许重命名的,这底层的逻辑如下:
是新建数据库, 把所有表复制到新的数据库,再删除旧的数据库,这过程很浪费资源的。
创建表
create table IF NOT EXISTS 表名(
col INT,
name varchar(10)
)
基于现有的表创建表,同时会把数据带过来,相当于查询数据,创建一个表存放这些数据
create table 表名
as
select emp_id,emp_name
from employee;
创建指定存储引擎、字符串、排序
CREATE TABLE 表名(
列名1 数据类型(长度) CHARACTER SET 字符集名称 关键字,
列名2 数据类型(长度) CHARACTER SET 字符集名称 关键字,
列名3 数据类型(长度) CHARACTER SET 字符集名称 关键字,
…
)ENGINE = 存储引擎 CHARACTER SET 字符集名称 COLLATE 集合名称;
查看表结构
desc table 表名;
查看创建表的语句
show create table 表名;
表的修改
追加一列
alter table 表名
add [column] 字段名 字段类型 [FIRST | AFTER 表中现有的字段]
默认是追加到表的最后一列,可以通过 [FIRST | AFTER 表中现有的字段] 若只写First 就是追加到第一个列,
alter table zen.login
add login_datetime datetime default now() 追加一个login_datetime 列。默认值 系统时间
修改字段的 数据类型、长度 、默认值
alter table 表名
modify 字段 数据类型 default ‘xxx’
列的重命名
alter table 表名
change 原来的字段 新的字段 数据类型
删除字段
alter table 表名
drop column 字段
重命名表
方式1 sqlServer 中就是这种 sp_rename 系统存储过程
Rename table 表名
TO 新的表名方式2
alter table 表名
rename [TO] 新的表名
清除表
truncate table 表名 – 删除表的数据,表结构还在