一直都想总结一下mysql,终于有一个时间可以与大家分享一下了。
一、mysql 的连接
1.mysql在DOS命令下的启动于停止
\>net start mysql
此时按enter键启动mysql
\>net stop mysql
按enter键即可停止mysql服务
2.连接与断开mysql服务器
进入DOS窗口,在命令提示符下输入:
\> mysql -uroot -hlocalhost -p password
root表示mysql用户名 localhost表示mysql服务器所在地址 password表示用户名密码
演示如下:
进入mysql命令,可以通过quit后exit命令退出mysql
二、mysql的数据类型
具体有哪些数据类型就不一一列举了,我们看看在选择数据类型时我们应该遵循的原则吧
1.从速度方面考虑,要选择固定的列,可以使用char类型。
2.要节省空间,使用动态的列,可以使用varchar类型。
3.要将列中的内容限制在一种选择,可以使用enum类型。
4.允许在一列中有多于一个的条目,可以使用set类型。
5.如果要搜索的内容不区分大小写,可以使用test类型。
6.如果要搜索的内容区分大小写,可以使用blob类型。
日期类型:
date 日期,格式为YYYY-MM-DD
time 时间,格式为HH:MM:SS
datetime 日期和时间
timestamp 时间标签
year 年份可以指定两位数字和4位数字的格式
三、运算符
1.算数运算符
+,-,*,/,%,DIV,MOD
2.比较运算符
=,>,<,>=,<=,!=或<>,Is null,between and,in,
like 用来匹配字符串。表达式如下:x like s1
匹配成功返回1,失败返回0.
regexp 同样用于匹配字符串,但其使用的是正则表达式的匹配。例如:
x regexp '匹配表达式' 满足结果返回1,否则返回0
3.逻辑运算符
&&,AND,||,!,XOR(相同为0,不同为1)
4.位运算符
&,|,~,^,<<,>>
四、创建||删除||修改数据库或表的操作
1.查看数据库:show databases; 删除数据库:drop db_name;
2.查看表:show tables; 删除表:drop table_name;
3.创建数据表的列属性的排序:
col_name type [NULL | NOT null] [DEFAULT_VALUE] [AUTO_INCREMENT] [PRIMARY KEY]
[reference_difinition](为字段添加注释)
以上语句中括号内是可选内容
4.查看表结构:
show [full] colunms from table_name from db_name或
show [full] colunms from db_name.talble_name;或
DESCRIBE table_name;
5.修改表结构:
Alter [IGNORE] table table_name alter_statement[,alter_statement]...
alter_statement 结构入下:(假定我是用的是users表)
add username char(10) not null --增加表字段
modify username varchar(40) --修改表字段
6.重命名表:
rename table table_name to table_name2;
五、语句操作:
1.插入记录
insert into table_name(字段1,字段2,字段3...)values('...','...','...'...);
2.查询
select selection_list --要查询的内容,选择那些列
from table_name --指定数据表
where primary_constraint --查询时需要满足的条件,行必须满足条件
group by grouping_columns --如何对结果进行分组
order by sorting_cloumns --如何对结果进行排序
having secondary_constraint --查询时满足的第二个条件
limit count; --限定输出的查询结果
3.goup by
通过group by 字句可以将结果划分到不同的组,实现对记录的分组查询,查询的列必须包含在分组的列中
,目的是使查询到的数据没有矛盾。在于avg和sum函数一起使用的时候才会发挥其最大的作用
4.distinct
使用distinct关键字,可以去除结果中的重复行
select distinct username from users.
5.order by
使用order by 可以对查询的结果进行排序升序(asc)和降序(desc).
例:select * from users order by id desc;
6,like
like是比较常用的比较运算符,用于实现模糊查询
例:select * from users where username like ('_li%');
7.concat
使用concat函数可以联合多个字段,构成一个总的字符串
例:select id,concat(username,":",introduce) from users;
8.limit
limit 限制查询结果的记录条数,控制它的输出行数
例:select * from users order by id limit 3; -- 显示三条数据,按顺序
又如: select * from users order by id limit 2,3;-- 重第二条开始显示三条数据
9.使用函数或者表达式
AVG,COUNT,MIN,MAX,STD,STDTEV,SUM
六、表的链接查询
1.内连接查询
内连接最常见的例子是相等连接。
2.外连接查询
与内连接不同,外连接是指使用outer Join 关键字将两个表连接起来。外联结生成的结果集不仅包含符合连接条件的行数据,而且包括左表,右表和两边连接(全外连接)表中的所有数据
外联结分为左外连接(left join),右外连接(right join),全外连接
例如:
select * from users left join users2;
七、带any 或 all关键字的子查询
<any() -- 小于最大值
>any() -- 大于最小值
<all() -- 小于最小值
>all() -- 大于最大值
例:
其他的类似
八、合并查询
合并查询使用UNION或UNION ALL关键字。UNION关键字是将所有的查询结果合并到一起,让后去除相同的记录;而UNION ALL 关键字只是简单的将结果合并到一起。
例如:select id from users
union
select id from users2;
下期还有跟多关于mysql的,敬请期待