mysql

来源:互联网 发布:学习软件营销方案 编辑:程序博客网 时间:2024/06/03 22:54

mysql登录:

`mysql -hlocalhost -p3306 -uroot -p --prompt=xiaokun`

//prompt指定命令提示符,只针对当前连接有效。-D 打开指定数据库,–delimiter=name,指定分隔符
-V –version 输出版本信息并且退出(大V)
查看mysql属性:\s
退出mysql:quit,\q ,exit,ctrl+c强制退出
prompt(登录后)+\D修改完整的日期
\d修改当前数据库
\h修改服务器名称
\u修改当前用户名
\T 路径:开启操作日志 \t 结束操作日志
show warnings;查看上一步产生的警告

一.数据库

1.创建数据库:

`create {database|schema}[if not exists] db_name [[default] character set[=]charset_name]`

if not exists:如果不存在就创建 [default] character set=charset_name:设置编码方式
2.查看当前服务器下的数据库列表:

show {databases|schemas};

3.查看指定数据库的定义:

show create {database|schema} db_name;

4.修改指定数据库的编码方式:

alter {database|schema} db_name [default] character set [=] charset_name;

5.打开指定数据库:

use da_name;

6.删除指定数据库:

drop {database|schema}[is exists] db_name;

获得当期打开的数据库名称:

select database();

二.表

数据类型:
1.整数类型:
TINYINT(1),SMALLINT(2),MEDIUMINT(3),INT(4),BIGINT(8),BOOL,boolean
2.浮点类型:
float[(m,d)],m为总位数,d为小数点后面的位数,4字节
double[(M,D)]8字节,decimal[(m,d)]M+2字节
3.字符串类型:
char(M),m个字节,varchar(M),L+1个字节,TINYTEXT,TEXT,MEDIUMTEXT,
LONGTEXT,ENUM(‘value1’,’value2’,…),SET(‘value1’,’value2’,…),集合可以选择多个,枚举只能选一个
4.日期时间类型:
time,date,datetime,timestamp,year,
5.二进制类型:

查看mysql支持的存储引擎:show engines;
查看显示支持的存储引擎信息:show variables like ‘have%’
查看默认的存储引擎:show variables like ‘storage_engine’
常用的引擎:innodb(较高的事物处理),myisam(写入查询快),memory(临时表),
1.创建表:
create table [if not exists] tbl_name(字段名称 字段类型 [unsigned|zerofill][完整性约束条件]…)ENGINE=引擎名称 charset=‘编码方式’
完整性约束条件:(primary key 主键,auto_increment 自增长,foreign key外键,
not NULL 非空,unique key 唯一,default 默认值);

创建复合主键:primary key(key1,key2…);
修改自增长的值:alter table table_name auto_increment=num;
2.查表:
查看数据库下的数据表:show tables
查看指定表的表结构:desc tbl_name,describe tbl_name,show columns from tbl_name
设置客户端临时编码方式:set names gbk;
字段添加注释:comment ‘’;
select * from tbl_name;
zerofill 零填充
3.插入记录:
insert tbl_name value|values(值,…);
4.修改表:
修改表名:alter table tbl_name rename [to|as] new_name;
rename table tbl_name to new_name;
添加字段:alter table tbl_name 字段名称 字段类型 [完整性约束条件] [first|after 字段名称]
删除字段:alter table tbl_name drop 字段名称
修改字段:alter table tbl_name modify 字段名称 字段类型 [完整性约束条件] [first|after 字段名称]
修改字段名称:alter table tbl_name change 旧字段名称 新字段名称 字段类型 [完整性约束条件] [first|after 字段名称]
添加默认值:alter table tbl_name alter 字段名称 set default 默认值
删除默认值:alter table tbl_name alter 字段名称 drop default
添加主键:alter table tbl_name add [constraint [symbol]] primary key index_type
删除主键:alter table tbl_name drop primary key
添加唯一:alter table tbl_name add [constraint [symbol] unique [index|key] 索引名称]
删除唯一:alter table tbl_name drop {index|key} index_name
修改表的存储引擎:alter table tbl_name engine=存储引擎名称
设置自增长的值:alter table tbl_name auto_increment=值;
4.删除表:
drop table [if exists] tbl_name[,tbl_name……]

三.数据的操作(DML)

1.插入数据:
insert [into] tbl_name(字段名称) values|value(值1….)
insert [into] tbl_name set 字段名称=值,…..
将查询结果插入表中:insert [into] tbl_name[(字段名称,..)] select 字段名称 from tbl_name [where 条件]
2.更新数据:
update tbl_name set 字段名称=值,…[where 条件][order by 字段名称][LIMIT 限制条数]
3.删除数据:
delete from tbl_name [where 条件][order by 字段名称][limit 限制条数]
truncate [table] tbl_name:清空数据表
三.查询数据(DQL):
1.查询记录:
select select_expr [,select_expr…][from table_references[where 条件][group by {col_name|position}
[asc|desc],…分组][having 条件 对分组结果进行二次筛选][order by {col_name|position}[asc|desc],..排序][limit限制条数] ]]
2.查询表达式:
*表示所有的列,使用[as]alias_name为其赋予别名
3.where条件
between and,not between and :范围,
in,not in :指定集合
like,not like:匹配字符
and,or:多个查询条件
4.分组查询:
select * from tbl_name group by 字段,
5.group by查询结果分组:
分组详情:group_concat()
配合聚合函数:count(),max(),min(),avg(),sum()
配合with rollup 记录上面所有记录的总和,
6.having子句
通过having子句对分组结果进行二次筛选
7.order by排序:对查询结果排序,默认升序(asc),降序(desc),
8.limit限制查询结果显示条数:limit 显示条数,limit 偏移量,显示条数

四.连接查询:

1.内连接查询: join|cross join | inner join,通过on 连接条件
2.外连接查询:左外连接:left [outer] join,右外连接:right [outer] join

五.外键:

创建外键:
alter table 表名称 add constraint 外键名称 foreign key(子表字段) references 主表(字段)on 其他条件;
foreign key(子表字段)references 主表(字段);
constraint 创建外键名称,
删除外键:alter table 表名称 drop foreign key 外键名称
存储引擎只能是innodb,外键的作用保持数据的一致性和完整性
cascade:从父表删除或更新且自动删除或更新子表中匹配的行
set null:从父表删除或更新行,并设置子表中的外键列为NULL;如果使用该选项,必须保证子表没有指定NOT null
restrict:拒绝对父表的删除或更新操作
no action:标注sql的关键字,在mysql中与restrict相同

六.联合查询:

union ,union all,union与union all区别是union去掉相同的记录,union all是简单的合并在一起

七,子查询:

使用[not] in() 子查询,使用比较运算符的子查询,使用[not]exists()的子查询,使用any|some或者all的子查询
查询结果写入数据表:insert [into] tbl_name [(col_name…)] select …
创建数据表同时将查询结果写入到数据表:create table [if not exists] tbl_name [(create_definition,…)]select_statement

八.正则表达式查询

1.regexp ‘匹配方式’
2.常用匹配方式:^匹配字符开始部分,$匹配字符串结尾部分,.任意一个字符,[字符合集]匹配合集中的任何一个,
[^字符合集]匹配除合集以外的字符,S1|S2|S3,匹配s1,s2,s3中任意一个字符
* 代表0个1个或者多个其前的字符,+代表一个或者多个其前的字符,String{N}字符串出现N次
字符串{M,N} 字符串至少出现M次,最多N次。

九.mysql函数库:数学函数,字符串函数,条件判断函数,系统函数,

原创粉丝点击