数据库操作的基本步骤:
- 连接数据库 输入用户名和密码.
- 对数据库、表结构、表数据进行操作.
- 退出数据库.
那下面我们就这三方面进行单独的讲解。
1.登录和退出数据库
1.1 数据库登录
mysql -uroot -p
# -u 后面是登录的用户名
# -p 后面是登录密码, 如果不填写, 回车之后会提示输入密码
1.2.退出登录
quit 和 exit
或ctrl+d
1.3.查看版本号
select version();
1.4.查看时间
select now();
2.数据库操作
2.1查看所有数据库
show databases;
2.2查看当前使用的数据库
select database();
2.3使用数据库
use 数据库名;
2.4创建数据库
create database 数据库名 charset=utf8;
例:
create database python charset=utf8;
2.5删除数据库- 慎重
drop database 数据库名;
例:
drop database python20;
3.表结构的操作
3.1查看当前数据库中所有表
show tables;
3.2查看表结构
desc 表名;
3.3创建表
CREATE TABLE table_name(
字段名称 数据类型 可选的约束条件,
column1 datatype contrai, #auto_increment表示自动增长
column2 datatype,
column3 datatype,
.....
columnN datatype,
-- 主键说明可以放在字段中单独说明 也可以放在最后统一说明
PRIMARY KEY(one or more columns)
);
例:创建班级表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10)
);
例:创建学生表
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
cls_id int unsigned default 0
)
3.4修改表-添加字段
当表已经创建好 但是表中没有需要的字段时候
alter table 表名 add 列名 类型;
例:
alter table students add birthday datetime;
3.5修改表-修改字段:重命名版
在表中已有字段 但是字段名不满足要求 类型或约束满足或者不满足均可。
alter table 表名 change 原名 新名 类型及约束;
例:
alter table students change birthday birth datetime not null;
3.6修改表-删除字段
当表中多出一个字段 已经不再需要的时候
alter table 表名 drop 列名;
例:
alter table students drop birthday;
3.7删除表-慎重
drop table 表名;
例:
drop table students;
3.8查看表的创建语句
show create table 表名;
例:
show create table classes;
4.增删改查
4.1查询
4.1.1查询所有列
select * from 表名;
例:
select * from classes;
4.1.2查询指定列
select 列1,列2,... from 表名;
例:
select id,name from classes;
4.2 增加
INSERT [INTO] 表名 [(字段名1,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
说明:主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null) ; 字段默认值 default来占位,插入成功后以实际数据为准
4.2.1全列插入
值的顺序与表结构字段的顺序完全一一对应,此时 字段名列表不用填写
insert into 表名 values (...)
例:
insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2');
4.2.2部分列插入
值的顺序与给出的列顺序对应,此时需要根据实际的数据的特点 填写对应字段列表
insert into 表名 (列1,...) values(值1,...)
例:
insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');
4.2.3全列多行插入
上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信
insert into 表名 values(...),(...)...;
例:
insert into classes values(0,'python1'),(0,'python2');
4.2.4部分列多行插入
insert into 表名(列1,...) values(值1,...),(值1,...)...;
例:
insert into students(name) values('杨康'),('杨过'),('小龙女');
4.3 修改
格式: UPDATE 表名 SET 字段1名={expr1|DEFAULT} [,col2={expr2|default}] [where
条件判断]
update 表名 set 列1=值1,列2=值2... where 条件
例:
update students set gender=0,hometown='北京' where id=5;
4.4 物理删除(一旦删除就不容易恢复)
DELETE FROM 表名 [where 条件判断]
delete from 表名 where 条件
例:
delete from students where id=5;
其实删除文件进入回收站的本质只是在操作系统的帮助下对文件加上了
某个标记,资源管理器中对含有这种标记的文件不会显示。当从回收站恢复的时候只是移除了加上的标记而已。
4.5逻辑删除(本质就是修改操作)
update students set isdelete=1 where id=1;
参考文献:
《高性能MySQL》