【MySql高级指令】MySql修改表名、字段、添加主键、插入单多行数据

SQL高级 (一)
修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
修改字段
ALTER TABLE 表名 CHANGE 原字段 新字段  数据类型 NOT NULL;
添加字段
ALTER TABLE action_log ADD birthDay COMMENT VARCHAR(100);
删除指定字段
ALTER TABLE action_log DROP COMMENT;
添加主键
ALTER TABLE action_log ADD CONSTRAINT pk_action_log PRIMARY KEY action_log(id);

SQL高级(二)

1.插入单行数据
INSERT INTO checkitem (checkitemName,checkitemCost)
VALUES('血常规',30)
注意列名字段要与列值一一对应,数据类型要一致,有多少列字段就应该有多少列值
2.多行插入数据
INSERT INTO checkitem (checkitemName,checkitemCost)
VALUES('血常规',30),('尿常规',20),('血脂,血糖检查',25);
3.将查询结果插入新表(备份)

1.手动创建表

2.通过语句

INSERT INTO 新表 VALUES
SELECT p.patientName,p.gender,p.phoneNum,p.email FROM 旧表;

要使用该语句执行必须要手动创建表结构

3.自动创建新表进行备份

CREATE TABLE 新表名
(SELECT p.patientName,p.gender,p.phoneNum,p.email FROM 要备份的表名);
4.更新数据(修改)
注意点:如果where条件不加会修改掉整张表的全部数据,如果有多列以逗号隔开。
UPDATE patient(表名) SET patientName='李蕾',email='lilei@qq.com'
where patientID = 3
5.删除表数据
DELETE FROM patient WHERE patientID = 4;
6.删除所有列的数据
会重置自动增长列
TRUNCATE TABLE patient;
7.删除某一列列的数据
UPDATE patient SET patient.address = '';

SQL高级(三)

子查询
SELECT * FROM patient p 
WHERE p.birthDate < (SELECT p1.birthDate FROM patient p1 WHERE p1.patientName = '姚维新');
SELECT * FROM prescriptiom p
WHERE p.checkItemID = (
			SELECT c.checkitemID 
			FROM checkitem c	
			WHERE c.checkitemName = '血常规')
AND p.patientID = (
			SELECT p1.patientID 
			FROM patient p1
			WHERE p1.patientName = 'hapo')
			ORDER BY P.examDate DESC LIMIT 0,1;
IN

适合于子表比主表数量小

EXISTS

适合于主表比子表数量小

写SQL要遵循小表驱动大表
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值