MySQL 基础知识
2014-02-14 14:44 臭小子1983 阅读(195) 评论(0) 编辑 收藏 举报一、了解SQL
一、什么是数据库
数据库是保存数据的容器,数据库管理系统(DBMS)。
二、表
文件就是表,表可以存储特定类型的数据.
1、列:表中的一个字段,表都是同一个列或多个列组成的.
2、行:表中的数据是按行存储的,每条记录存储在自己的行内.
3、数据类型:
三、主键
表中每一行都应该有唯一标识的自己列,一列中的值能够唯一区分表中每个行
主键具有两个条件:
1、任意两行都不具有相同的主键值
2、每行必须有一个主键(不能为NULL)
二、使用MySQL
一、mysql命令行实用程序
1、链接数据库:mysql -h localhost -u root -p 111111;
2、use:选择数据库,use rrgdb;
3、show:显示数据表和数据库,show tables; 或 show databases;
2、\h:获取帮助信息
3、quit或exit:退出命令程序
二、检索数据库 SELECT
使用select语句从表中检索一个或多个数据列
1、检索单个列:
SELECT username FROM rrgdb; // 从rrgdb表中检索username列
2、检索多个列:
SELECT username, password FROM rrgdb; // 检索username和password列
3、检索所有列
SELECT * FROM rrgdb; // 检索所有列
4、检索列有几个不同的值
如,id列中有 (111,2222,333,333,4,4),共有四个不同的值,为111,2222,333,4
通过 distinct
SELECT DISTINCT userId FROM rrgdb;
5、限制结果
返回所有匹配的行,使用 limit 子句。
SELECT username FROM rrgdb LIMIT 5; // 返回不多于5行
SELECT username FROM rrgdb LIMIT 5, 5; // 返回下一个5行,第一个数为开始的位置,第二个数为要检索的行数
6、完全限定表名
SELECT rrgdb.username FROM rrgdb; // 指定是rrgdb表中的username列
三、检序检索数据
1、SELECT子句 order by 子句进行排序
SELECT username FROM rrgdb ORDER BY username; // 将username列进行排序
2、排序方式 : order by DESC
SELECT username FROM rrgdb ORDER BY username DESC; //
四、过滤数据
1、select 语句的子句,where
select * from dataTable where id =10; // 在dataTable表中检索,条件是id为10的行
where的操作符:=、<>不等于、!=不等于、<小于、<=小于等于、>大于、>=大于等于、or两个值满足一个、and两个值都为真
2、where子句的 between 两个条件之间的值
select * from dataTable where BETWEEN id=5 and id=10; // 检索出dataTabel表中的id=5和id=10之间行数据
3、is null 空值检查
select * from dataTable where id is null; // 检索dataTable表中的id 为空的字段
五、数据过滤
1、AND操作符和OR操作符
AND要优先于OR操作符
2、IN操作符:用来指定范围
select * from dataTable where id in (5,10); // 检索dataTable表中id为5和10的字段
3、NOT IN操作符:除了指定的值之外的
select * from dataTable where id not in (2,4); // 检索dataTable表中除了id为2和4的其它字段
六、用通配符进行过滤
用于select 中的where条件
1、like:使用like操作符来进行通配搜索,以便对数据进行复杂过滤
2、% 通配符:出现的位置
select * from dataTable where newsTitle like "中国%"; // 匹配dataTable表中的newsTitle列中以 中国开头的行
select * from dataTable where newsTitle like "%中国"; // 匹配dataTable表中的newsTitle列中以 中国结尾的行
select * from dataTable where newsTitle like "%中国%"; // 匹配dataTable表中的newsTitle列中以 中国 前后出现都可以的行
3、_ 下划线通配符:仅代替一个字符
select * from dataTable where newsTitle like "_hat"; // 匹配newsTitle列中的第一个字符 “what"
七、正则表达式进行搜索
如果在where子句内使用正则表达式来控制数据
1、使用regexp
select * from products where pro_name regexp "100"; // 检索pro_name列中含有文本100的字段
2、or进行匹配:
select * from products where pro_name regexp "100|200"; // 检索pro_name列中含有文本100或200的字段