mysql 的数据管理

外键

CREATE TABLE IF NOT EXISTS `student2`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT'姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(20)NOT NULL DEFAULT '女' COMMENT'性别',
`birthday` DATETIME DEFAULT  NULL COMMENT'出生日期',
`gradeid` INT(4) NOT NULL COMMENT '年级id',
`address` VARCHAR(100) DEFAULT NULL COMMENT'地址',
`email` VARCHAR(50) DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY (`id`),
KEY `FK_gradeid`(`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) 
)ENGINE INNODB DEFAULT CHARSET=utf8CREATE TABLE `grade`(
`gradeid` INT(4) NOT NULL AUTO_INCREMENT COMMENT '年级id',
`gradename` VARCHAR(10) NOT NULL COMMENT'年级名称',
PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式:

创建表时没有外键,通过修改表添加外键

ALTER TABLE 表名

ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列)REFERENCES 被引用的表名(字段名);

备注:被引用的表不能直接删除,要先删除引用它的表才能正确删除

======================================================================

DML 语言数据操作语言

  • insert
  • update
  • delete

======================================================================

添加insert

INSERT INTO 表名(字段1,字段2,'''')values('值1'),('值2')

INSERT INTO `grade`(`gradename`) VALUES('大四')

插入多个字段

INSERT INTO `grade`(`gradename`) VALUES('大三'),('大二')

INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES('','',''),('','','')

注意事项:

1.字段和字段之间使用英文逗号隔开

2.字段是可以省略的,但后面的值必须要一一对应

3.可以同时插入多条数据,values后面的值,需要使用,隔开

=======================================================================

修改update

UPDATE `student` SET `name`='chris' WHERE id=1  #修改id为1的人的名字

不指定条件的情况下,会改动所有的表

修改多个属性,用逗号隔开

UPDATE `student` SET `name`='chris',`email`='223673773@qq.com' WHERE id=1

where子句运算符 id等于某个值,大于某个值,在某个区间进行修改

操作符

含义

范围

结果

=

等于

5=6

false

<>或!=

不等于

5<6

true

>

 

 

 

<

 

 

 

<=

 

 

 

>=

 

 

 

BETWEEN...and...

在某个范围内

 

【2,5】

AND

&& 并

5>1 and 1>2

false

OR


5>1 or 1>2

true

注意点:

  • colum_name 是数据库的列,尽量带上``
  • 筛选的条件,如果没有指定,会修改所有的列
  • value是一个具体的值也可以是一个变量
  • 多个设置的属性之间,使用逗号隔开
  • UPDATE `student` SET `birthday`='CURRNT_TIME' WHERE `name`='长江7号' AND sex='女'

========================================================================

删除delete

DELETE FROM `student 

delete from 表名 where 条件

DELETE FROM `student` WHERE id=1;

 

TRUNCATE命令 完全清空一个数据库表,表的结构和索引约束不会变

TRUNCATE `student`

区别:

  • 相同点:都能删除数据,都不会删除表结构
  • 不同:重新设置 自增列计数器会归零
  • TRUNCATE 不会影响事务

=================================================

CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO `test` (`coll`) VALUES('1'),('2'),('3')
DELETE FROM `test`  --不会影响自增
TRUNCATE TABLE `test` --自增会归零

=======================================

查询 select

指定查询字段 SELECT 字段 FROM 表名

SELECT * FROM student2
SELECT * FROM student2
SELECT `name`,`pwd` FROM student2

数据库外键java注解 数据库外键语句怎么写_数据库外键java注解

 


 

别名,给结果起一个名字

SELECT `name` AS `名字`,`pwd`  AS `密码` FROM student2 

数据库外键java注解 数据库外键语句怎么写_数据库外键java注解_02

 


 

函数

SELECT CONCAT('名字:',`name`) AS  新名字 FROM student2 

数据库外键java注解 数据库外键语句怎么写_外键_03