Bootstrap

mysql-day01

SQL-DDL

-- 注释的方式:两个减号或者一个#号

--   这对于库的DDL

-- 创建库 
create database db_youcai;
create database db_youcai02 character set utf8;
-- 使用库,切换库
use db_youcai;
-- 查询正在使用的库
select database();
-- 查询都有哪些库
show databases;
-- 查看建库时的底层语句
show create database db_youcai;
show create database db_youcai02;
-- 修改库的字符集
alter database db_youcai CHARACTER set GBK;
rename database db_youcai to db_youcai01;
-- 删除库
drop database db_youcai02;





--     针对于表的DDL操作   注意[]里的内容表示可有可无

-- 创建表结构
-- create table tableName(
--    column1 type1[comment'备注内容'],
--    column2 type2[default'默认值'],
-- ....
-- )[ENGINE = 表存储引擎][default character set utf8];
-- 
create table student1(
studentid int,
studentname varchar(10) comment'学生名称',
studentage int,
studentgender char(1),
studentsalary float(4,2)
)default character set utf8;


-- 查看表结构
desc tableName;
desc student1;


-- 查看建表时的底层语句
show create table student1;

-- 查看所有表名
show tables;


--  修改表结构
#给一张表添加一个字段
alter table tableName add columnName type;
-- 练习:student1添加字段classno 学生班级名称 varchar(10)
alter table student1 add  classno varchar(10);

#修改一张表的字段类型
alter table tableName modify columnName newType;
-- 练习:工资那个字段改成double(6,2)
alter table student1 modify syudentsalary double(6,2);

#修改一张表的字段名,注意可以同时修改类型
alter table tableName:change oldName newName newType
-- 练习: 将studentgender改为gender
alter table student1 change stundentgender gender char(1);

#修改一张表的字符集
alter table tableName character set charsetName;
-- 练习: 将字符串改为GBK
alter table student1 character set GBK;

#删除一张表中的字段
alter table tableName drop column;
-- 练习: 删除年龄字段
alter table student1 drop studentage;
desc student1;

-- 删除表结构
drop table tableName;
-- 练习:
drop table student1;


SQL-DML

-- DML语言的学习

-- 1 增加数据

use db_youcai;

create table teacher(
id int,
name varchar(10),
age int,
gender char(1),
salary double(6,2),
subject varchar(10),
hiredate date
)default character set utf8;


insert into teacher values
    (1001, '张一', 23, '男', 2000, '语文', '2010-03-03'),
    (1002, '张二', 23, '女', 2000, '数学', '2010-03-04'),
    (1003, '张三', 23, '女', 2000, '英语', '2010-03-05'),
    (1004, '张四', 23, '男', 2000, '生物', '2010-03-06');



-- 2.  修改数据:
-- 语法格式:
-- update tableName  set  colName1 = value1, colName2 = value2,...... [where conditions];
-- 注意: 没有where条件,会修改整张表所有记录对应的字段值


-- 练习:
-- 1. 修改所有人的工资为2500
   update teacher set salary = 2500;
-- 2. 将所有人的工资增加500
   update teacher set salary=salary+500;
-- 3. 修改年龄为23岁的教师的工资为5000,入职日期为'2010-10-10'
   update teacher set salary = 5000,hiredate = '2010-10-10' where age = 23;
-- 4. 修改名字为张三的教师的入职日期为空,工资为空
   update teacher set hiredate = null, salary = null where name = '张三';
-- 5. 将在'2010-10-10'之前入职的员工工资上调1000元
   update teacher set salary = salary+1000 where hiredate < '2010-10-10';
-- 6. 将教语文、英语、生物的老师的年龄改为null
   update teacher set age = null where subject = '语文' or subject = '英语' or subject = '生物';
   update teacher set age = null where subject in ('语文','英语','生物');
-- 7. 将没有课的老师工资下调1000元。
   update teacher set salary = salary -1000 where subject is null;




-- 3. 删除数据
-- 关键字delete 指的是删除表中的符合条件的所有记录(行数据)
-- 如果开启了事务,删除数据后,只要没有提交,就可以回滚。

-- 注意: 如果不指定条件,表中的所有行都被删除了。
-- 语法:delete from tableName [where conditions];

-- 1. 删除工资是4000,年龄不是null的教师信息
delete from teacher where salary = 4000 and age is not null;

-- 2. 删除剩下的所有记录
delete from teacher;

-- 3. 使用truncate关键字清空表数据  :  原理,删除表结构,然后重建表结构, 数据不能回滚
truncate table teacher;

;