MySql数据库约束视图与索引(5)
来源:互联网 发布:unity3d 灯泡闪烁效果 编辑:程序博客网 时间:2024/05/16 05:18
-- 主键约束:-- 主键约束:PRIMARY KEY=不重复+不为NULL;
-- (列级约束条件)
CREATE TABLE dept_dylan (
dept_id INT (2) PRIMARY KEY,
dept_name VARCHAR (20),
dept_location VARCHAR (40)
);
-- 数据准备
INSERT INTO dept_dylan
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan
VALUES
(10, 'market', 'shenzhen');
-- 表级约束条件:建议约束命名规则:表名_列名_约束条件的类型
CREATE TABLE dept_dylan2 (
dept_id INT (2),
dept_name VARCHAR (20),
dept_location VARCHAR (40),
CONSTRAINT dept_dylan2_pk PRIMARY KEY (dept_id)
);
-- 数据准备
INSERT INTO dept_dylan2
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan2
VALUES
(10, 'market', 'shenzhen');
SELECT
*
FROM
dept_dylan2;
-- 非空约束( not null , 简称 NN ) ** 非空约束只能定义在列级
CREATE TABLE student_dylan (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
age INT (3)
);
INSERT INTO student_dylan
VALUES
(1, 'zhangwei', 20);
INSERT INTO student_dylan
VALUES
(2, 'zhangwei', 19);
INSERT INTO student_dylan
VALUES
(3, NULL, 19);
SELECT
*
FROM
student_dylan;
-- 给非空约束命名
DROP TABLE student_dylan;
CREATE TABLE student_dylan (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
age INT (3)
);
CREATE TABLE student_ning2 (
id INT (4),
NAME VARCHAR (10) NOT NULL,
email VARCHAR (30),
age INT (2),
CONSTRAINT student_ning2_id_pk PRIMARY KEY (id),
CONSTRAINT student_ning2_email_uk UNIQUE (email)
) CREATE TABLE student_ning3 (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
email VARCHAR (30) UNIQUE,
age INT (2) CHECK (age > 10),
gender CHAR (1) CHECK (gender IN('F', 'M')) -- 'F'代表女生 ;'M'代表男生
);
-- 创建视图, 视图的定义是一个数据表的子集
CREATE VIEW v_emp_dylan AS SELECT
emp_id,
NAME,
job
FROM
emp_test
WHERE
dept_test_id = 20;
DESC v_emp_dylan;
SELECT
*
FROM
v_emp_dylan;
-- 创建视图 , 视图的定义是一个复杂查询语句
CREATE VIEW v_emp_count AS SELECT
emp_id,
count(*) emp_num
FROM
emp_test
GROUP BY
dept_test_id;
DESC v_emp_count;
SELECT
*
FROM
v_emp_count;
-- 视图可以使用 CREATE OR REPLACE 来创建或覆盖,并可查询视图的定义。
CREATE
OR REPLACE VIEW v_emp_count AS SELECT
dept_test_id,
count(*) emp_num,
sum(salary) sum_s,
avg(IFNULL(salary, 0)) avg_s,
max(salary) max_s,
min(salary) min_s
FROM
emp_test
GROUP BY
dept_test_id;
SELECT
*
FROM
v_emp_count;
-- 索引 Index *
-- index :用来提高查询效率的机制
-- 全表扫描方式( Full Table Scan ):查询效率极低
-- 索引查询:比全表扫描快
-- 索引的结构:数据+地址( 如:张三+Room203 )
-- 注意:对亍数据变更频繁(DML 操作频繁)的表 , 索引会影响查询性能
-- 自劢创建索引:
-- 如果数据表有 PK/Unique 两种约束 , 索引自劢创建 , 除此以外 , 索引必须手劢创建
-- 自定义索引语法:
-- create index 索引名 on 表名(列名) ;
-- 表的主键和唯一约束条件 , 会自动创建索引
create table student_ning7(
id INT(4),
name char(20),
email char(40),
constraint stu_n7_id_pk primary key(id),
constraint stu_n7_email_uk unique(email)
)
create index idx_stu7_name
on student_ning7(name) ;
select * from student_ning7
where name = 'zhangsan' ;PRIMARY KEY=不重复+不为NULL;-- (列级约束条件) CREATETABLE dept_dylan ( dept_idINT (2)PRIMARY KEY, dept_name VARCHAR (20), dept_locationVARCHAR (40));-- 数据准备 INSERTINTO dept_dylanVALUES (10,'developer', 'beijing');INSERTINTO dept_dylanVALUES (10,'market', 'shenzhen');-- 表级约束条件:建议约束命名规则:表名_列名_约束条件的类型CREATETABLE dept_dylan2 ( dept_idINT (2), dept_nameVARCHAR (20), dept_locationVARCHAR (40),CONSTRAINT dept_dylan2_pkPRIMARY KEY (dept_id));-- 数据准备 INSERTINTO dept_dylan2VALUES (10,'developer', 'beijing');INSERTINTO dept_dylan2VALUES (10,'market', 'shenzhen');SELECT *FROM dept_dylan2;-- 非空约束( not null , 简称 NN ) ** 非空约束只能定义在列级CREATETABLE student_dylan ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, age INT (3));INSERTINTO student_dylanVALUES (1,'zhangwei', 20);INSERTINTO student_dylanVALUES (2,'zhangwei', 19);INSERTINTO student_dylanVALUES (3,NULL, 19);SELECT *FROM student_dylan;-- 给非空约束命名DROPTABLE student_dylan;CREATETABLE student_dylan ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, age INT (3));CREATETABLE student_ning2 ( idINT (4), NAMEVARCHAR (10)NOT NULL, email VARCHAR (30), ageINT (2),CONSTRAINT student_ning2_id_pkPRIMARY KEY (id), CONSTRAINT student_ning2_email_ukUNIQUE (email)) CREATE TABLE student_ning3 ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, email VARCHAR (30)UNIQUE, age INT (2) CHECK (age > 10), genderCHAR (1)CHECK (gender IN('F', 'M')) -- 'F'代表女生 ;'M'代表男生);-- 创建视图, 视图的定义是一个数据表的子集CREATEVIEW v_emp_dylan AS SELECT emp_id, NAME, jobFROM emp_testWHERE dept_test_id =20;DESC v_emp_dylan;SELECT *FROM v_emp_dylan;-- 创建视图 , 视图的定义是一个复杂查询语句CREATEVIEW v_emp_count AS SELECT emp_id,count(*) emp_numFROM emp_testGROUPBY dept_test_id;DESC v_emp_count;SELECT *FROM v_emp_count;-- 视图可以使用 CREATE OR REPLACE 来创建或覆盖,并可查询视图的定义。 CREATEORREPLACE VIEW v_emp_count ASSELECT dept_test_id,count(*) emp_num, sum(salary) sum_s, avg(IFNULL(salary,0)) avg_s, max(salary) max_s, min(salary) min_sFROM emp_testGROUPBY dept_test_id;SELECT *FROM v_emp_count;-- 索引 Index *-- index :用来提高查询效率的机制-- 全表扫描方式( Full Table Scan ):查询效率极低-- 索引查询:比全表扫描快-- 索引的结构:数据+地址( 如:张三+Room203 )-- 注意:对亍数据变更频繁(DML 操作频繁)的表 , 索引会影响查询性能-- 自劢创建索引:-- 如果数据表有 PK/Unique 两种约束 , 索引自劢创建 , 除此以外 , 索引必须手劢创建-- 自定义索引语法:-- create index 索引名 on 表名(列名) ;-- 表的主键和唯一约束条件 , 会自动创建索引createtable student_ning7(idINT(4),namechar(20),emailchar(40),constraint stu_n7_id_pkprimary key(id),constraint stu_n7_email_ukunique(email)) create index idx_stu7_nameon student_ning7(name) ;select * from student_ning7where name ='zhangsan' ;
-- (列级约束条件)
CREATE TABLE dept_dylan (
dept_id INT (2) PRIMARY KEY,
dept_name VARCHAR (20),
dept_location VARCHAR (40)
);
-- 数据准备
INSERT INTO dept_dylan
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan
VALUES
(10, 'market', 'shenzhen');
-- 表级约束条件:建议约束命名规则:表名_列名_约束条件的类型
CREATE TABLE dept_dylan2 (
dept_id INT (2),
dept_name VARCHAR (20),
dept_location VARCHAR (40),
CONSTRAINT dept_dylan2_pk PRIMARY KEY (dept_id)
);
-- 数据准备
INSERT INTO dept_dylan2
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan2
VALUES
(10, 'market', 'shenzhen');
SELECT
*
FROM
dept_dylan2;
-- 非空约束( not null , 简称 NN ) ** 非空约束只能定义在列级
CREATE TABLE student_dylan (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
age INT (3)
);
INSERT INTO student_dylan
VALUES
(1, 'zhangwei', 20);
INSERT INTO student_dylan
VALUES
(2, 'zhangwei', 19);
INSERT INTO student_dylan
VALUES
(3, NULL, 19);
SELECT
*
FROM
student_dylan;
-- 给非空约束命名
DROP TABLE student_dylan;
CREATE TABLE student_dylan (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
age INT (3)
);
CREATE TABLE student_ning2 (
id INT (4),
NAME VARCHAR (10) NOT NULL,
email VARCHAR (30),
age INT (2),
CONSTRAINT student_ning2_id_pk PRIMARY KEY (id),
CONSTRAINT student_ning2_email_uk UNIQUE (email)
) CREATE TABLE student_ning3 (
id INT (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
email VARCHAR (30) UNIQUE,
age INT (2) CHECK (age > 10),
gender CHAR (1) CHECK (gender IN('F', 'M')) -- 'F'代表女生 ;'M'代表男生
);
-- 创建视图, 视图的定义是一个数据表的子集
CREATE VIEW v_emp_dylan AS SELECT
emp_id,
NAME,
job
FROM
emp_test
WHERE
dept_test_id = 20;
DESC v_emp_dylan;
SELECT
*
FROM
v_emp_dylan;
-- 创建视图 , 视图的定义是一个复杂查询语句
CREATE VIEW v_emp_count AS SELECT
emp_id,
count(*) emp_num
FROM
emp_test
GROUP BY
dept_test_id;
DESC v_emp_count;
SELECT
*
FROM
v_emp_count;
-- 视图可以使用 CREATE OR REPLACE 来创建或覆盖,并可查询视图的定义。
CREATE
OR REPLACE VIEW v_emp_count AS SELECT
dept_test_id,
count(*) emp_num,
sum(salary) sum_s,
avg(IFNULL(salary, 0)) avg_s,
max(salary) max_s,
min(salary) min_s
FROM
emp_test
GROUP BY
dept_test_id;
SELECT
*
FROM
v_emp_count;
-- 索引 Index *
-- index :用来提高查询效率的机制
-- 全表扫描方式( Full Table Scan ):查询效率极低
-- 索引查询:比全表扫描快
-- 索引的结构:数据+地址( 如:张三+Room203 )
-- 注意:对亍数据变更频繁(DML 操作频繁)的表 , 索引会影响查询性能
-- 自劢创建索引:
-- 如果数据表有 PK/Unique 两种约束 , 索引自劢创建 , 除此以外 , 索引必须手劢创建
-- 自定义索引语法:
-- create index 索引名 on 表名(列名) ;
-- 表的主键和唯一约束条件 , 会自动创建索引
create table student_ning7(
id INT(4),
name char(20),
email char(40),
constraint stu_n7_id_pk primary key(id),
constraint stu_n7_email_uk unique(email)
)
create index idx_stu7_name
on student_ning7(name) ;
select * from student_ning7
where name = 'zhangsan' ;PRIMARY KEY=不重复+不为NULL;-- (列级约束条件) CREATETABLE dept_dylan ( dept_idINT (2)PRIMARY KEY, dept_name VARCHAR (20), dept_locationVARCHAR (40));-- 数据准备 INSERTINTO dept_dylanVALUES (10,'developer', 'beijing');INSERTINTO dept_dylanVALUES (10,'market', 'shenzhen');-- 表级约束条件:建议约束命名规则:表名_列名_约束条件的类型CREATETABLE dept_dylan2 ( dept_idINT (2), dept_nameVARCHAR (20), dept_locationVARCHAR (40),CONSTRAINT dept_dylan2_pkPRIMARY KEY (dept_id));-- 数据准备 INSERTINTO dept_dylan2VALUES (10,'developer', 'beijing');INSERTINTO dept_dylan2VALUES (10,'market', 'shenzhen');SELECT *FROM dept_dylan2;-- 非空约束( not null , 简称 NN ) ** 非空约束只能定义在列级CREATETABLE student_dylan ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, age INT (3));INSERTINTO student_dylanVALUES (1,'zhangwei', 20);INSERTINTO student_dylanVALUES (2,'zhangwei', 19);INSERTINTO student_dylanVALUES (3,NULL, 19);SELECT *FROM student_dylan;-- 给非空约束命名DROPTABLE student_dylan;CREATETABLE student_dylan ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, age INT (3));CREATETABLE student_ning2 ( idINT (4), NAMEVARCHAR (10)NOT NULL, email VARCHAR (30), ageINT (2),CONSTRAINT student_ning2_id_pkPRIMARY KEY (id), CONSTRAINT student_ning2_email_ukUNIQUE (email)) CREATE TABLE student_ning3 ( idINT (4)PRIMARY KEY, NAME VARCHAR (10)NOT NULL, email VARCHAR (30)UNIQUE, age INT (2) CHECK (age > 10), genderCHAR (1)CHECK (gender IN('F', 'M')) -- 'F'代表女生 ;'M'代表男生);-- 创建视图, 视图的定义是一个数据表的子集CREATEVIEW v_emp_dylan AS SELECT emp_id, NAME, jobFROM emp_testWHERE dept_test_id =20;DESC v_emp_dylan;SELECT *FROM v_emp_dylan;-- 创建视图 , 视图的定义是一个复杂查询语句CREATEVIEW v_emp_count AS SELECT emp_id,count(*) emp_numFROM emp_testGROUPBY dept_test_id;DESC v_emp_count;SELECT *FROM v_emp_count;-- 视图可以使用 CREATE OR REPLACE 来创建或覆盖,并可查询视图的定义。 CREATEORREPLACE VIEW v_emp_count ASSELECT dept_test_id,count(*) emp_num, sum(salary) sum_s, avg(IFNULL(salary,0)) avg_s, max(salary) max_s, min(salary) min_sFROM emp_testGROUPBY dept_test_id;SELECT *FROM v_emp_count;-- 索引 Index *-- index :用来提高查询效率的机制-- 全表扫描方式( Full Table Scan ):查询效率极低-- 索引查询:比全表扫描快-- 索引的结构:数据+地址( 如:张三+Room203 )-- 注意:对亍数据变更频繁(DML 操作频繁)的表 , 索引会影响查询性能-- 自劢创建索引:-- 如果数据表有 PK/Unique 两种约束 , 索引自劢创建 , 除此以外 , 索引必须手劢创建-- 自定义索引语法:-- create index 索引名 on 表名(列名) ;-- 表的主键和唯一约束条件 , 会自动创建索引createtable student_ning7(idINT(4),namechar(20),emailchar(40),constraint stu_n7_id_pkprimary key(id),constraint stu_n7_email_ukunique(email)) create index idx_stu7_nameon student_ning7(name) ;select * from student_ning7where name ='zhangsan' ;
0 0
- MySql数据库约束视图与索引(5)
- Mysql 数据库 (5)约束视图与索引
- 【从零开始学习MySql数据库】(5)约束视图与索引
- 【从零开始学习Oracle数据库】(5)约束视图与索引
- 数据库索引与约束
- MySQL 约束与索引
- Day54、约束(主键约束、唯一约束、检查约束、非空约束)、数据库对象(序列、索引、视图、分页)
- 数据库:DML、事务处理、约束、视图、序列(sequence)、索引
- Oracle数据库学习(五)--视图,序列,索引,约束
- 数据库_视图、序列、索引、约束
- 视图与数据库完整性约束
- MySQL视图与索引
- 【数据库8】索引与约束
- 视图、序列、索引 、约束
- MySQL之索引与视图
- MySQL的视图与索引
- 数据库知识点总结(发展,约束,索引,触发器,连接池,视图,事务)
- oracle 数据库常用创建表、约束、视图、索引等
- OpenWRT实践1:开发环境构建
- Android无限滚动库mugen实现加载更多效果
- 网卡属性中的巨帧、巨型帧、Jumbo Frame
- redis并发
- 学习Appium 元素定位java篇—XPath
- MySql数据库约束视图与索引(5)
- C++,原生bool
- android开发工具-ADT字体大小问题解决
- Java 代理模式(二) Java中的动态代理
- java判断字符串包含某个字符段(或替换)
- 多台机器时,简便的一条命令多台执行的方式
- phpdocumentor 学习笔记(一)
- 控件的外观设置
- 修改opencv源代码并重新编译