库操作
create database my_db charset=utf8 collate=utf8_general_ci; //新增数据库
drop database my_db; //删除数据库
alter database my_db charset = utf8 collate=utf8_bin; //修改数据库(只能修改库选项(字符集和校对集),库名不可修改)
show databases like 'my%'; //查看数据库
show create DATABASE my_db; //查看数据库的创建语句
表操作
create table if not exists user (
id int(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
age int(11) DEFAULT NULL
); //新建数据表(AUTO_INCREMENT:设置自增时字段类型必须为int)
drop table if exists user; //删除数据表
(可以一次性删除多张表:drop table 表名1,表名2......;)
rename table user to user1; //修改表名:将 user表 的表名改成 user1
alter table user charset=utf8 collate=utf8_general_ci engine=INNODB; //修改表选项:字符集,校对集和存储引擎
alter table user add sex int(11) DEFAULT NULL; //新增字段
alter table user drop sex; //删除字段【警告:如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)】
alter table user modify age varchar(18) NOT NULL; //修改字段(修改数据类型或者属性)
alter table user change age age1 int(11); //重命名字段(age 旧字段名;age1 新字段名;int(11) 原数据类型)
show tables like 'user%'; //查看表
show create table user; //查看表的创建语句
show columns from user; //查看表结构:查看表中的字段信息
数据操作
新增数据
可以一次插入一条或多条数据,凡是非数值数据,都需要使用引号(建议是单引号)包裹。
在给全表字段插入数据时,可以不指定字段列表,但数据的值出现的顺序必须与表中设计的字段出现的顺序一致。
insert into user values('002','二号',22);
insert into user values('003','三号',33),('004','四号',44),('005','五号',55);
在给部分字段插入数据时,需要选定字段列表,字段列表出现的顺序与字段的顺序无关;但是值列表的顺序必须与选定的字段的顺序一致。
insert into user(name) values('小米'),('华为'),('苹果'),('魅族'),('金立');
删除数据
delete from user where name='小米';
修改数据
update user set name='iPhone',age=38 where name='苹果';
查看数据
select * from user where name like '_号';
视图 【除了创建/修改视图的语句外,其它操作语句和表一致】
创建视图
create view view_user(id,name)
as
select id,name from user;
删除视图
删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据.
drop view if exists view_user;
修改视图
create or replace view view_user(name,age)
as
select name,age from user where name like '_号';
或者
alter view view_user(name,age)
as
select name,age from user where name like '_号';
查看视图
select * from view_user where name like '_号';
更新视图
更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据,都是对原表来进行操作。因为视图是一个虚拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。超出了 范围,就不能更新。
insert into view_user values('华硕',10),('联想',15),('微星',20); //插入
update view_user set name='飞行堡垒',age=8 where name='五号'; //更新(条件是根据视图数据而言,而不是原表)
delete from view_user where name='三号'; //删除