一、 对数据库的操作
- 创建一个库
create database 库名;
create database 库名 character set 编码;//编码如gbk、utf8 - 删除一个库
drop database 库名; - 使用库
use 库名; - 查看当前正在操作的库
select database(); - 查看所有的数据库
show databases; - 查看数据库中的表
show tables;
二、对数据库中表的操作
- 创建一张表
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
); - 查看表的结构
desc 表名; - 修改表名
rename table 表名 to 新表名; - 删除一张表
drop 表名; - 修改表的结构
添加一列: alter table 表名 add 字段名 类型(长度) 约束;
修改列的类型(长度、约束): alter table 表名 modify 要修改的字段名 类型(长度) 约束;
修改列的列名: alter table 表名 change 旧列名 新列名 类型(长度) 约束;
删除表的列: alter table 表名 drop 列名; - 查看、修改表的字符集
show create table 表名;
alter table 表名 character set 编码;
三、对数据库中表的记录进行操作
中文数据乱码的问题:set NAMES gbk;
1. 插入记录
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……);
insert into 表名 values(值1,值2,值3……);//这种方式要填写所有的列,为空的要填写为null
2. 修改表记录
不带条件的:
update 表名 set 字段名=值, 字段名=值, 字段名=值……;//将该列的所有记录都更改
带条件的:
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件;//仅修改满足条件的
3. 删除表记录
带条件的: delete from 表名 where 条件;
不带条件的: delete from 表名;
delete与truncate的区别?
start transaction;
delete from 表名 where 条件;
rollback;
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate table 表名;
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
4. 查询操作
MySQL的查询指令编写顺序:
Select 一般在后面的内容都是要查询的字段//可以使用一些函数,如sum(列名)、avg(列名)、记录数:count(*)等。还能去掉重复值如select distinct(price) from product;
As 可以用来给列创建别名
From 要查询的表
Where //可以使用模糊查询如 where pname like ‘%士%’;<>=! in
group by//根据某字段具有相同值来分组
having 分组后带有条件只能使用having
order by 它必须放到最后面//des、casc
MySQL对于where后的条件是可优先级比较高的and先执行(然后才是or),同级别的就从左往右执行。 其原理(推测)是对表内的数据逐行进行遍历,遍历的同时对每行数据进行where后的条件判断,条件判断后返回为true,则该行数据被选中。