Data Manipulation Language 数据操作语言
DML语句
建表建库相关操作
show
desc #查看表结构
use
set password
#set password for 用户名@localhost = password('新密码')
flush privileges #刷新权限功能,对表(通常是在修改ROOT帐号的设置后)进行的更改后,不能立即生效,导致使用时还是旧数据,使用该命令则可以立即看到改后的效果
show
show databases;
show tables;
show warnings
show create database xu #查看表详细信息
show processlist; #有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等。
如果是root帐号,能看到所有用户的当前连接。如果是其他普通帐号,则只能看到自己占用的连接
数据类型
int
varchar
char
insert replace replace和insert的区别?
insert: 插入一条新的数据, 假如主键相同的话会报错
replace: 要插入的数据中索引值不同于表中任意一条数据的索引值,就增加一条新的数据,等同于insert,否则,替换原来的数据,等同于先delete再insert
update
最消耗系统资源
先进行查询,然后再去修改
delete
子查询里不能使用主表
select
truncate
清空一张(大)表更有效的方法是使用TRUNCATE语句,它比DELETE快得多
delete和truncate、drop的区别?
1.速度快 truncate
速度,一般来说: drop> truncate > delete
2.恢复的角度
delete删除数据是一行一行去匹配数据,然后再删除,删除的时候会产生二进制日志,日后可以恢复
truncate删除数据是直接删除数据文件的,不产生日志,要想恢复,只能通过备份文件
3.truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
4.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
5.delete语句不影响表所占用的extent, 高水线(high w2atermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
help
查询某个命令的使用手册
help update
查询update命令的使用手册
data definition language 数据定义语言
DDL
create
drop
alter 修改表结构
增加字段
alter table Students add sex char(1) ;
删除字段
修改字段的类型或者长度
modify 修改类型
修改名字
alter table Students change name username varchar(30);
Data Control Language 数据控制语言
DCL
grant
revoke
Data Query Language 数据查询语言
DQL
select
database management system管理数据的软件
DBMS mysql就是一个DBMS,线性数据库管理系统
客户端连接工具
windows
SQLyog
navicat
mysql workbench
官方的
linux
mysql
安装
yum install mariadb
yum install mysql
show processlist;
可以查看有哪些用户远程连接到MySQL里
|