首页 > 数据库 >mysql-day01

mysql-day01

时间:2024-08-28 18:55:49浏览次数:14  
标签:10 set -- day01 alter mysql table teacher

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;

标签:10,set,--,day01,alter,mysql,table,teacher
From: https://blog.csdn.net/m0_64370841/article/details/141647540

相关文章

  • MySQL表分区与分表:概念、规则及应用案例
    MySQL表分区与分表:概念、规则及应用案例在大型业务系统中,随着数据量的急剧增加,优化数据库性能成为关键任务。MySQL提供了两种有效的数据管理技术来应对这些挑战:表分区(Partitioning)和分表(Sharding)。本文将深入探讨表分区和分表的概念、优缺点、具体规则以及适用场景,并通过电......
  • MySQL字符集和排序规则详解
    前言MySQL中,字符集和排序规则在处理文本数据时起着至关重要的作用,本文将详细介绍MySQL中的字符集和排序规则。简介字符集(CharacterSet):字符集定义了数据库中可以存储的字符的集合。在MySQL中,常见的字符集包括utf8、utf8mb4、latin1等。utf8mb4字符集是用于在MySQL中存......
  • 【爬虫实战】——利用bs4和sqlalchemy操作mysql数据库,实现网站多行数据表格爬取数据
    前言此篇接上一篇的内容,在其基础上爬取网站的多行表格数据,以及把数据写入到mysql数据库中目录一、定位表格查找元素二、提取数据三、写入mysql数据库四、附录一、定位表格查找元素首先打开网站,如图需要爬取多行数据的表格,利用查找元素定位,看图中分析得知我要爬取的是tr......
  • 外贸管理系统采购销售报关计算机毕业设计VUE/PYTHON/MYSQL
    开发一个基于Vue、Python和MySQL的外贸管理系统,用于处理采购、销售以及报关等业务流程。这样的系统通常涉及前端界面展示、后端逻辑处理以及数据库存储等多个部分。下面是一些关键组件的设计建议:1.技术栈选择前端:Vue.js后端:Python(Flask/Django)数据库:MySQL2.系统......
  • 【MySQL数据库管理问答题】第9章 优化查询性能
    目录1.请说明EXPLAIN语句的作用。2.为什么使用索引会比全表扫描可以提供更好的查询性能?3.MySQL数据库是如何自动维护索引统计信息的。4.mysqlcheck客户机程序都有哪些功能?5.在性能分析期间使用InvisibleIndexes有什么好处?6.什么是直方图(histograms),它在使用......
  • 【MySQL数据库管理问答题】第10章 选择备份策略
    目录1.请详细说明热备、温备和冷备的特点和不同。2.在MySQL中支持的备份类型有哪几种,分别予以说明。3.执行逻辑备份要具备哪些条件,其优缺点在哪。4.物理备份一般是用来满足什么样的数据库维护需求?5.基于快照的备份能否用来进行数据库损坏时的恢复,请说明理由。6.......
  • 【MySQL数据库管理问答题】第8章 维护稳定的系统
    目录1.请说明一个稳定的系统的具体含义。2.在确定数据库失败原因时,都要考虑哪些方面的因素?3.如何查看InnoDB表所占用的实际存储空间大小?4.谈谈对数据库进行纵向扩展和横向扩展的适用场合。5.说出在判断一个数据库性能问题时的一般性思路或步骤。6.请对InnoDB......
  • 【阅己书城】docker部署MySQL及Redis
    一、MySQL1拉取mysql镜像dockerpullmysql:5.72启动mysql容器--name指定容器名字-v目录挂载-p指定端口映射-e设置mysql参数-d后台运行dockerrun--namemysql-v/mydata/mysql/data:/var/lib/mysql-v/mydata/mysql/conf:/etc/mysql-v/mydata/mysql/log:/var/......
  • MySQL写操作所加的锁
    写操作所加的锁:DELETE:对一条记录做DELETE操作的过程其实是先在B+树中定位到这条记录的位置,然后获取这条记录的X锁,然后再执行deletemark操作。UPDATE:①如果未修改该记录的键值并且被更新的列占用的存储空间在修改前后未发生变化,则先在B+树中定位到这条记录的位置,然后再获......
  • MySQL:简述对索引的认识
    一、为什么要有索引?一般的应用系统,读操作的比例远远大于写操作的比例,而且插入操作和一般的更新操作很少出现性能问题。在生产环境中,我们遇到最多的,也是最容易出现性能问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起查询优化,就不得不提到索引了。......