# DDL操作表

select DATABASE();

# 使用db1
USE db1;

# 查看所有表
show tables ;

# 查看表结构
# DESC 表名

# 创建表  = 类
/*
    create table 表名 (
        字段名1 数据类型1,
        字段名2 数据类型2,
        字段名3 数据类型3,
        字段名4 数据类型4,

    )

    数据类型
        整形 int
        字符串  varchar(20) 20长度


    Person 类  name age
    创建 person表  字段 name age

 */
create table person (
                        id int,
                        name varchar(20),
                        age  int
);

# 查询
show tables ;

# 表结构 详细
Desc person;

# 数据类型
/*
 数值
    int 四个字节
    tinyint 小  一个字节
    bigint  大  八个字节
    double
        设置小数 double(总长度,小数点位数)
        double(5,2)  举例 100.34

 日期
    date        日期
    datetime    日期 + 时间
 字符串
    char  固定长度  char(10) 效率
            身份证  电话号码
    varchar 不固定长度  计算  效率低
            名字  介绍
 */

# 修该表  表名
-- alter table 表名旧 rename to 新名称;
alter table person rename to person01;

desc person01;
show tables;

# 添加一列
-- alter table 表名 add 列名称 数据类型;
alter table  person01 add password varchar(10);

# 修改数据类型类型
-- alter table 表名 modify 列名称 数据类型 新;
alter table person01 modify password varchar(50);

# 修改列名
-- alter table 表名 change 列名称  新名成  数据类型 ;
alter table person01 change password  pass  varchar(50) ;

desc person01;

# 删除列

-- alter table 表名 drop 列名称 ;
alter table person01 drop age;

desc person01;

# 删除表
drop table if exists person01;

show tables ;



# DML 数据操作

-- 添加  insert
-- insert into 表名称 (列名1,列名2,...) values ( 值1，值2，... );

create table studetn(
                        id int ,
                        username varchar(20),
                        password varchar(50),
                        age int,
                        address varchar(100),
                        score int ,
                        weight decimal(5,2)
);

show tables ;

alter table studetn rename to  student;

# 插入数据
-- insert into 表名称 (列名1,列名2,...) values ( 值1，值2，... );
insert into student (id,username,password) values ( 1,'zs','123456' );

# 查询数据
select * from student;

# 添加单个数据 值 和 列 对应
-- insert into 表名称  values ( 值1，值2，... );
insert into student values (2,'ls','123456',22,'北京',60,70.8);

# 添加多个数据 值 和 列 对应 用逗号分开 添加的值
insert into student values (3,'ls','123456',22,'北京',60,70.8)
                         ,(4,'ls','123456',22,'北京',60,70.8),(5,'ls','123456',22,'北京',60,70.8)
                         ,(6,'ls','123456',22,'北京',60,70.8),(7,'ls','123456',22,'北京',60,70.8);


# 修改操作
-- update 表名set 列1=值1, 列2=值2 ... WHERE 列名 = 值  ***必须加条件

-- 修改张三的地址和分数
update student set address = '哈尔滨' , score = 90 , weight = 200 where username = 'zs';

-- 修改所有
update student set address = '上海';

select * from student;


# 删除数据
# delete from 表名  where 条件

delete from student where score = 90;

select * from student;

# 不加条件 禁止
delete from student