Mysql知识点个人整理

1.概念

  数据库:保存有组织的数据的容器。

  表: 某种特定类型数据的结构化清单

  模式:关于数据库和表的布局和特性的信息?(有时指数据库)

  主键: primary key 一个列或一组列,其值能唯一区分表中的每个行(满足:唯一性和不为NULL)

  SQL: 结构化查询语言,与数据库通信的语言

  MySQL: DBMS 数据库系统管理软件

 注意点:

  • MySQL不区分大小写,但将关键字大写易于阅读,对表名,数据库名,列名最好使用时保持大小写一致。
  • 是否区分大小写,由数据库管理员在建立数据库时设置,Mysql通常默认不区分大小写。

2.基本语句练习

   使用《MySQL必知必会》的样例表

  show

use test;
show tables;
show create database test;
show create table products;
show status;
show errors;
show warnings; 
  •   选区products表的指定列,剔除重复行,保留从第三行起的接下来6行。
select distinct prod_Name, prod_id, prod_name from products limit 3,6;

  •  在上一个操作之上加入排序,按价格降序排列,再按产品名称升序排列,同样取结果的第三行到第九行。
select distinct prod_name, prod_id, prod_price from products 
order by prod_price desc, prod_name
limit 3,6;
  • 查找顾客表,返回指定除email地址以外的用户:
select * from customers where cust_email is not 'rabbit@wascally.com';

注意:获得的结果不包括email值为NULL的用户,NULL在MySQL通常指未知,故在本次查询中不返回带NULL的结果项。‘数据库不知道他们是否匹配,因此在匹配过滤或匹配不过滤时不返回他们’。所以,在进行条件查询时,需要额外考虑是否返回NULL项:

  • 查找顾客表,返回指定email地址以外以及未填写email地址的用户:
select * from customers where cust_email != 'rabbit@wascally.com' or cust_email is null;
  • 【通配符】,查找所有email地址以‘rabb’开头的顾客的信息:
select * from customers where cust_email like 'rabb%';

%匹配任意个字符,‘_’匹配一个字符。

通配符一般不要处于搜索模式的开始处,会比较慢。

LIKE关键字必须对整个列值进行匹配,只需要部分值匹配可以使用正则表达式。

  • 【正则表达式】查询产品名以JetPack开始,000结尾的产品信息,区分大小写。分别以LIKE关键字和正则表达式处理:
select * from products where prod_name like binary 'JetPack%000';
select * from products where prod_name regexp binary '^JetPack.*000$';
原文地址:https://www.cnblogs.com/xdsux/p/9479237.html