库级操作
查看数据库 show databases;
创建数据库 create database [if not exists] 库名;
删除数据库 drop database 库名;
进入数据库 use 库名;
查看存储引擎 show engines;
表级操作
查看表 show tables;
创建表 create table if not exists 表名(表结构);[表结构字段名必须要有数据类型]
约束条件 default 默认,not null非空,unique唯一,auto_increment自增长,primary key主键,foreign key外键
删除表 dorp table 表名;
查看表结构 show create table 表名;\desc 表名;
修改表
1.修改表名
alter table 旧表名 rename [to] 新表名;
2.修改字段的数据类型
alter table 表名 modify 字段名 数据类型;
3.修改字段名和字段类型(如果不修改字段类型,新字段类型上填回之前的)
alter table 表名 change 旧字段名 新字段名 新数据类型;
4.增加字段(after 是字段增加的位置 不填默认在最后,first是首字段)
alter table 表名 add 字段名 数据类型 [完整性约束条件] [first | after 字段名];
5.删除字段
alter table 表名 drop 字段名;
6.修改字段的排列位置
alter table modify 字段名 数据类型 first | after 字段名;
alter table change 字段名 新字段名(与旧的一样) 数据类型;
…灵活运用
7.更改表的存储引擎
alter table 表名 engine=存储引擎名;【存储应请InnoDB | MyISAM | MEMORY】
8.删除表的外键约束
alter table 表名 drop foreign key 外键别名;
9.增加及删减字段名的约束条件
alter table 表名 change 字段 字段 数据类型 约束条件;
…灵活运用
插入 、更新、删除数据
1.为表的所有字段插入数据
insert into 表名 values(这是相应字段的值,看好对应的数据类型)
2.为表的指定字段插入数据
insert into 表名(字段名1,字段名2…) values(值1,值2…);
3.同时插入多条数据
insert into 表名 values(这是相应字段的值,看好对应的数据类型),(这是相应字段的值,看好对应的数据类型),(这是相应字段的值,看好对应的数据类型);
insert into 表名(字段名1,字段名2…) values(值1,值2…),(值1,值2…),(值1,值2…);
4.将查询结果插入到表中
insert into 表名 select * from 表名2;
insert into 表名(指定字段) select (指定字段) from 表名2;【注意结构】
- 复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表 。 - 只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
即:让WHERE条件不成立. - 复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表 - 复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…) SELECT 字段1,字段2,… FROM 旧表
5.更新数据
update 表名 set 字段名1=取值1,字段名2=取值2…,where 条件表达式;【若不加则修改全部】
6.删除数据
delete from 表名[where 条件表达式];【不加就全部删除】
查询语句
[ WHERE 条件表达式1 ]
[ GROUP BY 属性名1 [ HAVING 条件表达式2 ] ]
[ ORDER BY 属性名2 [ ASC | DESC ] ]
【例】 查询teaching数据库的student表中所有字段的信息。
USE teaching ;
SELECT * FROM student;
SELECT name,2014-birth as age FROM student;
SELECT name,year(curdate())-birth as age FROM student;
或者
SELECT name,year(now())-birth as age FROM student;
查询结果不重复,语法格式:
select distinct 字段名 from 表名
视图
建立在基本表上的虚拟表
CREATE [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ]
VIEW 视图名 [ ( 属性清单 ) ]
AS SELECT语句
查看视图是指查看数据库中已存在的视图的定义。
查看视图必须要有SHOW VIEW的权限,mysql数据库下的user表中保存着这个信息。
查看视图的方法包括DESCRIBE语句、SHOW TABLE STATUS语句、SHOW CREATE VIEW语句和查询information_schema数据库下的views表等。
ALTER语句修改视图的语法格式为:
ALTER [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ]
VIEW 视图名 [ ( 属性清单 ) ]
AS SELECT语句
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ] ;
更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。
因为是视图是一个虚拟表,其中没有数据。通过视图更新时,都是转换到基本表来更新。
更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。
Insert into student_view1 values(909,’zz’,1999);
Desc student; id,name,department
alter view student_view1 as select id,name,department from student;
删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。用DROP VIEW语句来删除视图。但是,用户必须拥有DROP权限。
DROP VIEW [ IF EXISTS] 视图名列表 [ RESTRICT | CASCADE]