【997755.com澳门葡京】表的笔录操作,0转变教材第一章MySQL高等查询

 

— 创立数量
CREATE DATABASE day2;
— 使用数据库
USE day2;
— 创制三个表格
CREATE TABLE stu(
id INT,
NAME VARCHAR(20),
sex VARCHAR(2),
age INT ,
address VARCHAR(30)
);

— 创立数据库
CREATE DATABASE mydb;
— 等号=,在set前边是赋值的意思,在WHERE前边则是相比较的情致
— 删除数据库
DROP DATABASE mydb;
— 创制学生表
CREATE TABLE o_student(

壹.单词部分

INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0);//指定插入的顺序


INSERT INTO bookcategory VALUES(1,'计算机',0);//按照默认的插入


INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0),(2,'xxx',3)(3,'xxxxx',4);//同时插入多条数据


INSERT INTO bookcategory SELECT * FROM test WHERE id>5//将查询结果插入表中


CREATE TABLE TEXT(

    category_id INT PRIMARY KEY AUTO_INCREMENT,

    parent_id INT NOT NULL

)AUTO_INCREMENT=5;    //auto_increment让这一列自动设置编号,默认初始值为,最后为设置初始值为5



ALTER TABLE bookcategory MODIFY category_id INT AUTO_INCREMENT=X//为已有表添加自增列



ALTER TABLE bookcategory MODIFY category_id INT;//去掉自增列


//有外键关系的话添加自增,要先去掉外键关系。


ALTER TABLE bookinfo DROP FOREIGN KEY fk_bcid//去掉外键


ALTER TABLE bookinfo ADD CONSTRAINT fk_bcid FOREIGN KEY(bookcdategory_id) REFERENCES bookcategory(category_id);//添加外键


SELECT price FROM bookinfo WHERE book_id=201501;//查询book_id为201501书的价格


SELECT * FROM readerinfo//查看读者信息表


SELECT xxx,xxx,xxx FROM readerinfo//查询指定列


SELECT xxx,xxx,xxx FROM readerinfo WHERE press='机械工业'//设置外加条件的查询


SELECT DISTINCT press FROM bookinfo;//显示不重复的查询


SELECT * FROM readerinfo WHERE age IS NULL;//查询为空的列


UPDATE readerinfo SET balance =balance -18.9*0.05 WHERE card_id='xxxxxxxx'//更新readerinfo这个表中的card_id为xxx的balance


DELETE FROM readerinfo WHERE card_id='201531513133'//单表数据记录的删除,不加where则为全部删除


TRUNCATE TABLE readerinfo;//删除原表再创建空表


SELECT COUNT(*) FROM readerinfo WHERE sex='男'//对查询结果的分组


SELECT sex FROM readerinfo GROUP BY sex;//查询有多少种性别


SELECT sex COUNT(*) FROM readerinfo GROUP BY sex;//统计每种性别的人数


SELECT sex FROM readerinfo GROUP BY sex WHERE COUNT(sex)>3;//也可以加限制条件。统计每种性别的人数


SELECT     * FROM bookinfo ORDER BY price//对查询结果排序,默认为升序


SELECT     * FROM bookinfo ORDER BY price,store;//price相同的,按照库存排序


SELECT * FROM bookinfo ORDER BY price ASC,store DESC;//asc升序,desc降序


SELECT * FROM bookinfo LIMIT 3;//limit限制查询数量,偏移量为0开始,显示前三行


SELECT * FROM bookinfo LIMIT 2,2;//显示第二条语句的后两个语句


SELECT store,COUNT(*) FROM bookinfo GROUP BY store ORDER BY store DESC LIMIT 4;//统计库存个数,并降序排序,并查看前四条语句

— 查看表格的组织
DESC stu;
— 添加列
ALTER TABLE stu ADD java INT;
ALTER TABLE stu ADD jsp INT

— 將当前列设置为主键列(表示无法重复也许为空)
— AUTO_INCREMENT表示将近来列设置为自动整张
— 该列的值由dbns分配,能够确定保障不另行
id INT PRIMARY KEY AUTO_INCREMENT,– 编号
sname VARCHAR(20),– 姓名
birthday DATE, — 生日
ptype ENUM(‘dianqi’,’huoiba’),–enum枚举类型,
该列的值只能在’dianqi’,’huoiba’选择
phone VARCHAR(20),
money DOUBLE
);
— 插入数据 插入数据是只要未有加money,默以为null
INSERT INTO t_student(sname,birthday,phone,money)
VALUES(‘长啥’,’1980-02-25′,’15451477144′,14255),
(‘长啥’,’1980-02-25′,’15451477144′,14255),
(‘长啥’,’1980-02-25′,’15451477144′,14255);
INSERT INTO t_student(sname,birthday,phone,money)
VALUES(‘sad’,’187伍-0贰-1二’,’12454413四’,1450八);– 2次增多两个
— 查询表中具有数据(*代表查询表中有着数据)
SELECT *FROM t_student;
— 删除表
DROP TABLE y_student;+

①constraint约束②foreign外键③references参考

 

INSERT INTO stu (id,NAME,sex,age,address,java,jsp)
VALUES(1,’小明’,’男’,25,’山东2′,78,99);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp)
VALUES(2,’小黄’,’男’,23,’河南’,65,55);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp)
VALUES(2,’小黄’,’女’,23,’太远’,65,55);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp)
VALUES(4,’小黄’,’女’,23,’太远’,45,85);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp)
VALUES(NULL,NULL,”,23,’太远’,45,85);

— 删除id为肆的商品 假如不加 WHERE id=4正是剔除全体,前面要接分号
DELETE FROM y_student WHERE id=4;
— 删除 长啥 前面不接分号也得以加分号
DELETE FROMy_student WHERE sname=’长啥’
-改换年龄
update s_student set page=20 where sname=’张浩’;
–同时供给改三个的中等打 ,号
update s_student set page=20,birthday=’1982=12-14′ where =’张浩’
–查询所哟的商品
select * FROM t_student;

④subquery子查询⑤inner内部的⑥join连接

 

DELETE FROM stu;
— 一 查询全数的类
SELECT * FROM stu;

–查询全部商品的价钱(那里将*换为了sname,price)
select sname,price from t_student;
–查询全体的系列distinct表示去除重复记录
select distinct ptype from t_student
–查询前3条纪录(第二个参数0表示为开端记录数从0初叶
第二个参数表示展现记录数。 0开始展现一个)
select * from t_student limit 0,3;
–查询价格在一千-3000之间的货物

二.预习部分

INSERT INTO bookcategory(category_id,category,parent_id)
VALUES(一,’Computer’,0);//钦定插入的逐条
INSERT INTO bookcategory VALUES(壹,’Computer’,0);//依据暗许的插入
INSERT INTO bookcategory(category_id,category,parent_id)
VALUES(壹,’Computer’,0),(二,’xxx’,3)(三,’xxxxx’,肆);//同时插入多条数据
INSERT INTO bookcategory SELECT * FROM test WHERE
id>5//将查询结果插入表中
CREATE TABLE TEXT(
category_id INT PRIMARY KEY AUTO_INCREMENT,
parent_id INT NOT NULL
)AUTO_INCREMENT=5;
//auto_increment让那一列自动安装编号,私下认可伊始值为,最终为设置开始值为五
ALTER TABLE bookcategory MODIFY category_id INT
AUTO_INCREMENT=X//为已有表增添自增列
ALTER TABLE bookcategory MODIFY category_id INT;//去掉自增列
//有外键关系的话加多自增,要先去掉外键关系。
ALTER TABLE bookinfo DROP FOREIGN KEY fk_bcid//去掉外键
ALTER TABLE bookinfo ADD CONSTRAINT fk_bcid FOREIGN
KEY(bookcdategory_id) REFERENCES
bookcategory(category_id);//加多外键
SELECT price FROM bookinfo WHERE
book_id=201501;//查询book_id为二零一四0一书的标价
SELECT * FROM readerinfo//查看读者新闻表
SELECT xxx,xxx,xxx FROM readerinfo//查询钦定列
SELECT xxx,xxx,xxx FROM readerinfo WHERE
press=’机械工业’//设置外加条件的查询
SELECT DISTINCT press FROM bookinfo;//突显不重复的询问
SELECT * FROM readerinfo WHERE age IS NULL;//查询为空的列
UPDATE readerinfo SET balance =balance -18.9*0.05 WHERE
card_id=’xxxxxxxx’//更新readerinfo这些表中的card_id为xxx的balance
DELETE FROM readerinfo WHERE
card_id=’二〇一四31513133’//单表数据记录的删减,不加where则为全部剔除
TRUNCATE TABLE readerinfo;//删除原表更创制空表
SELECT COUNT(*) FROM readerinfo WHERE sex=’男’//对查询结果的分组
SELECT sex FROM readerinfo GROUP BY sex;//查询有稍许种性别
SELECT sex COUNT(*) FROM readerinfo GROUP BY sex;//总括每一种性别的人数
SELECT sex FROM readerinfo GROUP BY sex WHERE
COUNT(sex)>3;//也得以加限制标准。总计每个性其余人头
SELECT *997755.com澳门葡京 , FROM bookinfo O奥迪Q3DEMurano BY price//对查询结果排序,默感觉升序
SELECT * FROM bookinfo O昂CoraDEEvoque BY
price,store;//price同样的,依照仓库储存排序
SELECT * FROM bookinfo ORDER BY price ASC,store
DESC;//asc升序,desc降序
SELECT * FROM bookinfo LIMIT
三;//limit限制查询数量,偏移量为0发端,彰显前三行
SELECT * FROM bookinfo LIMIT 二,二;//显示第二条语句的后八个语句
SELECT store,COUNT(*) FROM bookinfo GROUP BY store O凯雷德DEQX56 BY store DESC
LIMIT 四;//计算仓库储存个数,并降序排序,并查看前四条语句

— 贰. 查询钦点的列
SELECT id,NAME,sex FROM stu;

select * from t_student WHERE price>=10 and price<=2000;
查询id是1和9的商品
select * from t_student where id=7orid=9;
select * from t_student where id in(7,9);
–查询全部带“机”的货品(模糊查询)
select * from t_student where pname like ‘%机%’;
–全部商品根据价钱排序
select * from t_student order by createdate;–升序
select * from t_【997755.com澳门葡京】表的笔录操作,0转变教材第一章MySQL高等查询。student order by createdate desc;–降序 价格desc
–查询未有声场日期的产品(为null值不能一贯用等号接null)
select * from t_student WHERE createDate is null

一.修改表SQL语句的第3字是哪些

— 叁.询问的时候增常量列
SELECT id,NAME,sex,address, ‘java2版’ FROM stu;
— 四.询问的时候起八个外号
SELECT id AS ‘编号’ ,NAME AS’姓名’,sex AS ‘姓别’,’java1版’ AS ‘班级’
FROM stu;

通配符’—’表示其他单个字符,‘%’表示一个或然八个字符 模糊查询有例子
–查询年龄最大的学员
select *from t_student order by s_age desc limit 0,1;

RENAME 修改表名CHANGE修改字段

— 5.询问的时候实行合并钦定的列
— 必要 : 在询问每一种学员的java和jsp总成绩

— 增多物品的辩论,200以下,显示低价商品
— 200-一千,展现中间商品,一千以上显示高级商品

2.哪些关键字能够按钦命行数再次回到查询结果集

SELECT id,NAME,sex,age,address, (java+jsp) AS ‘总成绩’ FROM stu;
— 在统1的时候 合并的只可以举行数字类型
SELECT id ,NAME,sex ,(address+sex) AS ‘总’ FROM stu;
— 陆 查询时去除重复的记录

SELECT p.*,(CASE WHEN p.price<200 THEN ‘低端商品’
WHEN p.price>200 AND p.price<1000 THEN ‘中档商品’
ELSE ‘高等商品’ END)
info FROM t_product p;

LIMIT

— 查询学生的性别 男 女
SELECT DISTINCT sex FROM stu;

— 电器类涨价百分之20,化妆品涨价百分子10,食物涨价百分之10
UPDATE t_product SET price=(
CASE WHEN ptype=’电器’ THEN 1.2*price
WHEN ptype =’化妆品’ THEN 1.1*price
WHEN ptype=’食品’ THEN 1.1*price END);

三.表连接都能够用子查询替换吗

— 柒 规则查询 where
— 逻辑条件 and(与 和) or(也许)
— 须求 查询 id为一 要么性别为女
SELECT id,NAME,sex,age,address,java,jsp FROM stu WHERE id=1 OR
sex=’女’;

— 总计商城中有多少商品

可以

— 须求 查询 id 为 壹 并且性别为男 音信
SELECT id,NAME,sex,address,java,age FROM stu WHERE id=1 AND sex=’男’;
— 相比标准 > < >= <= =(等于) <>(不等于) between
…and… 等价于 》= and <=)

SELECT COUNT(*) FROM t_product;

count(列名)只计算该列的非空记录如增多一个商品未有写价格用count总结就会不算空的
— 总括百货店中有微微商品
SELECT COUNT(*) FROM t_product;

— 总括全体商品的总价
SELECT SUM(price) FROM t_product;

— 计算商品的标价最大值和最小值
select max(price),min(price) from t_product;

— 聚合函数sum max count min sum/avg

–该列非空的平均值 avg是享有的平均值
SELECT SUM(price)/AVG(price) FROM t_product;

— 总计各样品种的货色数量(注意:分组查询中能够在select
中出现的列,只能是聚合函数和分组字段)
SELECT ptype,COUNT(pname)FROM t_product GROUP BY ptype;
— 总括各类连串商品的品均价格
SELECT ptype,AVG(price) FROM t_product GROUP BY ptype;
— 查询有3个可能三个以上商品的货品类名
SELECT ptype,COUNT(pname) c FROM t_product GROUP BY ptype HAVING
c>=3;

叁.练习部分

— 查询全数的java战绩超乎陆伍的是、学生音信

— 查询品均价格在500元以上的货品

(where运维在分组以前后边不能够跟聚合函数,having运维在分组之后,只好做聚合函数的过滤)
SELECT ptype FROM t_product GROUP BY typye;
SELECT ptype FROM t_product GROUP BY ptype HAVING AVG(price)>500;

SELECT ptype ,AVG(price) a FROM t_product GROUP BY ptype HAVING
a>500;

CREATE TABLE t_man(
id INT PRIMARY KEY AUTO_INCREMENT,
manName VA揽胜CHA中华V(20) NOT NULL, — 设置该列非空
sex VA卡宴CHA帕杰罗(20) DEFAULT ‘男’– 设置暗中同意值为男
);
INSERT INTO t_man(manName)VALUES(‘张浩(Zhang Hao)’);– 该列未有加塞儿性别 默以为男
INSERT INTO t_man(manName)VALUES(‘李4′,’女’);–
改列有性别插入,那么插入该值
INSERT INTO t_man(sex)VALUES(‘男’);– 就算是不可能为空
不过姿势提醒,未有加塞儿name数据 还是会运作出空数据

CREATE TABLE t_man(
id INT PRIMARY KEY AUTO_INCREMENT,
manName VA大切诺基CHA奥迪Q7(20) NOT NULL, — 设置该列非空
sex VA奥迪Q3CHACR-V(20) DEFAULT ‘男’– 设置暗中同意值为男
);
INSERT INTO t_man(manName)VALUES(‘张浩(Zhang Hao)’);– 该列未有加塞儿性别 默以为男
INSERT INTO t_man(manName,sex)VALUES(‘李四’,’女’);–
改列有性别插入,那么插入该值

 

— 房间表
CREATE TABLE t_room(
id INT PRIMARY KEY AUTO_INCREMENT,
address VARCHAR(20),
price INT,
manId INT
);
— 加多外键的约束fk_1,让t_room中的manId列,必须引用t_man的id主键
ALTER TABLE t_room ADD CONSTRAINT fk_1 FOREIGN KEY(manId)
REFERENCES t_man(id);
出于有外建约束存在,所以有地下外建,则插入不成事
INSERT INTO t_room(addrress ,price,manId)VALUES(‘科华北路’,5222贰,一);–
准确而主键有一那一个id
INSERT INTO t_room(addrress ,price,manId)VALUES(‘科华北路’,5222二,陆);–
报错id未有六

— 删除了那几个之外键约束
ALTER TABLE t_room DROP FOREIGN KEY fk_1;

 

— 总计市肆中有微微商品
SELECT COUNT(*) FROM t_product;

 

  1. 开创数据表,并实现对表的修改操作

SELECT * FROM stu WHERE java>=65;
— 查询java成绩高于等于65 并且小于等于7伍

#上机1
USE test;
CREATE TABLE person(
number INT(4) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL,
sex CHAR(2),
bornDate DATETIME
);
ALTER TABLE person RENAME tb_person;
ALTER TABLE tb_person DROP `bornDate`;
ALTER TABLE tb_person ADD bornDate DATETIME;
ALTER TABLE tb_person CHANGE number id BIGINT;

SELECT * FROM stu WHERE java>=65 AND java<=75;
— 此外一种写法
SELECT * FROM stu WHERE java BETWEEN 65 AND 75
— 查询java不等于65
SELECT *FROM stu WHERE java<>65;

二.用到SQL语句为myschool数据库中的result表增加约束

— 判空查询 is null not null =”“ 《》”“

#上机2
USE myschool;
ALTER TABLE result ADD CONSTRAINT re PRIMARY KEY
result(`studentNo`,`subjectNo`,`exameDate`);
ALTER TABLE result ADD CONSTRAINT fk_result_student FOREIGN KEY
(studentNo) REFERENCES student (studentNo);

— 要求: 查询姓名字为空音讯 (空 包蕴null =””)
SELECT * FROM stu WHERE NAME IS NULL OR NAME=”;
— 求出性别不为空字符的
SELECT * FROM stu WHERE sex <>” OR NOT NULL;

三.为学生表,科目表,战表表增多数据

— 模糊查询

#上机3
USE myschool;
INSERT INTO `subject` (`subjectName`, `classHour`, `gradeID`)
VALUES
(‘HTML’, ‘160’, ‘1’),
(‘Java OOP’, ‘230’, ‘2’);

— like
— % 相称放肆字符
— _10分1个字符

4.改变学生表,科目表数据

— 查询姓名字为 ‘小’学生新闻
SELECT * FROM stu WHERE NAME LIKE ‘小%’;
— 查询姓名叫’小 ‘且小的末尾唯有一个字符

#上机4
USE myschool;
INSERT INTO `myschool`.`result` (`studentNo`, `subjectNo`,
`exameDate`, `studentResult`) VALUES (‘1002’, ‘1’, ‘2014-8-8′,
’78’),
(‘1003’, ‘2’, ‘2017-7-7′, ’98’),
(‘1004’, ‘1’, ‘2015-8-8′, ’78’),
(‘1005’, ‘2’, ‘2013-8-8′, ’78’),
(‘1006’, ‘1’, ‘2017-8-8′, ’66’),
(‘1007’, ‘1’, ‘2014-8-8′, ’55’),
(‘1008’, ‘1’, ‘2014-8-8′, ’13’),
(‘1009’, ‘1’, ‘2014-8-8′, ’89’);
UPDATE student SET eamil=’stu200000@163.com’,loginPwd=’000′ WHERE
studentNo=’20000′;
UPDATE `subject` SET `classHour`=`classHour`-10 WHERE
`classHour`>200 AND `subjectNo`=1;
DROP TABLE IF EXISTS student_grade1;
CREATE TABLE student_grade1(SELECT
`studentName`,`sex`,`bornDate`,`phone` FROM student WHERE
`gradeID`=1);

SELECT * FROM stu WHERE NAME LIKE ‘小_’;
— 八 聚合查询 (使用聚合函数的询问)
— 常用的函数 sum() avg() max() min() count()

伍.询问学生音信(查询201六年八月11陆目前5名 的学生的学号和分数)

— 求出java的成绩
SELECT SUM(java) AS ‘java总成绩’ FROM stu;

#上机5
SELECT `studentNo`,`studentResult` FROM `result` WHERE
`exameDate`<‘2016-2-17’ ORDER BY studentResult DESC LIMIT 5;

— 求出java的平均分
SELECT AVG(java) AS’平均分’ FROM stu;

SELECT studentName,(YEAR(NOW())-YEAR(bornDate)) AS age,bornDate,phone
FROM student
WHERE sex=’女’
ORDER BY bornDate ASC
LIMIT 1,6;

— 求出最高分
SELECT MAX(java) AS ‘最高分’ FROM stu;
— 总计出一同有多少条记下 cont(字段) 不包括null成分
SELECT COUNT(*) FROM stu;

SELECT YEAR(bornDate) AS nian,COUNT(studentNo) AS num FROM student GROUP
BY bornDate HAVING COUNT(studentNo)>=2;

— 九 分页查询 limit

SELECT
MAX(`studentResult`),MIN(`studentResult`),AVG(`studentResult`)
FROM `result` WHERE `exameDate`=’2016-02-17′ GROUP BY `studentNo`;

— 初阶行 从0发轫开始展览数
— 每页突显多少条记录 (当前页-1)*每页展现的记录数

6.查询内定学生的考试成绩

— 查询一.2 条记下 1页显示两条记下
— 查询的是率先页数据
SELECT * FROM stu LIMIT 0,2

#上机6
SELECT MAX(`studentResult`),MIN(`studentResult`) FROM result
WHERE `exameDate`=(SELECT `exameDate` FROM `result` ORDER BY
exameDate DESC LIMIT 1) AND
`subjectNo`=(SELECT `subjectNo` FROM `subject` WHERE
`subjectName`=’Logic Java’);
#select max(exameDate) from result

— 查询第三页

7.查询某学期开设的科目

SELECT * FROM stu LIMIT 2,2

#上机7
SELECT subjectName FROM `subject` 
WHERE subjectNo IN(SELECT subjectNo FROM `subject` 
WHERE gradeId=(SELECT gradeId FROM grade WHERE gradeName=’S1′));

— 查询第1页
SELECT * FROM stu LIMIT 4,2;
— 查询第5页
SELECT * FROM stu LIMIT 6,2

捌.询问某课程以来2次考试缺考的学生名单

— 10 排序查询
— order by
— asc 正序 升序
— desc 倒序
— 默许的图景下时服从数据插入的顺序来张开询问的

#上机8
SELECT `studentName` FROM student WHERE `studentNo` IN(SELECT
`studentNo` FROM student WHERE studentNo NOT IN(SELECT `studentNo`
FROM `result`
WHERE `subjectNo`=(SELECT `subjectNo` FROM `subject` WHERE
`subjectName`=’HTML’) AND
`exameDate`=(SELECT `exameDate` FROM `result` WHERE
subjectNo=(SELECT `subjectNo` FROM `subject` WHERE
`subjectName`=’HTML’)
ORDER BY exameDate DESC LIMIT 1)));

— 须求 java战表遵照从低到高举行询问

5.总括部分

SELECT * FROM stu ORDER BY java ASC;
— 必要 jsp的实际业绩重高到低实行排序

多表联查完毕的二种方式:

SELECT * FROM stu ORDER BY jsp DESC;

①表连接

— 出头排序格局进行询问
— jaba 依据正序举行 jsp依据反序

②子查询

SELECT * FROM stu ORDER BY java ASC ,jsp DESC;

应接提问,接待指错,招待研讨学习音信 有需求的私聊 公布斟酌就能够都能还原的

— 1一 分组查询
— group by
— 查询男女”“ 的人口
— 男 2

  原版的书文在果壳网有亟待能够联系扣扣:22656829玖柒

— 女 2
— ”“ 2
SELECT sex,COUNT(*) FROM stu GROUP BY sex;
— 12 分组之后 举行刷选

— 查询总人数抢先一个的性别 分组之后 无法使where 使用having
SELECT sex ,COUNT(*) FROM stu GROUP BY sex HAVING COUNT(*)>=3;

SELECT * FROM stu;

— 数据的约束
— 暗中认可值 当用户使用暗中同意值的字段不插入数据的时候 就是用暗中认可值
— 对私下认可值字段插入数据的时候 null是能够插入

CREATE TABLE emp(
id INT,
NAME VARCHAR(20),
address VAOdysseyCHA福特Explorer(10) DEFAULT ‘福建省平顶山市’
)

INSERT INTO emp VALUES(1,’小明’,”);
SELECT * FROM emp;
DROP TABLE emp;

— 非空 空 ‘’
— 限制字段须求求有值 字段必须要有数据 无法查入null值

CREATE TABLE student(
id INT NOT NULL,
NAME VARCHAR(20)
);
INSERT INTO student VALUES (”,’小黄’);
SELECT * FROM student;
DROP TABLE student;

— 唯一
— 唯1能够插入null元素 能够插入null成分
CREATE TABLE stu1(
id INT UNIQUE,– 唯一
NAME VARCHAR(20));
INSERT INTO stu1 VALUES(1,’zhangsan’);
INSERT INTO stu1 VALUES(NULL ,’lis’);
SELECT * FROM stu1;
DROP TABLE stu1;

— 主键
— 非空+唯一性
— 平时状态下 每一张表都会安装一个字段 为主键
用来代表表的每条记下都唯1的
CREATE TABLE stu2(
id INT PRIMARY KEY,– 主键
NAME VARCHAR(20));

INSERT INTO stu贰 VALUES (壹,’wangwu’);– 违反了字段的唯一性Duplicate
entry ‘1’ for key ‘PGL450IMAOdysseyY’
SELECT * FROM stu2;
INSERT INTO stu2 VALUES(NULL,’lisi’);– 违反了字段的非空约束 Column ‘id’
cannot be null

— 自增长
— 字段不用举办赋值 能够活动的扩充 每趟增添一

CREATE TABLE stu3(
id INT PRIMARY KEY AUTO_INCREMENT, — 自增长 从0开始
NAME VARCHAR(10)
)

DROP TABLE stu3;

INSERT INTO stu3 (NAME)VALUES(‘小黄’);

SELECT * FROM stu3

DELETE FROM stu3;

TRUNCATE TABLE stu3;

— 外键

— 当用有二种表的施用举办封锁数据
— 创建二个部门表
— 数据冗余相比较高的时候 使用外键 表与有关系

— (主表)
CREATE TABLE dept(
id INT PRIMARY KEY AUTO_INCREMENT,
deptname VARCHAR(30)

)
DROP TABLE dept;

INSERT INTO dept(deptname) VALUES(‘技术部’);
INSERT INTO dept(deptname) VALUES(‘财务部’);
INSERT INTO dept(deptname) VALUES(‘秘书部’);
INSERT INTO dept(deptname)VALUES(‘人事部’)

SELECT * FROM id=7 WHERE id=3;
SELECT * FROM dept;
— 员工表
— (副表)
CREATE TABLE employee (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
deptid INT,
— 声美赞臣个外键

— 外键名称 — 外键 –参考主表(字段)
CONSTRAINT employee_dept_fk FOREIGN KEY (deptid) REFERENCES dept(id)
);

DROP TABLE employee

INSERT INTO employee (NAME,deptid) VALUES(‘张三’,’1′);

INSERT INTO employee (NAME,deptid) VALUES(‘李四’,’3′);

INSERT INTO employee (NAME,deptid) VALUES(‘王五’,’2′);
INSERT INTO employee(NAME,deptid)VALUES(‘赵六’,5);

UPDATE employee SET deptid=3 WHERE id=1;

SELECT * FROM employee;
— 在副表当中创造外键
— 被封锁的表变为副表 约束外人的表被成为主表
— 主表的参照字段一般景况下都以主键

— 增添数据 : 先增添主表 ,在抬高副表
— 修改数据 ” 先修改副表 在更动主表
— 删除数据 先删除副表 在剔除主表

— 级联操作 级联合检查询 jdbc html

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website