Navicat for MySQL 10.1.7
用户名和组织随便写 SN : NAVH-WK6A-DMVK-DKW3
ubuntu安装mysql:
sudo apt-get install mysql-server 输入密码
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
登陆mysql数据库可以通过如下命令:
mysql -u root -p
-u 表示选择登陆的用户名, -p表示登陆的用户密码
在Ubuntu下使用Python连接MySQL
在终端下输入sudo apt-get install python-mysqldb
$python
Python 2.7.3 (default, Apr 20 2012, 22:44:07)
>>> import MySQLdb
关系型数据库
采用关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
关系模型把数据看作是一个二维表格,任何数据都可以通过行号+列号来唯一确定,它的数据模型看起来就是一个Excel表。
SQL(结构化查询语言)
关系型数据库采用SQL来对数据库进行查询,它能够支持数据库的增加,查询,更新,删除操作。
MySQL数据库是一种关系型数据库,这种所谓的"关系型"可以理解为"表格"的概念。
一个关系型数据库由一个或数个表格组成,如图所示的一个表格。
表头(header):每一列的名称;
列(row):具有相同数据类型的数据的集合;
行(col):每一行用来描述某个人/物的具体信息;
值(value):行的具体信息,每个值必须与该列的数据类型相同;
键(key):表中用来识别某个特定的人\物的方法,键的值在当前列中具有唯一性
数据库操作
创建一个数据库:create database 数据库名 [其他选项];
查看已经创建的数据库:show databases;
删除整个数据库:drop database 数据库名;
对一个数据库进行操作,须先选择该数据库,否则会提示错误:ERROR 1046(3D000): No database selected
两种方式对数据库进行使用的选择:
1.在登录数据库时指定,命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
如:mysql -D samp_db -u root -p
2.在登录后使用 use 语句指定, 命令:use 数据库名;
use语句可以不加分号,执行 use samp_db 成功后会提示:Database changed
表操作
创建数据库表:create table 表名称(列声明);
create table students
(
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
age tinyint unsigned not null,
tel char(13) null default "-"
);
对于较长的语句在命令提示符下容易输错,因此可以通过文本编辑器将语句输入保存为 createtable.sql 的文件, 通过命令提示符下的文件重定向执行该脚本:mysql -D samp_db -u root -p < createtable.sql
show tables; 查看已创建了表的名称
describe 表名; 查看已创建的表的详细信息
语句:
insert:用来将一行或多行数据插到数据库表中
格式:insert into 表名 (字段…,…) values(值…,…)
insert into test (‘id’,‘uid’,‘regdate’,‘remark’) values(‘’,‘朱珠’,now(),‘工人’)
update:更新表中的数据
格式:update 表名称 set 列名称=新值 where 更新条件
update test set uid=‘朱珠’ where id=3
update ‘main’.‘ProductDbLoadableDataInfoTable’
SET uri = “…/LOADABLE/PRODUCT.NDS”
delete: 删除表中的数据
格式:delete from 表名 where 条件 limit //limit可以省略
delete from test where id=3
alter table:语句用于创建后对表的修改
添加列
基本形式:alter table 表名 add 列名 列数据类型 [after 插入位置];
在名为 age 的列后插入列 birthday: alter table students add birthday date after age
修改列
基本形式:alter table 表名 change 列名称 列新名称 新数据类型;
alter table students change name name char(16) not null;
删除列
基本形式: alter table 表名 drop 列名称;
删除 birthday 列: alter table students drop birthday;
重命名表
基本形式: alter table 表名 rename 新表名;
重命名 students 表为 workmates: alter table students rename workmates;
删除整张表
基本形式: drop table 表名;
select:根据一定的查询规则到数据库中获取数据
select 列名称 from 表名称 [查询条件]; select name, age from students;
select * from students where sex=“女”;
1.where不仅支持"where 列名=值"的查询形式,对一般的比较运算的运算符都是支持的,如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等。还可以对查询条件使用or 和 and 进行组合查询。
select id,uid from newdb 'test' where 1
select remark as r from 'test' where 1 //remark 转换成r,减少字母
select * from 'test' where id=2
select * from 'test' where id in (1,2,3)
select * from 'test' where 'uid' like '%王%' //like匹配uid姓王的 %前后匹配
select * from 'test' where id between 1 and 3
select * from 'test' where id=1 and 'remark'='学生'
2.排序 分组 指针查询
分组语句:group by 字段
排序语句:order by 字段,字段 ASC / DESC
指针查询:limit 初始值,结束值
select * from 'test' group by 'remark' //分类,分出其中有几类
select * from 'test' order by 'regdate' asc //时间正序排列(时间从过去到现在)
select * from 'test' group by 'remark'desc,id asc //几个条件一起排序
select * from 'test' limit 0,3 //只输出前3条
select * from 'test' limit 2,4 //输出第2条到4条
select * from 'test' limit 4
limit放在最后面,然后是order by放在limit的前面, group by放在order by之前。
3.计算:
COUNT(*)
统计
MAX(*)
最大值
MIN (*)
最小值
AVG(*)
平均值
SUM(*)
累计值(∑)
select count(*) from 'test' where 1 //统计整个表中的信息
select max(id) from 'test' where 1 //id最大的值
select min(id) from 'test' where 1 //id最小的值
分页
limit。分页显示是将数据库中的结果集,一段一段显示出来。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
公式:(当前页数 - 1 )X 每页条数,每页条数
select * from table limit ($Page- 1) * $PageSize, $PageSize