mysql学习-了解mysql

数据库是什么

数据库就是一个以某种有组织的方式存储数据集合,可以理解为平时使用的文件柜。

数据表

我们把数据库比作文件柜,那么这里的表就是组织文件的方式,我们是把数据以数据表的形式存储在数据库中。表数用来存储指定类型的数据

数据列

数据列数组成数据表的元素,一个数据表是由一个或者多个数据列组成的。

数据类型

数据类型是一个约束数据列存储啥样的数据。

数据行

数据表中的数据是按行存储的,所保存的每条记录存储在一个数据行中。

主键

主键理解为唯一标识数据记录的数据列

主键的选取的原则

  • 主键的数值不可以重复
  • 主键必须非空

主键的使用原则

  • 不更新主键的数据列的数值
  • 不重用主键列的数值
  • 不再主键中使用可能会更改的数值

sql结构化查询语言的使用

  • 选取数据库 use 数据库的名称

    use databasename;

  • 显示可用的数据库的名称

    show databases;

  • 显示数据库中可用的数据表
    show tables;

  • 显示表中的数据列的详细信息

    show columns from employees;

  • 显示创建指定的数据表的sql语句

    show create table employees;

  • 查询单行数据

    select email from employees

  • 查询多行数据
    select email,firstName
    from employees;

  • 查询多行数据

    select * from employees;

  • 限制返回行数
    select * from employees
    从第6行开始返回8行的数据
    select * from employees
    limit 6 offset 8;

  • 使用distinct关键字为列去重

  • 为检索的数据列排序 order by 字句 位于from之后 limit之前
    select * from employees
    order by employeeNumber desc;
    可以指定多个排序的字段在第一个字段相同的情况下比较第二个字段进行排序
    排序的时候默认的数据是生序的 desc指定进行降序显示数据。desc只是对他标示了的字段起作用。

  • where字句指定的是查询条件 where字句一般位置 order by之后
    select * from products
    where buyPrice>50;
    查询价格大于50的商品

    • where使用的操作符 = 等于
    • where使用的操作符 <> != 不等于
    • where使用的操作符 < 小于 <= 小于等于
    • where使用的操作符 >大于 >= 大于等于
    • where使用的操作符 between 在两个数值之间

针对于上边的操作符的对应的练习

select * from products
where buyPrice>50;
select * from products
where  buyPrice =77.9
 select * from products
where buyPrice> 78;
select * from products
where buyPrice between 50 and 100; 
select * from products
where buyPrice != 77.9;

字段的空值检验

字段不包含数值称为字段为空字段 他和数值0 和空字符串不同

select * from products
where buyPrice IS NULL

组合的where字句

  • and :where和and配合使用通过多个添加对数据进行过滤
select  productCode
 from products
where buyPrice<100 and MSRP>100;
  • or : where和or配合使用用来匹配任何的一个条件对表中的数据进行过滤
select * from products
where buyPrice<100 or MSRP <100;

备注and和or可以配合使用进行数据的过滤 在使用的时候and 的优先级高于or一般通过圆括号限制执行的顺序。

  • in :操作符是用来匹配in的圆括号内部指定的数据

select * from products
where buyPrice in (98.58,91.02,118.94)
order by buyPrice;

in的功能和or的功能差不多但是他的执行的速度快并且内部可以包含where字句

  • not 是对以上的三个操作符的去否的操作
select * from products
where buyPrice not in(91.02);

返回不包含91.02的数据的记录。

使用通配符进行过滤

为在搜索的字句中使用通配符,必须使用like操作符

  • 百分号通配符:表示任意的字符出现的任意次数

select * from products
where  productCode  like  'S10%';

匹配以S10可是的字符串,备注通配符可以在模糊搜索的任意的位置,和任意多个通配符。

  • 下划线通配符:表示人一个单个的字符
select * from employees
where extension like 'x____'
  • 使用通配符的技巧:不要过度的使用通配符 能用其他的操作符能达到的就使用其他的操作符,
  • 除非绝对必要的情况下 ,否则不要用通配符
  • 通配符使用要注意,否则会返回不需要的数据

正则表达式的使用

正则表达式的目的是用来匹配文本的。

  • 基本的字符匹配 : 匹配字符串中包含指定的字符的数据
select * from employees
where employeeNumber  regexp '10'

select * from employees
where extension regexp 'x'
  • 进行or的匹配: 匹配两个字符串之一
select * from employees
where extension regexp 'x5|x4'

匹配以x5或者是x4开头的extension的数据

  • 匹配一个集合 :匹配一个以10 到11 开头的88结尾的所有的数据

select * from employees
where employeeNumber regexp '[10-11]88'
  • 匹配特殊的字符需要加 // 进行转译
select email from employees
where  email regexp '\\.';

select email from employees
where email regexp '\\@'
  • 匹配多个实例

    1 * 0个或者多个匹配
    2 + 1个或者多个匹配
    3 ? 0个或者1个匹配
    4 { n } 指定数目的配皮
    5 { n,}不少于指定的匹配
    6 {n, m} 匹配数目的范围
    7 ^ 从文本的开始进行匹配
    8 $ 文本的结束开始匹配
    9 [[:<:]] 词的开头开始匹配
    10· [[:>:]] 词的结尾开始匹配

字符串的拼接

将多个字段的结果进行拼接显示,使用Concat(values,values);来实现

select Concat(lastName,'(',email,')')
from employees;
//结果
Vanauf([email protected])

通过使用 trim()去除结果中的空格,通过as为列指定别名

对列进行的计算

“+” ,”-“,”*”,”“’/’

猜你喜欢

转载自blog.csdn.net/xh_ssh/article/details/79163658