MySQL笔记

1.登录MySql命令

mysql -h 主机名 –u 用户名 –p 密码

-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

2.开启服务和关闭服务
方式1: 我的电脑-----> (右键)管理---->服务和应用程序---->服务----找到MySQL服务右键启动或关闭(cmd输入services.msc)
方式2: 管理员方式打开cmd,使用命令: net start mysql80 开启MySQL服务;  使用命令:net stop mysql80 关闭MySQL服务

3.数据库语言类型

* 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 
* 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
* 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
* 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

4.变量类型

类型:int,double,date,VARCHAR(M),M为0~65535之间的整数,TEXT,允许长度0~65535字节 

5.语法

创建数据库:

  • create database 数据库名; 
  • create database 数据库名 character set 字符集;(utf8,gbk)
  • 查看所有数据库:show databases;
  • 查看数据库结构:show create database 数据库名;
  • 查看正在使用的数据库:select database(); 
  • 切换数据库:use 数据库名;
  • 删除数据库:drop database 数据库名称;
  • 创建数据表:create table 表名(字段名 类型(长度) 约束,字段名 类型(长度) 约束);
  • CREAT TABLE users (
        uid INT primary key,
        uname VARCHAR(20),
        uaddress VARCHAR(200)
        # primary key(uid)
    );
  • create table sort(sid INT primary key auto_increment, sname VARCHAR(100));
  • 增加主键:alter table 表名 add primary key (column_name);
  • 删除主键:alter table 表名 drop primary key; 

约束的类型:

主键约束:PRIMARY KEY  非空,唯一
非空约束:NOT NULL
唯一约束:UNIQUE
外键约束:FOREIGN

  • 查看数据库的所有表:show tables;
  • 查看表结构:desc 表名;
  • 删除表:drop table 表名;
  • 修改表添加列:alter table 表名 add 列名 类型(长度) 约束;
  • 修改表修改列的类型长度及约束:alter table 表名 modify 列名 类型(长度) 约束; 
  • 修改表列名:alter table 表名 change 旧列名 新列名 类型(长度) 约束;
  • 修改表删除列:alter table 表名 drop 列名;
  • 修改表名:rename table 表名 to 新表名; 
  • 修改表的字符集:alter table 表名 character set 字符集;

数据表中添加数据:

  • insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列
  • insert into 表 values (值1,值2,值3..); --向表中插入所有列

更新表记录:

  • update 表名 set 字段名=值,字段名=值;
  • update 表名 set 字段名=值,字段名=值 where 条件;

删除记录:

  • delete from 表名 [where 条件];  # 一条一条删除,不清空auto_increment记录数
  • truncate table 表名;  # 直接将表删除,重新建表,auto_increment将置为零,从新开始。

查询记录:

  • 查询指定字段信息:select 字段1,字段2,...from 表名 [where条件];    
  • 查询表中所有字段:select * from 表名;
  • distinct用于去除重复记录:select distinct 字段 from 表名;
  • 表别名:select * from 表名 as 别名;
  • 列别名:select 字段名 as 别名 from 表名;

运算:

and    or    not    不等于<>    between A and B      in(set)    not in(set)     is null     is not null     
like(通配符)    %匹配多个字符,_ 匹配一个字符

条件查询:select 字段  from 表名  where 条件;

  • SELECT * FROM finance WHERE name LIKE "%支出%";    # 查询出账务名称包含”支出”的账务信息
  • SELECT * FROM finance WHERE name LIKE "_____";     # 五个下划线_  查询出账务名称中是无五个字的账务信息

排序查询:SELECT * FROM 表名 ORDER BY 字段 ASC/DESC,默认升序ASC,可指定多个排序不同的字段,先者先排

聚合函数

* count:统计指定列不为NULL的记录行数;
* sum:计算指定列的数值和,如果指定列;
* max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算;
* min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
* avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

select count(*) as 'count' from finance;
select sum(money) from finance;
select max(money) from finance;
select min(money) from finance;
select avg(money) from finance;
SELECT SUM(money),name FROM finance GROUP BY name;
SELECT SUM(money) as 'getsum',name FROM finance GROUP BY name having getsum>5000;

drop,truncate,delete的区别:

  • delete:删除表的内容,表的结构还存在,不释放空间,可以回滚恢复(rollback);
  • truncate:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用;
  • drop:删除表内容和结构,释放空间,没有备份表之前要慎用;

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值