DDL:操作数据库 表 数据
1、操作数据库:CRUD
-
C(create):创建
- create database db1;
- create database if not exists db2 ;
- craete database db3 character set gdk;(改变默认字符集utf8至gdk)
- craete database if not exists db4 character set gdk;
-
R(Retrieve):查询
- 查询所有数据库的名称
- 查询某个数据库的字符集,查询某个数据库的创建语句(就是上面四个数据库的名称):
show create database mysql(数据库名称);
-
U(update):修改
- 修改数据库字符集
alter database name character set 字符集名称;
-
D(Delete):删除
- drop database name;
- drop database if exists name;
-
使用数据库
- 查询当前正在使用的数据库名称
select database();
- 使用数据库
use 数据库名称;(执行后Databases changed)
2、操作表
对某个数据库的表操作,用之前要先use这个数据库。
-
C(create):创建
- 语法:
create table name( 列名1 数据类型1, 列名2 数据类型2, .... 列名n 数据类型n ); # 最后一列没有逗号
- 数据库类型
1)int:整数类型
age int,
2)double:小数类型
score double(5,2)
3)date:日期,只包含年月日,yyyy -MM -dd
4)da、tetime:日期,包含年月日时分秒 yyyy -MM -dd HH:mm:ss
5)timetamp:时间戳类型 包含年月日时分秒 yyyy -MM -dd HH:mm:ss(区别:如果将来不给这个字段赋值,或者赋值为null,那么就自动赋值系统默认的当前时间。)
6)varchar:字符串类型name varchar(20):姓名最大20个字符
zhangsan:8个字符 | 张三:2个字符
有个表格扣下来就行
- 复制表
create table 表名 like 被复制的表名
create table student(
id int,
name varchar(32), //名字32位
age int, //年龄整数
score double(4,1), //整数4位,小数1位
birthday date, //日期
insert_time timestamp //时间戳,用来添加时间,比如添加学生信息的时间。
);
#后面的数字代表的是字符串的长度
-
R(Retrieve):查询
- 查询某个数据库中所有表的名称
show tables;
- 查询表结构
desc 表名;//description的意思,表结构会显示出来。
-
U(update):修改
- 修改表名
alter table 表名 rename to 新表名;
- 修改表字符集
#查看表的字符集 show create create table 表名; #修改 alter table 表名 character set 字符集;
- 修改列(添加列,名称,类型)
#添加列 alter table 表名 add 列名 数据类型; #修改列名称,数据类型 alter table 表名 change 列名 新列名 新数据类型; alter table 表名 modify 列名 新数据类型;
- 删除列
alter 表名 drop 列名;
-
D(Delete):删除
- drop table 表名;
- drop table if exists 表名;
- 删除列
alter 表名 drop 列名;