菜鸟的MySQL学习笔记(二)

3-1约束

1、约束保证数据的完整性和一致性;

2、约束分表级约束(两个或两个个以上字段的约束)和列级约束(一个字段约束);

3、NOT NULL       非空;

PRIMARY KEY       主键约束;

UNIQUE KEY         唯一约束;

DEFAULT               默认约束;

FOREIGN KEY        外键约束。

空值与非空值:

NULL 与 NOT NULL

自动编号:

AUTO_INCREMENT 自动编号,必须与主键组合使用,默认情况下起始值为1,每次增量为1;

主键:

PRIMARY KEY  主键约束,每张鼠标只存在一个主键,主键保证记录的唯一性,主键自动为NOT NULL;

#CREATE TABLE tb3(

id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,       #设置主键 和自动编号

username VACHAR(20) NOT NULL);

唯一约束:

UNIQUE KEY 唯一约束,可以保证记录的唯一性,可以为空值(只有一个NULL值),每张数据表可以存在多个唯一约束

#CREATE TABLE tb4(

id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

username VACHAR(20) NOT NULL UNIQUE KEY,     #设置姓名唯一约束

age TINYINT UNSIGNED);

默认约束:

DEFAULT  当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

#CREATE TABLE tb5(

id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

username VACHAR(20) NOT NULL UNIQUE KEY,

sex EMUI(‘1‘,‘2‘,‘3‘) DEFAULT ‘3‘);       #设置默认性别字段为3

外键约束:

要求:父表和子表必须使用相同的存储引擎,只能为InnoDB,且禁止使用临时表;外键列和参照列必须具有相似的数据类型,其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如外键列不存在索引,mysql将自动创建索引。

#默认存储引擎:bin目录下 my.ini文件中  修改成INNODB;

针对外键约束的参照操作:

1、CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;

2、SET NULL:从父表删除或更新行,并设置子表中的外键列;

3、RESTRICT:拒绝父表的删除或更新操作;

4、NO ACTION:标准SQL的关键字,再mysql中与RESTRICT相同。

表级约束和列级约束:对一个数据列建立的约束 为列级约束;对多个数据列建立的约束称为表级约束。

表级约束只能再列定义后声明,列级约束可以再列定义时声明,也可以再列定义后声明。

时间: 2024-08-02 18:42:20

菜鸟的MySQL学习笔记(二)的相关文章

MySQL学习笔记(二)

-- 回顾 数据库基础知识: 关系型数据库(磁盘),建立在关系模型上的数据库,数据结构(二维表),浪费空间. 操作数据的指令集合:SQL(DDL,DML[DQL]和DCL) 完整性约束:表内和表之间(实体) mysql 关系型数据库:c/s结构软件(连接认证,发送SQL指令,服务器处理指令返回结果,客户端接收结果解析结果) mysql服务端对象:DBMS->Datebase->Table->fields sql 基本操作:库操作,表操作(字段)和数据操作 字符集问题:中文数据问题 改变服

MySQL学习笔记(二)

-- 回顾 数据库基础知识: 1.关系型数据库(磁盘),建立在关系模型上的数据库,数据结构(二维表),浪费空间. 操作数据的指令集合:SQL(DDL,DML[DQL]和DCL) 完整性约束:表内和表之间(实体) mysql 关系型数据库:c/s结构软件(连接认证,发送SQL指令,服务器处理指令返回结果,客户端接收结果解析结果) mysql服务端对象:DBMS->Datebase->Table->fields sql 基本操作:库操作,表操作(字段)和数据操作 字符集问题:中文数据问题 改

MySQL学习笔记二

Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后.按照函数返回的结果, 可以分为:多行函数和单行函数:所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果. 如:字符串函数:而多行函数,就是多条记录同时计算,得到最终只有一条结果记录.如:sum.avg等 多行函数也称为聚集函数.分组函数,主要用于完成一些统计功能.MySQL的单行函数有如下特征: 单行函数的参数可以是变量.常量或数据列.单行函数可以接受多个参数,但返回一个值.

MySQL 学习笔记 二

Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后.按照函数返回的结果, 可以分为:多行函数和单行函数:所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果. 如:字符串函数:而多行函数,就是多条记录同时计算,得到最终只有一条结果记录.如:sum.avg等 多行函数也称为聚集函数.分组函数,主要用于完成一些统计功能.MySQL的单行函数有如下特征: 单行函数的参数可以是变量.常量或数据列.单行函数可以接受多个参数,但返回一个值.

MySQL学习笔记(二)—查询

一.多表连接查询 新建两张表t_user.t_order.              1.内连接      返回满足条件的所有记录. (1)显式内连接      使用inner join关键字,在on子句中设定连接条件. SELECT u.id, u.name, u.address, o.orderno FROM t_user u INNER JOIN t_order o ON u.id = o.userid; 结果:          (2)隐式内连接      不包含inner join和o

菜鸟的MySQL学习笔记(五)

7.自定义函数 用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同.包含了两个必要条件,参数与返回值.没有必然内在联系. 函数可以返回任意类型的值,同样可以接收这些类型的参数: 创建自定义函数: CREATE FUNCTION function_name             #函数名 RETURNS {STRING | INTEGER | REAL | DECIMAL}        #返回值类型 routine_body

菜鸟的MySQL学习笔记(三)

4-1插入记录INSERT INSERT [INTO] tbl_name [(col_name)] {VALUES|VALUE} ({expr|DEFAULT},...), (...), ...   #可以一次性插入多条记录 INSERT [INTO] tbl_name SET col_name = {expr | DEFAULT}, ...  #可以使用子查询 INSERT [INTO] tbl_name [(col_name,...)] SELECT ... #可以将查询的结果插入到指定的表

菜鸟的MySQL学习笔记(四)

MySQL中的运算符和函数: 1.字符函数: 2.数值运算符与函数: 3.比较运算符与函数: 4.日期时间函数: 5.信息函数: 6.聚合函数: 7.加密函数等: 6-1.字符函数: CONCAT()                     字符连接 #SELECT  CONCAT(first_name,last_name) AS fullname FROM name_test;   从name表中 连接显示 first last CONCAT_WS()              使用指定的分隔

MySQL学习笔记二:权限管理

1. 创建和删除用户,mysql中的用户是由用户名和主机名来确定的 create user "user_name@host_name" identified by passwd; drop user user_name; ---------------也可以直接向mysql.user表添加记录---------------- insert into mysql.user(host,user,password) values ("host_name","us