这篇文章旨在介绍mysql的增删改查中的基本操作
所有命令皆是以分号(;)结尾。
1.显示命令
在写增的有关命令前,我们更应该知道如何显示,这样有助于更好的检查我们的结果是否正确。
#显示数据库列表
show databases;#显示数据库中的数据表
use mysql; #在这里,mysql代指你需要使用的数据库名
show tables;#显示数据库的结构
describe 表名;#显示表中的记录
select * from 表名;#查看当前数据库
select database();
2.建立命令
建立分为建立数据库与建立数据表,
#建数据库
create database 数据库名;#建数据表
create table 表名(字段设定);#请注意,在建数据表前应该使用use 数据库名以指定数据库#添加数据
insert into 数据表名 values(数据);
#在这里,数据要跟字段的顺序相对应,也可指定字段
insert into 数据表名(字段名) values(数据);
#不能为null的数据不可空掉,这里要注意表建立时的字段定义
3.删除命令
删除命令也分为删库和删表。
- delete主要用于删除数据,它会删除表的数据但不会改变表。
- truncate主要用于删除数据,但保留表结构,且数据不可恢复,该命令也不能添加查询条件。
- drop主要用于删除结构,可以理解为格式化,彻底删除。
truncate在功能上与不带 where 子句的delete语句相同:二者均删除表中的全部行。但 truncate比 delete速度快,且使用的系统和事务日志资源少。delete语句每次删除一行,并在事务日志中为所删除的每行记录一项。truncate通过释放存储表数据所用的数据页来删除数据。
#删除数据库
drop database 数据库名;#删除数据表
drop table 数据表名;#将表中记录清空
delete from 数据表名;#删除指定条件的行
delete from 数据表名 where 指定条件;#也可以将delete改为truncate,但是truncate无法添加查询条件。truncate的删除原理是重新创建一个表,然后将原先的表删除。
4.改变命令
#更新一般使用update命令
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
#table_name是要更新的表名,column1和column2是要更新的列名,value1和value2是要更新的值,condition是更新的条件。
–例子
a.建库和建表以及插入数据
drop database if exists school; //如果存在SCHOOL则删除create database school; //建立库SCHOOLuse school; //打开库SCHOOLcreate table teacher //建立表TEACHER(id int auto_increment not null primary key,name char(10) not null,address varchar(50) default '深圳',year date); //建表结束//以下为添加内容insert into teacher values(1,'glchengang','深圳一中','1976-10-10');insert into teacher(name,address,year) values('jack','深圳一中','1975-12-23');#在建表中(1)将 ID 设为整数字段 int;让它每个记录自动加一,auto_increment ;不能为空 not null ;而且让他成为主字段 primary key(2)将 NAME 设为长度为 10 的字符字段(3)将 ADDRESS 设为长度 50 的字符字段,而且缺省值为深圳。varchar 和char 有什么区别呢,等以后再说。(4)将 YEAR 设为日期字段。
b.将表users中id为1的用户的name改为Alice
UPDATE users SET name = 'Alice' WHERE id = 1;
c.插入数据一条与多条
#插入一条数据
insert into teacher values(1,'glchengang','深圳一中','1976-10-10');#插入多条数据
INSERT INTO students (name, age)VALUES ('John', 20), ('Jane', 22),('Mike', 19);