MySQL学习笔记

2020-07-08  本文已影响0人  又差一点

MySQL学习笔记

一、SQL语句
二、数据库的CRUD操作
创建数据库
create database 数据库的名字
--创建数据库的时候指定字符集
create database 数据库的名字 character set 字符集
create database 数据库的名字 character set 字符集 collate 校对规则; 
查看数据库
--查看数据库定义的语句
show create database 数据库的名字;

--查看所有数据库
show databases;
修改数据库的操作
--修改数据库的字符集
alter database 数据库的名字 character set 字符集
删除数据库
drop database 数据库名字
其他数据库操作命令
--切换数据库(选中数据库)
use 数据库
--查看当前正在使用的数据库
三、表的CRUD操作
创建表
create table 表名(
    列名 列的类型(长度) 约束,
    列名2 列的类型(长度) 约束,
);

列的类型
java            sql
int             int
char/String     char/varchar
                char:固定长度
                varchar:可变长度
double          double
float           float
boolean         boolean
date            date:YYYY-MM-DD
                time:hh:mm:ss
                datetime:YYYY-MM-DD hh:mm:ss  默认值是null
                timestamp:YYYY-MM-DD hh:mm:ss 默认使用当前时间
                text:主要是用来存放文本你
                blob:存放的是二进制

列的约束:
    主键约束:primary key
    唯一约束:unique
    非空约束:not null
        自动增加:auto_increment
查看表
--查看所有表
show tables;
--查看表的创建过程
show create table 表名;
--查看表结构
desc 表名;
修改表(alter)

添加列(add)修改列(modify)修改列名(change)删除列(drop)修改表名(rename)修改表的字符集

--添加列(add)
alter table 表名 add 列名 列的类型(长度) 列的约束;
--修改列
alter table 表名 modify 列名 列的类型(长度) 列的约束;
--修改列名
alter table 表名 change column 列名 修改的列名;
--删除列
alter table 表名 drop 列名
--修改表名
rename table 原表名 to 新表名
--修改字符集
alter table 表名 character set 字符集;
删除表
drop table 表名;

SQL完成对表中数据的CRUD操作
插入数据
insert into 表名(列名....) values(值.....)
--如果插入是全列名的数据,表名后面的列名可以省略
--如果是插入部份列的话,列名不可省略 


命令行下中文我问题:insert into student values(11,"李四",1,24)
删除记录
delete from 表名 [where 条件];
--如果没有指定条件,会将表中数据一条一条全部删除

--面试题:请问delete删除数据和truncate删除数据有什么差别
delete:DML语句 一条一条删除表中的数据
truncate:DDL语句 先删除表在重建表
关于哪条执行效率高:具体要看表中的数据量
    如果数据量比较少,delete效率比较高
    如果数据量比较多,truncate效率比较高

更新表记录
update 表名 set 列名=列的值,列名2=列的值2 [where 条件]

查询记录
select [distinct]{ * } [列名...] from 表名 [where 条件]
distinct:去除重复的数据
--别名查询 as的关键字,as关键字是可以省略
    --表别名:select p.name,p,price from product as p;(主要是用在多表查询);
    --列别名:select pname as 商品名称,price as 商品加个 from product;
    
--去掉重复的值
    --查询商品所有的价格
    select price from product;
    select distinct price from product;

--select运算查询:仅仅在查询结果上做了运算+-*/
    select *,price*1.5 from product;
    select *,price*1.5 as discount from product;

--条件查询[where关键字]
    指定条件,确定要操作的记录
    --关系运算符: > >= < <= = != <>
    <>:不等于:标准SQL语法
    !=:不等于:非标准SQL语法
    
    --沙逊商品价格在10到100之间
    select * from product where price>10 and price<100;
    select * from product where between 10 and 100;
    
    --逻辑运算符:and,or,not
    
    --模糊查询 like
        _:代表的是一个字符
        %:代表的是多个字符
        
    --in在某个范围中获得值
    
--排序查询:order by 关键字
    asc:ascend 升序
    desc:descend 降序

--聚合函数:
    sum():求和
    avg():求平均值
    count():统计数量
    max():最大值
    min():最小值
    --where后面不能使用聚合函数 可以使用子查询实现

--分组:group by
    --having关键字可以接聚合函数,出现在分组之后
    
--编写顺序
    -- S..F..W..G..H..O
    select .. from .. where .. group by .. having .. order by

--执行顺序
    F..W..G..H..S..O
    from .. where .. group by .. having .. select .. order by

上一篇 下一篇

猜你喜欢

热点阅读