MySQL入门基础(2):单表操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/H_Targaryen/article/details/82768041

(一)数据库分类

  • 数据库分为关系型数据库和非关系型数据库
    • 关系型数据库:比如Oracle、MySQL
    • 非关系型数据库 :比如NoSQL、Redis、MongoDB
  • 关系型数据库:存放的是实体和实体之间的关系(二维表)
  • 非关系型数据库:存放的是对象

(二)基本命令

使用数据库可视化工具比如SQLyog查看MySQL中的数据

	net start mysql //cmd中启动MySQL服务
	select @@basedir as basePath from dual  //在MySQL中查询MySQL的安装地址
	select @@version; //查看数据库版本
	set names gbk; //在使用cmd录入数据时,因为cmd采用GBK编码方式,而数据库采用utf-8编码方式,命令的含义是高速数据库录入的数据是gbk格式,需要翻译转换

(三)简单查询

(1)查询

语序 : where + 分组 + order by

  • 查询语句中的模糊匹配(关键词是like

    • 字段名 like “pattern”;,pattern中%表示通配符
    • pattern中%的使用: %value; //值以value结尾的
    • value% //值以value开头的
    • %value% //值里包含value
  • where语句案例

	select * from products where pname='十三香'
	select * from products where price>60;
	select * from products where pname like '新%'
	select * from products where price=38 or price=68 or price=98
	select * from products where price in(38,68)
	select * from products where price between 40 and 80

(2)聚合

  • 聚合函数的使用
	select avg(price) from products //所有商品价格的平均数
	select sum(price) from products //所有商品价格之和
	select round(avg(price),2) from products //round函数保证小数精度为2
	select count(*) from products; //查询表中有多少条数据

(3)条件查询

  • 条件查询的时候,什么时候使用where什么时候使用having
    • where是对分组前的数据进行过滤
    • having是对分组后的数据进行过滤
    • where之后不能使用聚合函数,having之后可以

(4)分组

  • group by

(四)MySQL数据类型

数据类型 备注
tinyint mysql中没有boolean类型,可以使用tinyint类型替代
smallint
int 常用
bigint
varchar
char
double(m,n) 浮点数长度为m,小数部分有n位,也就是说m-n位.n位

(五)约束

(1)主键约束

  • 主键
    • 作用:标识一条记录,保证记录的唯一性
    • 对于一个主键包含多个字段的情况,只有多个字段值都相同的时候才认为出现了重复数据
  • MySQL约束:对于表的列或者行数据进行限制,确保数据的完整性和唯一性
  • 主键约束(Primary Key)
    • 作用:被修饰的字段唯一非空
    • 属性:一张表只能有一个主键(但是这个主键可以包含多个字段,也就是联合主键)
  • 主键申明方式1: 字段名 字段属性 primary key
  • 主键申明方式2:(在建表的时候申明)
create table pk01(
   id int,
   username varchar(20),

   primary key (id)
);	 
  • 主键申明方式3(在建表成功之后添加主键):
    • alter table tablename add primary key(…,…)
alter table pk02 add primary key(字段名1,字段名2)

(2)唯一约束

  • 唯一约束
    • 被修饰的关键词唯一
    • 对NULL不起作用
    • 关键词为unique,申明方式和主键约束相同
create table un(
	id int unique,
	username varchar(20) unique
);

(3)非空约束

  • 非空约束
    • 作用:保证被修饰的字段非空
    • 字段名 字段属性 not null

(六)其他

(1)truncate语句

  • truncate会删除一张表中的所有行,然后重新建立这张表
  • truncate和delete的区别
    • delete逐条删除数据,不会破坏表结构(比如AUTO_INCREMENT属性)
    • truncate会破坏表结构

(2)auto_increment属性

  • auto_increment
    • 被修饰的字段必须支持自增运算(比如varchar不能被auto_increment修饰,int可以被修饰)
    • 被修饰的字段必须是一个key,一般是primary key

猜你喜欢

转载自blog.csdn.net/H_Targaryen/article/details/82768041