数据库 -MySQL- 基础(2)-DDL 操作

本篇文章参考黑马程序员数据库基础篇的 DDL 操作,希望可以对你的数据库学习有所帮助
一、DDL-数据库操作
查询所有数据库
SHOW DATABASES;


查询当前数据库
SELECT DATABASE();
假如执行了很多数据库操作,不知道在当前是哪个数据库可以使用,这个操作


创建
CREATE DATEBASE[IF NOT EXISTS] 数据库名[DEFAULT CHARSET 字符集]
[COLLATE 排序规则];


出现 Query OK 即可
如果再次输入 create database itcast; 会创建失败


如果想数据库已经存在则不创建,不存在则创建可以使用
create database if not exists itcast;
设置字符集
utf8 : 存储三个字节
utf8mb4 : 存储四个字节
create database itheima default charset utf8mb4;


删除
DROP DATABASE[ IF EXISTS] 数据库名;


如果删除不存在的数据库就会报错,如果不想报错,可以使用:
drop database if exists test;
使用
USE 数据库名


二、 DDL -表操作-查询
查询当前数据库所有表
SHOW TABLES;


查询表结构
DESC 表名;


查询指定表的建表语句
SHOW CREATE TABLSE 表名;


三、 DDL -表操作-创建
创建:
CREATE TABLE 表名(
字段 1 字段 1 类型[ COMMENT 字段 1 注释],
字段 2 字段 2 类型[ COMMENT 字段 2 注释],
字段 3 字段 3 类型[ COMMENT 字段 3 注释],
.......
字段 n 字段 n 类型[ COMMENT 字段 n 注释],
)[COMMENT 表注释];
注意:最后一个字段不要逗号


四、DDL 数据类型和案例
1、数值类型


案例
如果想表示年龄可以用 (无符号):
age TINYINT UNSIGNED
表示学生分数可以用:
score double(4,1) /* 表示长度为四个单位,小数的长度为一个单位*/
2、字符串类型


带 blob 的是描述二进制数据的,带 text 的是描述文本数据的
char:
需要跟上参数,表示最长存储的字符长度,如 char(10),定长字符即使你使用一个字符,也会存储
存储十个字符的空间,未占用的空间会用空格进行补位,性能高。
如:性别 gender char[1]
varchar:
也要跟上参数如 varchar(10),变长字符串,假如只存储一个字符,就只占用一个字符的空间,相对于 char 性能较低。
3、日期类型


date 和 datetime 往往用的更多
如: birthday date;
4、案例
根据需求创建表(设计合理数据类型,长度)
设计一张员工信息表,要求如下:1.编号(纯数字)2.员工工号 (字符串类型,长度不超过 10 位)3.员工姓名(字符串类型,长度不超过 10 位)4.性别(男/女,存储- -个汉字)5. 年龄(正常人年龄,不可能存储负数)6. 身份证号(二代身份证号均为 18 位,身份证中有 X 这样的字符)
7.入职时间(取值年月日即可)
create table emp(
id int comment ' 编号',
workno varchar(10) comment ' 工号 ',
name varchar(10) comment ' 姓名',
gender char(1) comment '性别',
age tinyint unsigned comment ' 年龄',
idcard char(18) comment '身份证号',
entrydate datetime comment '入职时间'
)comment '员工表';


输入 desc emp;


编辑
五、DDL- 表操作-修改
添加字段
ALTEER TABLE 字段 ADD 字段名 类型(长度) [COMMENT 注释] [约束]
为 emp 增加一个新的字段"昵称"为 nickname ,类型为 varchar(10)
alter table emp add nickname varchar(20) comment '昵称';


修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
案例:将 emp 表中的 nickname 改为 username ,类型为 varchar(30)
alter table emp change nickname username varchar(30) comment '用户名';


编辑
删除字段
ALTER TABLE 表名 DROP 字段名
案例:在 emp 表中删除 username 字段
alter table emp drop username;


编辑
修改表名
ALTET TABLE 表名 RENAME TO 新表名
案例:将 emp 表修改为 employee
alter table emp rename employee;


编辑
六、DDL-表操作-删除
删除表
DROP TABLE[IF EXISTS] 表名


编辑
删除指定表,并重新创建该表
TRUNCATE TABLE 表名
可以帮助我们清空表中的数据


编辑
版权声明: 本文为 InfoQ 作者【Geek_a7ae15】的原创文章。
原文链接:【http://xie.infoq.cn/article/4000cb6d0badc8231630fade3】。文章转载请联系作者。
评论