數據庫








創建數據庫

create database db01;





DDL


默認:default charset utf8mb4;




create TABLE user(
    id int primary key auto_increment comment 'ID,唯一標識',-- 主鍵約束
    username varchar(50) not null unique comment '用户名',-- 非空切唯一
    name varchar(10) not null comment'姓名',-- 非空
    age int comment '年齡',
    gender char(1) default '男' comment '性別'
)comment '這是一張用户信息表';




-- 案例:設計員工表 emp
-- 基礎字段:id 主鍵;create_time:創建時間;update_time:修改時間;
create TABLE emp(
    id int unsigned primary key auto_increment comment 'ID:主鍵',
    username varchar(20) not null unique comment '用户名',
    password varchar(32) default '123456' comment '密碼',
    name varchar(10) not null comment '姓名',
    gender tinyint unsigned not null comment '性別 1:男 2:女',
    phone char(11) unique not null comment '手機號',
    job tinyint unsigned comment '職位 1:班主任 2:講師 3:學工主管 4:教研主管 5:諮詢師',
    salary int unsigned comment '薪資',
    entry_date date comment '入職日期',
    image varchar(255) comment '圖像',
    create_time datetime comment '創建時間',
    update_time datetime comment '修改時間'
)comment '員工表';


-- 查詢當前數據庫的所有表
show tables ;

-- 查看錶結構
desc emp;

-- 查詢建表語句
show create table emp;

-- 字段:添加字段
alter table emp add qq varchar(13) comment 'QQ號碼';

-- 字段:修改字段類型
alter table emp modify qq varchar(15) comment 'QQ號碼';

-- 字段:修改字段名
alter table emp change qq qq_number varchar(15) comment 'QQ號碼';

-- 字段:刪除字段
alter table emp drop column qq_number;

-- 修改表名
alter table emp rename to employee;

-- 刪除表
drop table employee;




-- DML : 數據操作語言
-- DML : 插入數據 - insert
-- 1. 為 emp 表的 username, password, name, gender, phone 字段插入值
insert into emp(username,password,name,gender,phone) values ('songjiang','12345678','宋江',1,'13300001111');

insert into emp(username,password,name,gender,phone) values ("songjiang2",'12345678','宋江2',1,'13300001116');

-- 2. 為 emp 表的 所有字段插入值
-- 方式1:
    insert into emp(id, username, password, name, gender, phone, job, salary, entry_date, image, create_time, update_time)
    values (null,'linchong','12345678','林沖',1,'13300001112',1,6000,'2020-01-01','1.jpg',now(),now());
-- 方式2:
    insert into emp values (null,'likui','12345678','李逵',1,'13300001113',1,6000,'2020-01-01','1.jpg',now(),now());

-- 3. 批量為 emp 表的 username, password, name, gender, phone  字段插入數據
    insert into emp(username,password,name,gender,phone) values
('ruanxiaoer','12345678','阮小二',1,'13300001114'),('ruanxiaowu','12345678','阮小五',1,'13300001115');


-- DML : 更新數據 - update
-- 1. 將 emp 表的ID為1員工 用户名更新為 'zhangsan', 姓名name字段更新為 '張三'
update emp set username = 'zhangsan',name = '張三' where id = 1;

-- 2. 將 emp 表的所有員工的入職日期更新為 '2010-01-01'
update emp set entry_date = '2010-01-01'



-- DML : 刪除數據 - delete
-- 1. 刪除 emp 表中 ID為1的員工
delete from emp where id = 1;

-- 2. 刪除 emp 表中的所有員工
delete from emp ;




--  =================== DQL: 基本查詢 ======================
-- 1. 查詢指定字段 name,entry_date 並返回
    select name,emp.entry_date from emp;

-- 2. 查詢返回所有字段
-- 方式1:推薦
    select id, username, password, name, gender, phone, job, salary, entry_date, image, create_time, update_time from emp;

-- 方式2:不推薦
    select * from emp;


-- 3. 查詢所有員工的 name,entry_date, 並起別名(姓名、入職日期)
    select name as '姓 名',entry_date as 入職日期 from emp;

    select name  '姓 名',entry_date  入職日期 from emp;


-- 4. 查詢已有的員工關聯了哪幾種職位(不要重複) -distinct
select distinct job from emp;