DDL:操作数据库、表:
3.1:操作数据库:CRUD
1.C(Create):创建
- 创建数据库:
* create database 数据库名称;
- 创建数据库,判断不存在,再创建(**在开发中建议使用这种:**):
* create database if not exists 数据库名称;
- 创建数据库,并指定字符集:
* create database 数据库名称 character set 字符集名称;
- 练习:创建D1数据库,判断是否存在,并指定字符集为gbk
*create database if not exists D1 character set gbk;
创建数据库和表使用的关键字是:create
2.R(Retrieve):查询
- 查询所有数据库的名称:
* show databases;
- 查询某一个数据库的字符集:查询某个数据库的创建语句:
* show create database 数据库名称;
查询数据库和表中数据库个数和表个数使用关键字是;show
3.U(Update):修改
- 修改数据库的字符集:
* alter database 数据库名称 character set 字符集名称;
4.D(Delete):删除
- 删除数据库:
* drop database 数据库名称
- 判断数据库存在,存在再删除**(在开发中建议使用这种方式)**:
* drop database if exists 数据库名称
5.使用数据库:
- 查询当前正在使用数据库名称:
* select database();**(注意的是一定不能漏掉())**
- 使用数据库:
* use 数据库名称;
3.2:操作表CRUD:
1.C(Create):创建
- **语法:**
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
列名3 数据类型3,
...
列名n 数据类型n
);
**注意的是:**
**最后一列,不需要加逗号(“,”)**
复制表:
- create table 表名 like 被复制的表名;
**数据库数据类型:**
1.int:数据类型
如:age int,
2.double: 数据类型
如:score double(5,2), 注意的是:总共5位,2位是小数
3.date:日期, 只包含年月日, yyyy-MM-dd
4.datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
5.timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
注意是:如果将来不给这个值赋值或赋值为null,则默认使用当前的系统时间,来自动赋值。
6.varchar:字符串
如:name varchar(20), 注意是:姓名最大20个字符
**练习:创建一个表:**
**create table student(**
**id int,**
**name varchar(32),****
**age int,**
**score double(5,2),**
**birthday date,**
**insert_time timestamp**
**);**
create table student2(
id int,
insert timestamp
);
2.R(Retrieve):查询
- 查询某个数据库中所有的表名称:
* show tables;
- 查询表结构:
* desc 表名;
3.U(Update):修改
1.修改表名
alter table 表名 rename to 新的表名;
2.修改表的字符集
alter table 表名 character set 字符集名称;
3.添加一列
alter table 表名 add 列名 数据类型;
4.修改列名称 类型
alter table 表名 change 列名 新列名 新数据类型;(在开发中建议使用这种)
alter table 表名 modify 列名 新列名;
5.删除列
alter table 表名 drop 列名;
修改数据库的字符集和修改表名,字符集,添加一列,修改列名称类型,删除列使用的关键字是alter;并且在删除一列时还需要使用drop关键字
4.D(Delete):删除
- drop table 表名;
- drop table if exists 表名;(在开发中建议使用这种)
删除数据库和表及表中的列使用关键字是:drop
数据库的操作:
show databases;//查询所有数据库
alter database zs character set gbk;//修改数据库eeje的字符集为gbk
show create database zs;//查询数据库eeje的相关信息
create database if not exists di character set gbk;//创建di数据库并指明码表值
show create database di;//查询某一个数据库的字符集:查询某个数据库的创建语句
drop database di;//删除数据库di
drop database if exists di;//如何存在数据库di就删除,不存在就不删除
select database();//查询当前正在使用数据库名称
use 数据库名;//使用数据库eeje
表的操作:
创建表:
create table zs(
-> id int,
-> name_1 varchar(32),
-> score double(5,2),
-> birthday date,
-> insert_time timestamp
-> );//创建一个表eeje520
create table zs like li;//create table 表名 like 被复制的表名;
查询表:
show tables;//查询所有的表
desc zs;//查询表结构
修改表:
alter table zs rename to li;//修改表名:
alter table 表名 rename to 新的表名;
alter table zs character set gbk;//修改表的字符集:
alter table 表名 character set 字符集名称;
alter table zs add age int;//添加一列:alter table 表名 add 列名 数据类型
alter table zs change age age1 int;//修改表名:alter table 表名 change 列名 新列名 新数据类型;(在开发中建议使用这种)
alter table zs drop age1;//删除列表:alter table 表名 drop 列名;
删除表:
drop table if exists 表名;