数据库复习与内置函数

来源:互联网 发布:瓦尔登湖 知乎 译本 编辑:程序博客网 时间:2024/06/06 04:59
 

枚举类型enum和set都是字符串对象

Enum(‘1’,‘2’,‘0’…..)用数字下标来表示各个对象

Set(‘a’,’b’,’c’,’d’…….)用二进制方式来表示各个对象顺序

   0001 0010  0100 1000

主键:可以选择一个字段或多个字段

      字段信息变化较少,和表中其他字段的关联少

      Primary key()

外键:参照完整性别约束

Foreign key(字段) references 表名(字段)

 注意存储引擎MYISAM 、innodb

Myisam tb3 tb5 ,声明了外键不起作用

  Insert 和 delete

Innodb tb4  tb8  支持外键

Insert 和 delete

 注意:

   缩短搜索的时间

   会单独保存索引文件

   Insert等会有影响,不建议小的数据表创建索引

   使用索引一次只允许一个索引起作用

 多表的使用

1)全连接

Select id1,id8 from tb1,tb2 where …..;

相当于从(tb1的行数*tb2r 行数产生的)结果中进行搜索

Where 子句中指定的表达式使用了”=”叫做等值连接

2)内连接 inner join

Select tb1.id1,id8 from tb1 join tb2 on 表和表连接的条件

Where 条件表达式;

注意:等同于有条件的全连接

      可用于多个表(超过两张表)的连接

      显示结果包括所有表中的信息

3)外连接 outer join

Select tb1.id1,id8 from tb1 left outer join tb2

注意:

  用于两张表

  只保留一张表的全部记录,另一张表保留满足条件的记录,不满足的用null填充

Cross join straight join 等同于join

自然连接适合于连接条件只有一个字段;

4)子查询

注意:

  分类:In(select..)、比较运算符(select….)只执行一次子查询语句;

        Exists(select…)执行次数和外部选择表的记录行数保持一致

        Select 、where、 group by、order by

        From 必须给子查询的结果起别名

3、视图

相当于用一种格式显示数据表中的记录

只保存了创建视图的语句;

并不产生新表

Create view view_name[()]

As select 语句:

数学函数

提醒;函数名和小括号不要有空格

允许嵌套使用

 Creatext(列表)  取最大值

 Least(列表) 取最小值

Floor(浮点数) 取浮点小

Ceiling(浮点数) 取大

Round()四舍五入

Truncate(浮点数,小数位数)截取

Abs(数值数据)取绝对值

Sign(数值数据)返回正负号 获取符号(+、-、0)

Sqrt(正整数)求平方根 开方

Pow(底数,指数)计算幂

Bin() 二进制

Oct() 八进制

Hex() 十六进制

Format(小数,保留位数)格式化

Mod(数字1,数字2)求余数 (正负依赖数字1 )数字1是正余数就是正是负余数就是负

Rand()生成0<=n<=1之间的随机数

聚合函数:

Count sum avg max min

字符串函数:

  Charset(字符串)返回该串的字符集

Concat(字符串1,字符串2.。。。。。)连接字符串