数据库MySql 2
修改和删除表字段
修改
修改表名:ALTER TABLE 旧表名 RENAME 新表名,如
-- 修改表名
ALTER TABLE rxj RENAME RX
增加表的字段:ALTER TABLE 表名 ADD 属性 列属性,如
-- 增加表的字段
ALTER TABLE rx ADD age INT(11)
修改表的字段(重命名,修改约束):
ALTER TABLE 表名 MODIFY 属性 列属性 -- 修改约束
ALTER TABLE 表名 CHANGE 旧属性 新属性 列属性 -- 字段重命名
如
-- 修改表的字段(重命名,修改约束)
ALTER TABLE rx MODIFY age VARCHAR(11) -- 修改约束
ALTER TABLE rx CHANGE age age1 INT(11) -- 字段重命名
删除
删除表的字段:ALTER TABLE 表名 DROP 要删除的字段 -- 删除表的字段,如
ALTER TABLE rx DROP age1 -- 删除表的字段
删除表:DROP TABLE IF EXISTS 表名 -- 如果表存在就删除
DROP TABLE IF EXISTS rx -- 如果表存在就删除
MySql数据管理
外键【物理外键】
创建外键的第一种方式
CREATE TABLE IF NOT EXISTS `grade`(
`gid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年纪id',
`gname` VARCHAR(20) NOT NULL COMMENT '年纪名称',
PRIMARY KEY(`gid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8CREATE TABLE IF NOT EXISTS `student` (`id` INT NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`gid` INT(10) NOT NULL COMMENT '学生的年级', --外键`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',`emali` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (`id`),KEY `FK_gid` (`gid`),CONSTRAINT `FK_gid` FOREIGN KEY (`gid`) REFERENCES `grade`(`gid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3
创建外键的第二种方式
CREATE TABLE IF NOT EXISTS `grade`(
`gid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年纪id',
`gname` VARCHAR(20) NOT NULL COMMENT '年纪名称',
PRIMARY KEY(`gid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8CREATE TABLE IF NOT EXISTS `student` (`id` INT NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`gid` INT(10) NOT NULL COMMENT '学生的年级',`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',`emali` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb3ALTER TABLE `student` ADD CONSTRAINT `FK_gid` FOREIGN KEY(`gid`) REFERENCES `grade`(`gid`);
ALTER TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFERENCES 那个表(哪个属性);
DML语言【重点,建议背下来】
DML:数据库操作操作语言
- insert
- update
- delete
添加
语法:insert into 表名(字段名1,字段名2,字段名3) values('值1','值2','值3')
INSERT INTO `teacher`(`id`,`name`,`pd`) VALUES('2','来一沓Java','456789')
注:
- 字段和字段之间用英文的 , 隔开;
- 字段是可以省略的,但是后面的值必须要一一对应;
- 可以同时插入多条数据,values后面的值,需要用 , 隔开,即"values(),(),()";
- 如果不写表的字段,它会一一匹配;
修改
语法:update 表名 set 字段名 = 新值 where 条件
要修改多个字段值时,set 字段名 = 新值 , 字段名 = 新值 , 字段名 = 新值 where 条件
UPDATE `student` SET `name`='来一沓Java' , `pd`='123456' WHERE id = '1'
区间判断
操作符 | 含义 | 范围 | 结果 |
= | 等于 | 1=2 | false |
<>或!= | 不等于 | 1<>2或1!=2 | true |
> | 大于 | 1>2 | true |
< | 小于 | 1<2 | true |
<= | 小于等于 | 1<=2 | true |
>= | 大于等于 | 2>=1 | true |
BETWEEN..and.. | 在某个范围内 | [1,2] | |
AND | 与&&相同 | 1<2 AND 2>1 | true |
OR | 与 || 相同 | 1<2 OR 2>1 | true |
注意:
- 数据库的列尽量带上 ``
- 如果没有指定条件,则会修改所有的列
删除
delete 命令
语法:delete from 表名 条件
DELETE FROM `teacher` WHERE `id`='1'
TRUNCATE 命令
语法:TRUNCATE 表名
作用:完全清空一个数据库,表的结构和索引不会改变
delete和truncate的区别
相同点:都能删除数据,都不会删除表结构
不同点:
- truncate 重新设置 自增列 计数器会归零
- truncate 不会影响事务
- delete 不会影响自增
DQL查询数据【重点】
Data Query Language:数据查询语言
- 所有查询都用到它 select
- 简单的查询,复杂的查询它都可以做
- 数据库中最重要、最核心的语言
- 使用频率最高
查询全部的数据
SELECT * FROM `sqlday1`
查询指定字段
SELECT `id`,`name` FROM `student`
起别名 AS
SELECT `id` AS 学号,`name` AS 学生姓名 FROM `student`
数据去重
distinct
SELECT DISTINCT `t_id` FROM `student`
四、模糊查询
运算符 | 语法 | 描述 |
IS NULL | a is null | 如果操作符a为空,结果为真 |
IS NOT NULL | a is not null | 如果操作符a不为空,结果为真 |
BETWEEN AND | a between b and c | 若a在b和c之间,结果为真 |
Like | a like b | SQL匹配,若a匹配b,结果为真 |
In | a in (a1,a2,a3...) | 假设a在a1,或者a2...中的某个值中,结果为真 |
like结合:% 代表0到任意个字符 _ 代表一个字符。