【从零开始学习MySql数据库】(5)约束视图与索引

来源:互联网 发布:手机铃声制成软件 编辑:程序博客网 时间:2024/05/16 00:25
-- 主键约束:PRIMARY KEY=不重复+不为NULL;-- (列级约束条件) CREATE TABLE dept_dylan (    dept_id INT (2) PRIMARY KEY,    dept_name VARCHAR (20),    dept_location VARCHAR (40));-- 数据准备 INSERT INTO dept_dylanVALUES    (10, 'developer', 'beijing');INSERT INTO dept_dylanVALUES    (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_dylan2VALUES    (10, 'developer', 'beijing');INSERT INTO dept_dylan2VALUES    (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_dylanVALUES    (1, 'zhangwei', 20);INSERT INTO student_dylanVALUES    (2, 'zhangwei', 19);INSERT INTO student_dylanVALUES    (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,    jobFROM    emp_testWHERE    dept_test_id = 20;DESC v_emp_dylan;SELECT    *FROM    v_emp_dylan;-- 创建视图 , 视图的定义是一个复杂查询语句CREATE VIEW v_emp_count AS SELECT    emp_id,    count(*) emp_numFROM    emp_testGROUP BY    dept_test_id;DESC v_emp_count;SELECT    *FROM    v_emp_count;-- 视图可以使用 CREATE OR REPLACE 来创建或覆盖,并可查询视图的定义。 CREATEOR 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_sFROM    emp_testGROUP 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_nameon student_ning7(name) ;select * from student_ning7where name = 'zhangsan' ;
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 猪肉烫火锅吃怎么办料 自制腊肠放干了怎么办 孕妇吃了4块腊肉怎么办 衣服沾了火锅味怎么办 皮包上有火锅味怎么办 芝士年糕裂开了怎么办 制作牛肉酱咸了怎么办 腌牛肉太咸了怎么办 八宝粥的拉环断了怎么办 八宝粥易拉罐拉环断了怎么办 吃完辣的胃难受怎么办 天天呆在家很烦怎么办 吃多了荔枝上火怎么办 猛犸牙牌子裂了怎么办 玩游戏电脑卡了怎么办 电脑打开卡在选项界面怎么办? 红警突然卡死怎么办 柯基不吃狗粮怎么办 貔貅嘴巴磕破了怎么办 开光貔貅牙磕了怎么办 玉貔貅鼻子碎了怎么办 开光的貔貅摔坏了怎么办 貔貅摔坏了耳朵怎么办? 貔貅摔坏了一点点怎么办 天猫删评价扣4分怎么办 暴风影音下载电视剧下载不了怎么办 fm2017引援电脑买了怎么办 退休时医保不够二十年怎么办 和的面迟迟不发怎么办 做面条的面发了怎么办 发不起来的面团怎么办 如果婚后买房离婚后财产怎么办 空腹体检前喝水了怎么办 莆田市风俗婴儿死了怎么办后事 上司给你换不好岗位怎么办 领导要把我调走怎么办 美国上庭遇法官退休案子怎么办 夫妻一套房离婚户囗怎么办 正营生不了副团怎么办 浅色衣服被染色了怎么办 解大便解不出来怎么办