约束
PRIMARY KEY:主键
UNIQUE:唯一约束
FOREIGN KEY:外键
列级约束
#1.添加列级约束
USE test;
DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
id INT NOT NULL UNIQUE,#非空约束+主键约束
stuName VARCHAR(20) UNIQUE,#唯一约束
gender CHAR DEFAULT ‘男’,#默认约束
age INT UNSIGNED CHECK (age BETWEEN 0 AND 120)#检查约束
);
DESC stuinfo;
SELECT * FROM stuinfo;
表级约束
#语法
CREATE TABLE stuinfo(
id INT ,
stuName VARCHAR(20),
gender CHAR,
age INT UNSIGNED,
【CONSTRAINT 约束名】约束类型(字段)
);
添加约束
#案例:
DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
id INT ,
stuName VARCHAR(20),
gender CHAR,
age INT UNSIGNED,
gradeid INT
);
DESC stuinfo;
删除约束
#.删除非空
ALTER TABLE stuinfo MODIFY COLUMN gender
CHAR ;
1
#2.删除默认;
ALTER TABLE stuinfo MODIFY COLUMN age
INT UNSIGNED;
#3.删除主键
ALTER TABLE stuinfo MODIFY COLUMN id INT
;
ALTER TABLE stuinfo DROP PRIMARY KEY;
#4.删除唯一
ALTER TABLE stuinfo MODIFY COLUMN
stuname VARCHAR(20);
ALTER TABLE stuinfo DROP INDEX uq_stuinfo;
#查看指定表的所有索引
SHOW INDEX FROM stuinfo;
#5.删除外键
ALTER
TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_grade;
事务
概念
特点 原子性 一致性 隔离性 持久性
使用
以第一个 DML 语句的执行作为开始
以下面的其中之一作为结束:
COMMIT 或 ROLLBACK 语句
DDL 或 DCL 语句(自动提交)
用户会话正常结束
系统异常终了
SET autocommit=0;#取消自动提交
START TRANSACTION;#开启事务
ROLLBACK;#回滚事务
COMMIT;#提交事务
数据库的隔离级别
脏读 不可重复读 幻读
数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱.
视图
概念 应用 实例
创建修改删除查看视图
CREATE VIEW my_v1
AS
SELECT studentname,majorname
FROM student s
NNER JOIN major m
ON s.majorid=m.majorid
WHERE s.majorid=1;
创建视图的语法:
create [or replace] view view_name
As
select_statement
[with|cascaded|local|check
option]
修改视图的语法
alter view view_name
As
select_statement
[with|cascaded|local|check option]
7、删除视图的语法
用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。
drop view [if exists] view_name,view_name …[restrict|cascade]
8、查看视图结构的语法
show tables;
如果需要查询某个视图的定义,可以使用show
create view命令进行查看
show create view view_name \G
存储过程
在这里插入图片描述
概念
事先经过编译并存储在数据库中的一段sql语句的集合。
创建
1)创建存储过程
create procedure 存储过程名 ([proc_parameter[,…]])
[characteristic…]routine_body
1
(2)创建函数
create function 函数名([func_parameter[,…]])
returns type
[characteristic…]routine_body
(1)调用存储过程
call 存储过程名(参数列表)
2)调用函数
Select 函数名(参数列表)
修改
修改存储过程:
alter procedure 存储过程名 [charactristic…]
修改函数:
alter function 函数名 [charactristic…]
characteristic:
{contains sql|no sql|reads sql
data|modifies sql data}
|sql security{definer|invoker}
|comment ‘string’
删除
5、删除存储过程或函数
说明:一次只能删除一个存储过程或者函数,并且要求有该过程或函数的alter routine 权限
删除存储过程:
drop procedure [if exists] 存储过程名
删除函数:
drop function [if exists] 函数名
查看
1.查看存储过程或函数的状态:
show {procedure|function} status like 存储过程或函数名
2.查看存储过程或函数的定义:
show create {procedure|function} 存储过程或函数名
3.通过查看information_schema.routines了解存储过程和函数的信息(了解)
select * from rountines where rounine_name =存储过程名|函数名
实操
1、sqlyog 存储
、dos 实操