1.DDL的解释:
DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容:
对数据库的常用操作
对表结构的常用操作
修改表结构
2.数据库的常用操作
-- 1、DDL操作之数据库操作
-- 查看所有数据库
show databases;
SHOW DATABASES;
-- 创建数据库
create database mydb1;
create database if not exists mydb1;
-- 选择哪一个数据库
use mydb1;
-- 删除数据库
drop database mydb1;
drop database if exists mydb1;
-- 修改数据库编码
alter database mydb1 character set utf8;
对表结构的常用操作——创建表
创建表的格式 :
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。
-- 创建数据库
create database mydb1;
-- 1.使用数据库
use mydb1;
-- 2.创建表
create table if not exists student(
sid int,
name varchar(20),
gender varchar(10),
age int,
birth date,
address varchar(20),
score double
);
数据类型 :
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
(1)数值类型
decimal(5,2):“5”的含义是数值长度为5;“2”的含义是小数点后有两位。
(2)字符串类型
(3)日期类型
类型 | 大小( bytes) | 范围 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
对表结构常用操作——其他操作
-- 3.查看当前数据库的所有表名称
show tables;
-- 4.查看指定某个表的创建语句
show create table student;
-- 5.查看表的结构
desc student;
-- 6.删除表
drop table student;
对表结构的常用操作——修改表结构格式
(1)修改表添加列
-- 1.添加列:alter table 表名 add 列名 类型(长度)[约束]
-- #为student表添加一个新的字段名为:系别 dep 类型为 varchar(20)
alter table student add dept varchar(20);
(2)修改列名和类型
-- 2.修改列名和类型:alter table 表名 change 旧列名 新列明 类型(长度)[约束]
-- 为student表的dept字段更换为department varchar(30)
alter table student change dept department varchar(30);
(3)修改表删除列
-- 3.修改表删除列:alter table 表名 drop 列名
-- 删除student表中的department;
alter table student drop department;
(4)修改表名
-- 4.修改表名:rename table 表名 to 新表名
-- 将student表的名字改为stu
rename table student to stu;