mysql笔记

 

常用命令

show create database demo-- 查询创建数据库的语句
show create table students-- 查看表的代码
desc students-- 查看表的结构
create table `表名`--创建表名

1. 修改和删除

修改

--students是旧表名teacher是新表名
ALTER table students RENAME AS teacher
--增加表的字段
ALTER TABLE teacher ADD ip int(11)
--修改表的字段
ALTER TABLE teacher MODIFY age VARCHAR(11)--修改约束
alter table teacher change age age1 int(10)--修改字段名字
--删除表的字段
alter table teacher drop age1

删除

drop table if exists studens--如果表存在就删除。

2. MySQL的数据管理

2.1. DML语言:数据操作语言

  • inset

  • updat

  • delete

2.2.添加

insert into `teacher`(`name`) values ('小李子')
insert into 表名(字段) values('小李子')

2.3.修改

UPDATE `teacher` SET `name`='efafe' WHERE id=1--修改名字

where子句的运算符,返回boolean

操作符含义范围结果
= 等于 5=6 false
<>或!= 不等于 5<> true
>      
<      
<=      
between...and... 在某个范围内 [2.5]  
and 我和你&&    
or 我或着你||·    

2.4.删除

delete命令

语法:delete from 表名 where 条件

delete from `teacher` WHERE id=3

truncate命令

作用:完全清空一个数据库表,表的索引约束不变

truncate `teacher`

delete和truncate的区别

  • 相同点:都能删除数据,都不会删除表结构

  • 不同:

    • truncate重新设置自增会归零

    • 不会影响事物

3.DQL查询数据(重点)

4.1,DQL

  • 所有的查询语句都用select

  • 使用频率最高

4.2指定查询字段

--查询全部的学生   select 字段 from 表
select * from teacher
select `name` as 名字,`sex` as 姓名 from teacher as student--查询指定的字段
--函数concat(a,b)
select concat('姓名:',name) as 新名字 from teachre

起别名用or

去重distinct

作用:去除select查询的结果重复的数据,只显示一条

select `name` from teacher 
select distinct `name` from teacher--去重

数据库的列

select version()--查询当前的版本(函数)
select 100*3-1 as 计算结果--计算表达式
select @@auto_increment_increment--查询自增的步长
select `id`+1 from teacher

where语句

SELECT id,`name`FROM teacher
WHERE id>6 and id<10-
运算符  
and && a and b a&&b 逻辑与
or || a or b a||b 逻辑或
Not ! not a !a 逻辑

模糊查询:比较运算符

运算符语法描述
is null a is nulla 如果操作符为null,结果为真
is not null a is not nulla 如果操作符为not null,结果为真
between a between b and c 如果a在b和c之间,结果为真
link a link b SQL匹配,如果a匹配到了b,结果为真
in a in(a1,a2,a3) 假设a等于a1,a2....,结果为真
%表示一个字符串,_(一个字符)
select `name` from teacher
select  `name` like '刘%'
select `name` from teacher
select  `name` like '刘_'
select `name` from teacher
select  `name` like '%刘%'
select `name` from teacher
select  `name` int('张三','李四')
select `name` ,sex FROM teacher--查新为空的字段
WHERE sex IS NULL

4.2连表查询

join 对比

cb412cf6f6a669a2db1cd2c8d47fb532

 

image-20210913174453819

image-20210913174533635

image-20210913174634906

4.3自连接

 

image-20210918090503986

4.4分页和排序查询

image-20210918093117436

排序

image-20210918093237376

排序

image-20210918094334695

LIMIT 6,5 --从第六页开始往后面数5个数

5.索引

image-20210922092532584

image-20210922092605116

规范数据库设计

image-20210922174925345

数据库的三大范式

image-20210922175804806

6.idea连接数据库

package com.cqyti.stx.jadbc;

import java.sql.*;

public class FirstDemo {
   public static void main(String[] args) throws ClassNotFoundException, SQLException {
       //加载驱动
       Class.forName("com.mysql.cj.jdbc.Driver");
       //用户信息和url
       //?useUnicode=true&characterEncoding=utf8&useSSL=true
       String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=true";
       String username = "root";
       String password = "123456";
       //连接成功,数据库对象,Connection 代表数据库
       Connection connection = DriverManager.getConnection(url, username, password);
       //执行SQL对象,Statement执行sql对象
       Statement statement = connection.createStatement();

       String sql = "SELECT * FROM teacher";
       //返回结果集,结果集中封装我们查询的全部结果。
       ResultSet resultSet = statement.executeQuery(sql);
       while (resultSet.next()) {
           System.out.println("id" + resultSet.getObject("id"));
           System.out.println("name" + resultSet.getObject("name"));
           System.out.println("sex" + resultSet.getObject("sex"));
           System.out.println("ip" + resultSet.getObject("ip"));
      }
       //释放连接
       resultSet.close();
       statement.close();
       connection.close();
  }
}

image-20210923094134734

 

posted @ 2021-09-25 18:31  G5小聪  阅读(298)  评论(0)    收藏  举报