基础sql语句总结(mysql)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyyCHyzzzz/article/details/64194287

准备

DROP TABLE IF EXISTS `grade`;

CREATE TABLE `grade` (
  `no` int(11) NOT NULL AUTO_INCREMENT,
  `grade` int(11) NOT NULL,
  PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;


insert  into `grade`(`no`,`grade`) values (1,90),(2,80),(3,70);


DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `no` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


insert  into `student`(`no`,`name`) values (1,'a'),(2,'b'),(3,'c'),(4,'d');

数据库中语句分为四类:

1.数据定义语言(DDL)

2.数据查询语言(DQL)

3.数据操作语言(DML)

4.数据控制语言(DCL)

数据增删改

插入数据

INSERT INTO student(NO,NAME) VALUES(5,"e") ;

删除

如果要清空表中的所有记录,可以使用下面的两种方法:

delete from student

truncate table student

删除某一条数据: delete from student where student.no = 5

delete ,truncate , drop 区别:

delete 是dml语句,操作会放到rollback segement中,事务提交之后才生效,如果有相应的触发器,执行的时候将被触发.而且 可以附带条件,更加灵活.

truncate和drop

两个都是ddl语句,操作立即生效,原数据不放到rollback segment中,不能回滚,操作不会触发trigger

速度(一般情况下) : drop > truncate > delete

数据修改

update student set student.name = "e" where student.no = 4

表字段操作

字段增加

alter table xxx(表名) add xxx(字段名) (字段类型)

字段修改

alter table xxx(表名) change xxx(旧字段名) xxx(新字段名) (字段类型)

字段删除

alter table xxx(表名) drop colum xxx(字段名)

数据查询(外连接 内连接)

内连接:

例子: select * from student,grade where student.no = grade.no

外连接: 分左外连接 和 右外连接

比如我们现在有两张表 imageimage

第一个表名为 grade 规定为左表 第二个表名为student 规定为右表

左连接:SELECT * FROM grade LEFT JOIN student ON grade.no = student.no

image

可以看到左边表有的数据一定会显示 而右边表的数据则有些不会显示

右连接:SELECT * FROM grade RIGHT JOIN student ON grade.no = student.no

image

左边表没有的数据 而右边表有 则会把左边表的数据变为NULL 右边表的数据完整输出

猜你喜欢

转载自blog.csdn.net/yyyCHyzzzz/article/details/64194287