启动数据库服务 | net start mysql | ||||
停止数据库服务 | net stop mysql | ||||
退出数据库 | exit | ||||
保存操作及结果 | 将在命令行窗口中的操作及结果保存到电脑的指定路径中 | tee 路径 | |||
库的操作 | 进入mysql的命令 | mysql -h(IP)地址-u用户名 -p密码 如果是本机登录,可省去-u参数 |
|
||
查看所由库名 | show databases; | ||||
创建数据库 |
create database 库名 [charset 字符集]; 中括号中的内容是可选项,用来设置字符集 数据库的名字一经创建就不能进行修改 |
||||
删除数据库 | drop database 库名; | ||||
选择数据库 | use 库名; | ||||
表的操作 | 查看所有表 | show tables; | |||
创建表 | create table 表名 (字段名1 字段1类型,字段名2(字节个数),字段2类型.......); | ||||
删除表 | drop table 表名; | ||||
修改表结构 | 在表的最后面增加一列 | alter table 表名 add 列名称 列类型 列参数 列声明; | alter table person add sex varchar(1) not null; | ||
在指定列后面增加一列 | alter table 表名 add 列名称 列类型 列参数 列声明 after 列名; | alter table person add money varchar(1) not null after name; | |||
增加一个新的类放置表的第一位 | alter table 表名 add 列名称 列类型 列参数 列声明 first; | alter table personal add pid int first; | |||
删除某一列 | alter table 表名 drop 列名; | alter table personal drop pid; | |||
修改某一列的参数,不能修改列的名称 | alter table 表名 modify 列名 新类型 新参数; | ||||
修改列名及类类型、参数 | alter table 表名 change 旧列名 新列名 新类型 新参数; | ||||
表重命名 | rename table 旧的表名 to 新的表名; | rename table person to personal; | |||
清空表中的数据 | truncate 表名; |
truncate相当于删除了一张表,又新建了一张一模一样的新表 delete加where查询条件是删除满足条件的一条记录 delete不加where查询条件是删除一张表 |
|||
查看表的结构 | describe 表名; |
|
|||
查看表中所有的记录 | select * from 表名; | ||||
输出操作日志即查询结果 | tee 指定文件路径; | ||||
增 | 插入一条记录 | insert into 表名 (字段名1,字段名2) values (值1,值2); | |||
删 | 删除单条数据 |
delete from 表名 where 查询条件; 删除就是删除一行数据,如果是删除一行中的某几个字段而不是一整行则是修改 |
|||
删除整张表 | delete from 表名; | 例:delete from test1 | |||
改 | 改一行中的某个字段 |
update 表名 set 字段名称=值 where 条件 ; 如果查询条件为真,则表中对应列的所有数据均进行更改,如:update student set sex=‘男’ where 1; 如:update student set sex=‘男’ where 2>1; |
|||
查 | 查整张表 | select * from 表名; | |||
查询单列 | select 列名 from 表名; | ||||
升序查询 | select * from 表名 order by 条件 [asc]; | 例:select * from test order by id; 注:asc为默认顺序,可以不写 | |||
降序查询 |
select * from 表名 order by 条件 desc; 对最终结果集进行排序 多字段的排序方式为order by 字段1 排序方式,字段2 排序方式,字段3 排序方式;(其中字段1的优先级最高) |
例:select * from test order by id desc; | |||
模糊查询 | select * from test where name like '张%’; | 查询test表中名字中“张”字开头的人员 | |||
select * from test where name like '%浩‘; | 查询test表中名字结尾中带“浩”字的人员 | ||||
select * from test where name like '%吉%‘; | 查询test表中名字中间带“吉”字的人员 | ||||
select * from test where name like ‘张_’; %匹配任意字符,_匹配单个字符 |
查询test表中名字开头为“张”的人员 | ||||
where条件查询 | select * from test where 条件; | 例:select * from test where id=3; | |||
比较运算符为: < 小于 <=小于等于 = 等于 >大于 >=大于等于 !=或者<> 不等于 in在集合中 between and 在某个区间 |
. select * from person where id<3; select * from person where id<=3; select * from person where id=3; select * from person where id>3; select * from person where id>=3; select * from person where id!=3; select * from person where id in(3,6,7); select * from person where id between 3 and 9; |
||||
逻辑运算符: NOT 或者 !逻辑非 OR 或者 || 逻辑或 AND 或者 && 逻辑与 and的优先级比or高 |
select * from person where sex not '女'; select * from person where sex=‘女’ or id=3; select * from person where sex='女' and cardname='建设银行卡' |
||||
分组查询 | select * from test group by 分组条件; | ||||
统计函数 avg求平均值 max求最大值 min求最小值 count求多少行 sum求和 |
用select count(*) from 表名;进行查询,是查询这张表中所有的行数,包括所有字段都为null的行 用select count(列名) from 表名;来进行查询,是查询这个字段中不为null的行数 在mysql中用count(*)和count(1)来进行查询是没有区别的,因为mysql引擎中有一个计数器 |
||||
having和group by 配合使用 select 列名 from 表名 group by 条件 having 条件; having是对group by 分组之后的结果进行的筛选 |
where语句在group by语句之前,SQL会在分组之前计算where语句 having语句在group by语句之后,SQL会在分组之后计算where语句 |
||||
起别名 | select 旧列名 as 新列名 from 表名 查询条件 | ||||
limit限制条数查询 |
limit(跳过的行数,实际取的行数) 如果跳过的行数为0,则可以不写 |
如查询person表中的第3行到第5行 select * from person limit(2,3); 如查询person表中money最多的一天数据 select * from person order by monkey desc limit 1; |
|||