欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL相关基础知识

程序员文章站 2022-04-14 16:20:39
恢复内容开始 [TOC] MySQL相关知识 Mysql链接 mysql u用户名 p密码 创建数据库 create databse 数据库名; 删除数据库 drop database 数据库名; 选择数据库 use 数据库名 数据类型 1. 数值型 整型 INTEGER、SMALLINT、NUME ......

------------恢复内容开始------------

mysql相关知识

mysql链接

mysql -u用户名 -p密码

创建数据库

create databse 数据库名;

删除数据库

drop database 数据库名;

选择数据库

use 数据库名

数据类型

  1. 数值型
  • 整型
    integer、smallint、numeric
  • 浮点类型
    float、double
  1. 字符串
    char 定长格式 但是如果超过定长范围 后面会有空格将其补充
    varchar 可变长格式
    text
  2. 时间
    date yyyy-mm-dd 日期值
    time hh:mm:ss 世间之
    datetime yyyy—mm-dd hh:mm:ss

数据表相关

创建数据表

创建数据表需要的信息

  • 表名
  • 字段表名
  • 定义每个表字段

语法

create table table_name(
column_name column_type,
column_name column_type
);

字段约束条件

not null 字段不可为null
auto_increment 列的数值每次加1 一般用于主键
primary_key 定义主键   
rngine 设置存储引擎
charset 设置编码

删除数据表

drop table 数据表名称;

查询数据表结构

desc tablename ;

修改表的结构

增加表字段

alter table tablename add 列名 类型(长度) 约束;
例如:

alter table category add `name` varchar(20);
  • 关键字要用 框住

修改列的长度及约束

alter table tablename modify 列名 类型(长度)约束;
例如:

alter table tablename modify `name` varchar(50) not null:

修改表删除列

alter table tablename drop 列名;
例如:

alter table tablename drop `name`;

修改表名

rename table 旧表名 to 新表名;

修改表的字符集

alter table 表名 character set 编码表;

插入数据

insert into table_name(filed1,filed2,filedn) values(value1,value2,valuen);

查询数据

select column_name,column_name from table_name where clause

1.where子句的实行

select field1, field2,...fieldn from table_name1, table_name2...
[where condition1 [and [or]] condition2.....
  • where语句类似于程序语言中的if语句
  • where可以有多个条件 用and 或者 or 连接

2.like语句的使用
配合select实现模糊查询

select filed1,filed2,filed3 from table_name where filed1="svalue" and filed2 like '条件';
  • 举例
    '%a' //以a结尾的数据
    'a%' //以a开头的数据
    '%a%' //含有a的数据
    'a' //三位且中间字母是a的
    'a' //两位且结尾字母是a的
    'a
    ' //两位且开头字母是a的
    查询以 java 字段开头的信息。
    select * from position where name like 'java%';
    查询包含 java 字段的信息。
    select * from position where name like '%java%';
    查询以 java 字段结尾的信息。
    select * from position where name like '%java';

3.将读取的数据进行排序
用途:我们知道从 mysql 表中使用 sql select 语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用 mysql 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

select filed1,filed2,filedn from table_name1,table_name2 order by field1 asc/desc;
  • 默认为asc升序 从小到大,desc 降序 从大到小
  • 如果要去重的话 需要在字段前面加上 distinct

4.聚合函数
之前查的都是横向查询,聚合函数查询用来进行纵向查询,它是对一列的值进行计算,然后返回一个单一的值。

  • 统计行数select count(filed) from 表名
    例如:查寻价格大于200的商品总条数

    select count(pid) from product where price>200;

  • 统计指定列的和select sum(filed) from 表名
    例如:查询商品的价格和

    select sum(price) from product;

  • 统计指定列的平均值select avg(filed) from 表名
    例如:查询一个商品的平均价格

    select avg(price) from product;

  • 统计一列的最大值select max(filed) from 表名;

  • 统计一列的最小值select min(filed) from 表名;

5.分组查询
group by 语句根据一个或多个列对结果集进行分组。
例如:统计每门课程的平均分,且只显示平均分>70分的信息

select sname,avg(score)from scores group by sname having avg(score)>70;

注:

  • 选择多个条件可以用 where filed in(列值1,列值2....列值n)

  • 如果要在where后面 用聚合函数 需要把where 变成 having
    例如:查看所有商品的平均价格,所有商品的平均价格>800的话,就显示出所有商品的价格

    select svg(price) from product having avg(price)>800;

更新数据

update table_name set filed1=new-value1,filed2=new-value2 where clause

filed 为字段名

删除数据

delete from table_name where clause
  • 如果不指定where 数据表中所有的数据均会被删除

delete与drop区别:delete 仅仅删除表的数据,drop连同数据和表结构一起删除

------------恢复内容结束------------