很久很久以前学习mysql的笔记记录,很随意,但都是自己记录的,希望对需要的人有所帮助。
本文使用word2013编辑并发布
Postbird | There I am , in the world more exciting!
Postbird personal website .www.ptbird.cn
客户端
mysql.exe
phpmyadmin 配置conf 设置允许空密码true
mysql workbench
服务器端
mysqld.exe
24小时一直在线
表
多行多列的结构
库
多张表组织在一起形成一个库 database
SQL :Structued Query Language 结构化查询语言
what型语言 不是 how型语言
DML
数据操作语言 SQL中处理数据等操作成为数据操作语言(使用者角度)
DDL
数据定义语言,用于定义和管理SQL数据库中所有对象的语言(建设者的角度:建表,建库,建视图)
DCL
数据控制语言,用于授予或回收访问数据库的某种特权,并控制数据库操纵事物发生的时间以及效果,对数据库实行监视等(管理者角度 DBA)
设置编码 set names gbk;
使用库 use test;
查看库中的表 show tables;
查看XXX表的表结构 desc XXX;
选中表,查看内容 select * from XXX;
注释:#
创建表:
create table user2(uid int(10),name varchar(20)) charset utf8 engine myisam;
DML
insert:
insert into user (uid,name,age) values (1,"13",12);
列与值要严格对应
数字不必加单引号,字符串必须加单引号
auto_increment自增长
Update:
update 哪张表 改哪几列的值 改成什么值 在哪一行生效
update user set age=8 where name='lilei';
where 不加会影响所有的行
Delete:
delete from 表名 where uid=4;
删除哪张表的哪一行
Select:
select * from user; 查询一张表
select * from user where uid=2; 查一行
select uid ,name from user where uid>=2; 查询指定的列
* 表示查询所有的行或者列
Select 查询模型:
将列看作变量,user有三个变量 分别是 uid name age
where 是表达式
select name,age from user where uid=2;
逐行查找,先找第一行, where uid=2;表达式为假,不符合条件,查找下一行
第二行, where uid=2; 表达式为真 取出该行
同样, where 1;能够取出所有行 where 0;取不出任何一行;
并且 因为 列 是变量,可以进行计算(例如 取出明年的年龄)
select age,age+1 from user where 1;
Where 运算符号
(||)or
in(括号后面表示符合这两个条件的)
&&(and)
between
下属类查询:
例 uid=1是一个大类 2,3,4,5是下属的子类
查询1类下的信息
select * from user1 where uid in (2,3,4,5,6);
模糊查询:
select name from user1 where name like 'xiao%';
% 代表任意字符
select name from user where name like 'xiao__';
__ 一个下划线代表一个特殊字符 两个下划线代表后面有两个字符
函数计算修改等:
将 uid=2 的age 修改成 整十数 22->20;
floor函数 求整数
字符串剪切 sub_string("XXX",3);
将XXX剪切3字符;
(注意从第几个开始) 诺基亚N98;3->亚N98
字符串拼接:concat('XXX','YYY');
结果是 XXXYYY