> 文章列表 > 数据库MySql 2

数据库MySql 2

数据库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到任意个字符   _ 代表一个字符。