1.创建数据库:create database name
2.使用数据库:use name(数据库名称)
3.创建表:
primary key 主键
auto_increment :uid主键自增
create table liuTwo(
uid int(18) not null PRIMARY KEY auto_increment,
name VARCHAR(20)
);
4.增
增加单行数据:
insert into tablename(column,column)values('我是字段1','我是字段2');
增加多行数据:
insert into tablename(column,column,...)values('1','2'),('3','4'),('5','6'),(...);
5.删
删除单、多行:
delete from tablename where …(条件)
删掉所有行
delete from tablename;
[拓展延伸]
一、delete from table … 是删除行,作为一个事务记录在日志中,可对其进行回滚操作。(若表是id自增的,默认是1开始,删除行后,再插入数据,id是接着生成的。例:删除了3行,再插入1行数据,这一行数据的id是4,紧接之前的序列号)
二、truncate table name(name表示表名) 删除表中所有数据,相当于清空还原表,但表结构还在。不可回滚!(若表是id自增的,默认是1开始,删除行后,再插入数据,新插入的数据,id从1重新开始排序)
三、drop table name 删除表及其结构,即表不存在了,且不可回滚!
【ps】回滚指的是事务操作中返回某一操作前的状态。如:delete了数据,回滚后可恢复数据。但是大前提是尚未执行提交操作(commit),否则回滚无效。
6.改
修改表名:
alter table name to newname
修改字段名:
alter table name change oldcolumn newcolumn varchar(20);
修改字段属性:
alter table name modify column name(列名) varchar(20) not null ...;
在old字段后增加new字段:
alter table name add column new varchar not null after old;
7.查
select columnname from tablename where .....;
8.更新
update tablename set columnname = "...." where 条件;
9.数据库引擎
5.5版本后的mysql,拥有两种数据库引擎,MyISAM和InnoDB,两者最大的区别之一在于后者(InnoDB)支持事务处理,而前者不支持。mysql一般数据库引擎默认的是前者(MyISAM)。
10.事务回滚
在数据库引擎为innoDB的情况下,执行的SQL语句,将被默认为一个事务操作,回滚后(callback),可以使数据库恢复到执行该SQL语句(BEGIN)之前的状态,前提是还没有最终提交事务(commit)。提交了事务之后,回滚无效或者说无法回滚。
【ps】更改数据库引擎:alter table name ENGINE=INNODB; (name:表示表名)。
11.事务与回滚操作:
BEGIN
select * from .....
insert into ...
...
callback; //回滚
【ps】mysql中的begin和end不能一起用,否则出现以下错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘END’ …
mysql中的end一般同case when else end使用。
12.windows控制台备份MySql 数据库
进入mysql安装目录的bin目录下。
cd \Program Files\MySQL\MySQL Server 5.5\bin
备份(导出)命令:
mysqldump -u root -p batabaseName > 备份路径\备份文件名称.sql
1:数据库 liu ; 2:D:\bakup备份的路径 3:sqlname.sql 备份文件的名称
13.windows控制台恢复数据库数据(恢复某几张表数据,跳过第二步,执行第三步)
第一步:登录mysql :
mysql -u root -p //提示输入密码后
第二步:创建同名的数据库或者新的数据库(前提是原数据库已丢失)
create database name; //创建数据库
use name; //进入数据库
第三步:恢复(导入)数据库文件
source D:\bakup\sqlname.sql
第四步:查看是否恢复
show databases;
use name;
select * from name;
[拓展延伸]若查出的数据汉字乱码了,说明编码方式有误,需修改为utf-8
查询编码方式:
show variables like '%char%'
修改数据库编码方式:
alter database name character set utf8;
order by 排序
1、单个字段 :order by name
2、多个字段 :order by price,name
3、单个字段升序(默认ASC) : order by name
4、单个字段降序(desc):order by name desc
5、多个字段降序(desc):order by name desc,price desc
注:先满足第一个字段的条件下,再满足第二个字段即可。
6、查找所有价格最高的记录:order by price desc limit 1 (最大值有多个,只显示1条)
7、查找所有价格最高的记录(可以查到重复):
SELECT * from business where STATUS = (select MAX(STATUS) FROM business
)
或者"=“改为"in”