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;

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysql-connector-j 是 MySQL 官方提供的 Java 连接器,用于在 Java 程序中连接 MySQL 数据库。它的文件结构如下: ``` mysql-connector-java-x.x.xx.jar ├── META-INF │ ├── MANIFEST.MF │ └── maven │ └── mysql │ └── mysql-connector-java │ ├── pom.properties │ └── pom.xml ├── com │ └── mysql │ ├── jdbc │ │ ├── Blob.class │ │ ├── CallableStatement.class │ │ ├── Clob.class │ │ ├── Connection.class │ │ ├── DatabaseMetaData.class │ │ ├── Date.class │ │ ├── Driver.class │ │ ├── DriverManager.class │ │ ├── ParameterMetaData.class │ │ ├── PreparedStatement.class │ │ ├── ResultSet.class │ │ ├── ResultSetMetaData.class │ │ ├── RowId.class │ │ ├── Savepoint.class │ │ ├── SQLClientInfoException.class │ │ ├── SQLException.class │ │ ├── SQLData.class │ │ ├── SQLInput.class │ │ ├── SQLOutput.class │ │ ├── SQLPermission.class │ │ ├── SQLWarning.class │ │ ├── SQLXML.class │ │ ├── Statement.class │ │ ├── Struct.class │ │ ├── Time.class │ │ ├── Timestamp.class │ │ └── Types.class │ ├── jdbc2 │ │ ├── optional │ │ │ ├── Blob.class │ │ │ ├── Clob.class │ │ │ ├── Connection.class │ │ │ ├── DatabaseMetaData.class │ │ │ ├── Date.class │ │ │ ├── ParameterMetaData.class │ │ │ ├── PreparedStatement.class │ │ │ ├── ResultSet.class │ │ │ ├── ResultSetMetaData.class │ │ │ ├── Statement.class │ │ │ ├── Time.class │ │ │ ├── Timestamp.class │ │ │ └── Types.class │ │ ├── optional │ │ │ ├── Blob.class │ │ │ ├── Clob.class │ │ │ ├── Connection.class │ │ │ ├── DatabaseMetaData.class │ │ │ ├── Date.class │ │ │ ├── ParameterMetaData.class │ │ │ ├── PreparedStatement.class │ │ │ ├── ResultSet.class │ │ │ ├── ResultSetMetaData.class │ │ │ ├── Statement.class │ │ │ ├── Time.class │ │ │ ├── Timestamp.class │ │ │ └── Types.class │ │ └── optional │ │ ├── Blob.class │ │ ├── Clob.class │ │ ├── Connection.class │ │ ├── DatabaseMetaData.class │ │ ├── Date.class │ │ ├── ParameterMetaData.class │ │ ├── PreparedStatement.class │ │ ├── ResultSet.class │ │ ├── ResultSetMetaData.class │ │ ├── Statement.class │ │ ├── Time.class │ │ ├── Timestamp.class │ │ └── Types.class │ └── statements │ ├── CallableStatement.class │ ├── PreparedStatement.class │ ├── Statement.class │ └── StatementImpl.class └── java └── time ├── Clock.class ├── Duration.class ├── Instant.class ├── LocalDate.class ├── LocalDateTime.class ├── LocalTime.class ├── Month.class ├── MonthDay.class ├── OffsetDateTime.class ├── OffsetTime.class ├── Period.class ├── Year.class ├── YearMonth.class ├── ZonedDateTime.class └── ZoneId.class ``` 其中,最重要的文件是 `mysql-connector-java-x.x.xx.jar`,这是一个 Java 归档文件,包含了连接 MySQL 所需的所有类和资源。在该文件中,`META-INF` 目录下是元数据信息,`com.mysql.jdbc` 是连接 MySQL 所需的核心类,`java.time` 是 Java 8 中的时间 API,用于与 MySQL 中的日期和时间数据交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值