欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Database

程序员文章站 2022-03-08 20:11:15
...

ubuntu安装mysql:

1. sudo apt-get install mysql-server     输入密码
2. sudo apt-get install mysql-client
3. 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

MySQL数据库
一种关系型数据库,这种所谓的"关系型"可以理解为"表格"的概念
一个关系型数据库由一个或数个表格组成, 如图所示的一个表格
Database
表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性

数据库操作
创建一个数据库:create database 数据库名 [其他选项];
查看已经创建的数据库:show databases;
删除整个数据库:drop database 数据库名;
对一个数据库进行操作, 须先选择该数据库, 否则会提示错误: ERROR 1046(3D000): No database selected
两种方式对数据库进行使用的选择:
一: 在登录数据库时指定, 命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
例如登录时选择刚刚创建的数据库: mysql -D samp_db -u root -p
二: 在登录后使用 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(),‘工人’)
insert into test values(’’,‘朱珠’,now(),‘工人’) //简化,不建议使用
update: 更新表中的数据
格式:update 表名称 set 列名称=新值 where 更新条件;
update test set uid=‘朱珠’ where id=3
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最小的值

分页
1、分页原理
所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来。
2、分页条件
怎么分段,当前在第几段 (每页有几条,当前再第几页)
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
3、得到的公式
(当前页数 - 1 )X 每页条数 , 每页条数
Select * from table limit ($Page- 1) * $PageSize, $PageSize

相关标签: C